diff --git a/lib/openzeppelin-contracts b/lib/openzeppelin-contracts index dc44c9f1a..54b3f1434 160000 --- a/lib/openzeppelin-contracts +++ b/lib/openzeppelin-contracts @@ -1 +1 @@ -Subproject commit dc44c9f1a4c3b10af99492eed84f83ed244203f6 +Subproject commit 54b3f14346da01ba0d159114b399197fea8b7cda diff --git a/pkg/contracts/out/Allo.sol/Allo.json b/pkg/contracts/out/Allo.sol/Allo.json index 25003a4c9..2b6ffdc3c 100644 --- a/pkg/contracts/out/Allo.sol/Allo.json +++ b/pkg/contracts/out/Allo.sol/Allo.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addToCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"batchAllocate","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_datas","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterRecipient","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"recipientIds","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"completeOwnershipHandover","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"createPool","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"distribute","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeDenominator","inputs":[],"outputs":[{"name":"FEE_DENOMINATOR","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getPercentFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStrategy","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTreasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_registry","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address payable"},{"name":"_percentFee","type":"uint256","internalType":"uint256"},{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCloneableStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolAdmin","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"result","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownershipHandoverExpiresAt","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"removeFromCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateBaseFee","inputs":[{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePercentFee","inputs":[{"name":"_percentFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePoolMetadata","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRegistry","inputs":[{"name":"_registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BaseFeePaid","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BaseFeeUpdated","inputs":[{"name":"baseFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverCanceled","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverRequested","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PercentFeeUpdated","inputs":[{"name":"percentFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"PoolFunded","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolMetadataUpdated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyApproved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryUpdated","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506135a1806100206000396000f3fe6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea264697066735822122003a48f7a46c6d9883a02069310109ac1406e8f153439b0f6e65fc391be587c1f64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea264697066735822122003a48f7a46c6d9883a02069310109ac1406e8f153439b0f6e65fc391be587c1f64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3050:213:44;;;;;;;;;;-1:-1:-1;3050:213:44;;;;;:::i;:::-;;:::i;:::-;;;516:14:143;;509:22;491:41;;479:2;464:18;3050:213:44;;;;;;;;14900:288:0;;;;;;;;;;-1:-1:-1;14900:288:0;;;;;:::i;:::-;;:::i;:::-;;34013:108;;;;;;;;;;-1:-1:-1;34013:108:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;17298:276::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4391:55:143;;;4373:74;;4361:2;4346:18;17298:276:0;4227:226:143;33140:85:0;;;;;;;;;;-1:-1:-1;33211:7:0;;33140:85;;;4604:25:143;;;4592:2;4577:18;33140:85:0;4458:177:143;18212:747:0;;;;;;;;;;-1:-1:-1;18212:747:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13330:105::-;;;;;;;;;;-1:-1:-1;13330:105:0;;;;;:::i;:::-;;:::i;4855:129:44:-;;;;;;;;;;-1:-1:-1;4855:129:44;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;16308:430:0;;;;;;;;;;-1:-1:-1;16308:430:0;;;;;:::i;:::-;;:::i;7331:617:12:-;;;:::i;32476:144:0:-;;;;;;;;;;-1:-1:-1;32476:144:0;;;;;:::i;:::-;;:::i;15387:358::-;;;;;;;;;;-1:-1:-1;15387:358:0;;;;;:::i;:::-;;:::i;19921:127::-;;;;;;:::i;:::-;;:::i;5280:145:44:-;;;;;;;;;;-1:-1:-1;5280:145:44;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;;;;;-1:-1:-1;6389:214:44;;;;;:::i;:::-;;:::i;21468:196:0:-;;;;;;;;;;-1:-1:-1;21468:196:0;;;;;:::i;:::-;;:::i;33313:95::-;;;;;;;;;;-1:-1:-1;33393:8:0;;-1:-1:-1;;;;;33393:8:0;33313:95;;14481:229;;;;;;;;;;-1:-1:-1;14481:229:0;;;;;:::i;:::-;;:::i;32977:91::-;;;;;;;;;;-1:-1:-1;33051:10:0;;32977:91;;8030:456:12;;;:::i;33488:89:0:-;;;;;;;;;;-1:-1:-1;33562:8:0;;-1:-1:-1;;;;;33562:8:0;33488:89;;19156:439;;;;;;:::i;:::-;;:::i;12894:247::-;;;;;;;;;;-1:-1:-1;12894:247:0;;;;;:::i;:::-;;:::i;7072:100:12:-;;;:::i;11971:701:0:-;;;;;;:::i;:::-;;:::i;13624:113::-;;;;;;;;;;-1:-1:-1;13624:113:0;;;;;:::i;:::-;;:::i;15950:160::-;;;;;;;;;;-1:-1:-1;15950:160:0;;;;;:::i;:::-;;:::i;9718:191:12:-;;;;;;;;;;-1:-1:-1;;;9866:27:12;9718:191;;14188:101:0;;;;;;;;;;-1:-1:-1;14188:101:0;;;;;:::i;:::-;;:::i;3350:145:44:-;;;;;;;;;;-1:-1:-1;3350:145:44;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;;;;3350:145;4412:75:9;;;;;;;;;;;;4445:42;4412:75;;2320:49:44;;;;;;;;;;-1:-1:-1;2320:49:44;2365:4;2320:49;;7626:593:0;;;;;;;;;;-1:-1:-1;7626:593:0;;;;;:::i;:::-;;:::i;33760:132::-;;;;;;;;;;-1:-1:-1;33760:132:0;;;;;:::i;:::-;;:::i;32112:140::-;;;;;;;;;;-1:-1:-1;32112:140:0;;;;;:::i;:::-;;:::i;20511:559::-;;;;;;;;;;-1:-1:-1;20511:559:0;;;;;:::i;:::-;;:::i;32753:126::-;;;;;;;;;;-1:-1:-1;32753:126:0;;;;;:::i;:::-;32814:7;32848:14;;;:5;:14;;;;;:23;;;-1:-1:-1;;;;;32848:23:0;;32753:126;5705:147:44;;;;;;;;;;-1:-1:-1;5705:147:44;;;;;:::i;:::-;;:::i;10281:884:0:-;;;;;;:::i;:::-;;:::i;8673:708:12:-;;;;;;:::i;:::-;;:::i;6658:349::-;;;;;;:::i;:::-;;:::i;31788:103:0:-;;;;;;;;;;-1:-1:-1;31880:4:0;31788:103;;13911:113;;;;;;;;;;-1:-1:-1;13911:113:0;;;;;:::i;:::-;;:::i;10012:435:12:-;;;;;;;;;;-1:-1:-1;10012:435:12;;;;;:::i;:::-;10282:19;10276:4;10269:33;;;10131:14;10315:26;;;;10425:4;10409:21;;10403:28;;10012:435;3050:213:44;3135:4;3158:58;;;3173:43;3158:58;;:98;;-1:-1:-1;1204:36:54;1189:51;;;;3220:36:44;3151:105;3050:213;-1:-1:-1;;3050:213:44:o;14900:288:0:-;10836:13:12;:11;:13::i;:::-;-1:-1:-1;;;;;15059:30:0;::::1;15092:5;15059:30:::0;;;:19:::1;:30;::::0;;;;;;;;:38;;-1:-1:-1;;15059:38:0::1;::::0;;15155:26;;4373:74:143;;;15155:26:0::1;::::0;4346:18:143;15155:26:0::1;;;;;;;;14900:288:::0;:::o;34013:108::-;34070:11;;:::i;:::-;34100:14;;;;:5;:14;;;;;;;;;34093:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;34093:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34100:14;;34093:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34013:108;;;:::o;17298:276::-;17401:7;2526:21:49;:19;:21::i;:::-;17489:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:78;;;;;-1:-1:-1;;;;;17489:23:0;;::::1;::::0;:41:::1;::::0;17538:9:::1;::::0;17489:78:::1;::::0;17549:5;;17556:10:::1;::::0;17489:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17482:85;;2568:20:49::0;1808:1;3074:7;:22;2894:209;18212:747:0;18348:29;2526:21:49;:19;:21::i;:::-;18416:15:0;;;18456:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;18456:27:0::1;;18441:42;;18514:5;:12;18498;:28;18494:51;;18535:10;;-1:-1:-1::0;;;18535:10:0::1;;;;;;;;;;;18494:51;18663:9;18658:204;18678:12;18674:1;:16;18658:204;;;18725:5;:18;18731:8;18740:1;18731:11;;;;;;;;:::i;:::-;;;;;;;18725:18;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1::0;;;;;18725:27:0::1;-1:-1:-1::0;;;;;18725:45:0::1;;18771:5;18777:1;18771:8;;;;;;;;:::i;:::-;;;;;;;18781:10;18725:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18707:12;18720:1;18707:15;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18707:85:0;;::::1;:15;::::0;;::::1;::::0;;;;;;;:85;18834:3:::1;;18658:204;;;;18933:19;2568:20:49::0;1808:1;3074:7;:22;2894:209;13330:105:0;10836:13:12;:11;:13::i;:::-;13402:26:0::1;13418:9;13402:15;:26::i;:::-;13330:105:::0;:::o;16308:430::-;10836:13:12;:11;:13::i;:::-;16506:14:0::1;-1:-1:-1::0;;;;;16523:16:0;::::1;4445:42:9;16523:16:0;:93;;16566:50;::::0;;;;16610:4:::1;16566:50;::::0;::::1;4373:74:143::0;-1:-1:-1;;;;;16566:35:0;::::1;::::0;::::1;::::0;4346:18:143;;16566:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16523:93;;;16542:21;16523:93;16506:110;;16688:43;16704:6;16712:10;16724:6;16688:15;:43::i;:::-;16385:353;16308:430:::0;;:::o;7331:617:12:-;7424:15;6282:9;7442:46;;:15;:46;7424:64;;7656:19;7650:4;7643:33;7706:8;7700:4;7693:22;7762:7;7755:4;7749;7739:21;7732:38;7909:8;7862:45;7859:1;7856;7851:67;7558:374;7331:617::o;32476:144:0:-;32557:4;32580:33;32595:7;32604:8;32580:14;:33::i;:::-;32573:40;32476:144;-1:-1:-1;;;32476:144:0:o;15387:358::-;15469:7;8837:28;8857:7;8837:19;:28::i;:::-;-1:-1:-1;;;;;15568:22:0;::::1;15564:49;;15599:14;;-1:-1:-1::0;;;15599:14:0::1;;;;;;;;;;;15564:49;15701:14;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;15690:48:::1;::::0;15729:8;15690:10:::1;:48::i;19921:127::-:0;2526:21:49;:19;:21::i;:::-;20016:25:0::1;20026:7;20035:5;20016:9;:25::i;:::-;2568:20:49::0;1808:1;3074:7;:22;2894:209;2568:20;19921:127:0;;:::o;5280:145:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;6389:214::-:0;-1:-1:-1;;;;;6484:23:44;;965:10:52;6484:23:44;6476:83;;;;-1:-1:-1;;;6476:83:44;;16949:2:143;6476:83:44;;;16931:21:143;16988:2;16968:18;;;16961:30;17027:34;17007:18;;;17000:62;17098:17;17078:18;;;17071:45;17133:19;;6476:83:44;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;21468:196:0:-;2526:21:49;:19;:21::i;:::-;21589:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:68;;;;;-1:-1:-1;;;;;21589:23:0;;::::1;::::0;:34:::1;::::0;:68:::1;::::0;21624:13;;21639:5;;21646:10:::1;::::0;21589:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2568:20:49::0;1808:1;3074:7;:22;2894:209;14481:229:0;10836:13:12;:11;:13::i;:::-;-1:-1:-1;;;;;14567:23:0;::::1;14563:50;;14599:14;;-1:-1:-1::0;;;14599:14:0::1;;;;;;;;;;;14563:50;-1:-1:-1::0;;;;;14624:30:0;::::1;;::::0;;;:19:::1;:30;::::0;;;;;;;;:37;;-1:-1:-1;;14624:37:0::1;14657:4;14624:37;::::0;;14676:27;;4373:74:143;;;14676:27:0::1;::::0;4346:18:143;14676:27:0::1;4227:226:143::0;8030:456:12;8232:19;8226:4;8219:33;8278:8;8272:4;8265:22;8330:1;8323:4;8317;8307:21;8300:32;8461:8;8415:44;8412:1;8409;8404:66;8030:456::o;19156:439:0:-;2526:21:49;:19;:21::i;:::-;19318:7:0::1;19329:1;19318:12:::0;19314:43:::1;;19339:18;;-1:-1:-1::0;;;19339:18:0::1;;;;;;;;;;;19314:43;19368:16;19387:14:::0;;;:5:::1;:14;::::0;;;;;;;19368:33;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;19368:33:0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;;;19387:14;;19368:33;;;;;;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;19368:33:0;;;;-1:-1:-1;;;19368:33:0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;19415:10;::::1;::::0;19368:33;;-1:-1:-1;;;;;;19415:20:0::1;4445:42:9;19415:20:0;:44:::0;::::1;;;;19450:9;19439:7;:20;;19415:44;19411:75;;;19468:18;;-1:-1:-1::0;;;19468:18:0::1;;;;;;;;;;;19411:75;19546:42;19556:7;19565;19574:4;:13;;;19546:9;:42::i;:::-;19238:357;2568:20:49::0;1808:1;3074:7;:22;2894:209;12894:247:0;12991:7;8625:30;8647:7;8625:21;:30::i;:::-;13010:17:::1;13030:14:::0;;;:5:::1;:14;::::0;;;;;;;13054:25;;:13:::1;::::0;::::1;:25:::0;;;;;::::1;::::0;13030:14;;13070:9;;13054:25;;;;::::1;::::0;;::::1;:::i;:::-;;;;;13115:7;13095:39;13124:9;13095:39;;;;;;:::i;:::-;;;;;;;;13000:141;12894:247:::0;;;:::o;7072:100:12:-;10836:13;:11;:13::i;:::-;7144:21:::1;7162:1;7144:9;:21::i;:::-;7072:100::o:0;11971:701:0:-;12251:14;2526:21:49;:19;:21::i;:::-;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;12277:93:::1;;12336:23;;;;;;;;;;;;;;12277:93;12522:10;12514:19;::::0;;;:7:::1;:19;::::0;;;;:21;;12426:239:::1;::::0;12451:10;;12485:51:::1;::::0;12503:9;;12514:21;;:19;:21:::1;::::0;::::1;:::i;:::-;;;;;12485:17;:51::i;:::-;12551:17;12582:6;12602:7;12623:9;12646;12426:11;:239::i;:::-;12419:246;;2568:20:49::0;1808:1;3074:7;:22;2894:209;2568:20;11971:701:0;;;;;;;;;:::o;13624:113::-;10836:13:12;:11;:13::i;:::-;13704:26:0::1;13720:9;13704:15;:26::i;15950:160::-:0;16035:7;8837:28;8857:7;8837:19;:28::i;:::-;16066:14:::1;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;16054:49:::1;::::0;16094:8;16054:11:::1;:49::i;14188:101::-:0;10836:13:12;:11;:13::i;:::-;14258:24:0::1;14273:8;14258:14;:24::i;7626:593::-:0;4882:13:48;;7816:1:0;;4882:13:48;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:48;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:48;;20711:2:143;4873:99:48;;;20693:21:143;20750:2;20730:18;;;20723:30;20789:34;20769:18;;;20762:62;20860:16;20840:18;;;20833:44;20894:19;;4873:99:48;20509:410:143;4873:99:48;4982:12;:22;;-1:-1:-1;;5014:20:48;4982:22;;;5014:20;4982:22;5014:20;;;7890:24:0::1;7907:6:::0;7890:16:::1;:24::i;:::-;7968:26;7984:9;7968:15;:26::i;:::-;8048;8064:9;8048:15;:26::i;:::-;8119:30;8137:11;8119:17;:30::i;:::-;8188:24;8203:8;8188:14;:24::i;:::-;5071:5:48::0;5055:21;;-1:-1:-1;;5055:21:48;;;5091:20;;21096:4:143;21084:17;;21066:36;;5091:20:48;;21054:2:143;21039:18;5091:20:48;;;;;;;7626:593:0;;;;;;:::o;33760:132::-;-1:-1:-1;;;;;28993:30:0;;33831:4;28993:30;;;:19;:30;;;;;;;;33854:31;28898:132;32112:140;32191:4;32214:31;32227:7;32236:8;32214:12;:31::i;20511:559::-;2526:21:49;:19;:21::i;:::-;20784:13:0;;20637:8;;20772:25;::::1;20768:48;;20806:10;;-1:-1:-1::0;;;20806:10:0::1;;;;;;;;;;;20768:48;20921:9;20916:148;20936:8;20932:1;:12;20916:148;;;20961:33;20971:8;;20980:1;20971:11;;;;;;;:::i;:::-;;;;;;;20984:6;20991:1;20984:9;;;;;;;;:::i;:::-;;;;;;;20961;:33::i;:::-;21036:3;;20916:148;;;;20608:462;2568:20:49::0;1808:1;3074:7;:22;2894:209;5705:147:44;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;10281:884:0:-:0;10566:14;-1:-1:-1;;;;;10687:23:0;;10683:50;;10719:14;;-1:-1:-1;;;10719:14:0;;;;;;;;;;;10683:50;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;10894:66;;;10938:22;;;;;;;;;;;;;;10894:66;11055:103;11067:10;11089:9;11101:17;11120:6;11128:7;11137:9;11148;11055:11;:103::i;:::-;11048:110;10281:884;-1:-1:-1;;;;;;;;10281:884:0:o;8673:708:12:-;10836:13;:11;:13::i;:::-;8907:19:::1;8901:4;8894:33;8953:12;8947:4;8940:26;9015:4;9009;8999:21;9121:12;9115:19;9102:11;9099:36;9096:157;;;9167:10;9161:4;9154:24;9234:4;9228;9221:18;9096:157;9330:1;9309:23:::0;;9351::::1;9361:12:::0;9351:9:::1;:23::i;6658:349::-:0;10836:13;:11;:13::i;:::-;6830:8:::1;6826:2;6822:17;6812:150;;6872:10;6866:4;6859:24;6943:4;6937;6930:18;6812:150;6981:19;6991:8;6981:9;:19::i;13911:113:0:-:0;10836:13:12;:11;:13::i;:::-;13987:30:0::1;14005:11;13987:17;:30::i;5593:364:12:-:0;-1:-1:-1;;5799:27:12;5789:8;5786:41;5776:165;;5860:10;5854:4;5847:24;5922:4;5916;5909:18;2601:287:49;1851:1;2733:7;;:19;2725:63;;;;-1:-1:-1;;;2725:63:49;;21315:2:143;2725:63:49;;;21297:21:143;21354:2;21334:18;;;21327:30;21393:33;21373:18;;;21366:61;21444:18;;2725:63:49;21113:355:143;2725:63:49;1851:1;2863:7;:18;2601:287::o;30226:203:0:-;-1:-1:-1;;;;;30293:23:0;;30289:50;;30325:14;;-1:-1:-1;;;30325:14:0;;;;;;;;;;;30289:50;30350:8;:31;;-1:-1:-1;;30350:31:0;-1:-1:-1;;;;;30350:31:0;;;;;;;;30396:26;;4373:74:143;;;30396:26:0;;4361:2:143;4346:18;30396:26:0;4227:226:143;6721:269:10;-1:-1:-1;;;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;29821:192:0:-;29903:4;29934:14;;;:5;:14;;;;;;;;:26;;;3459:12:44;;:6;:12;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;29926:80:0;;;;29975:31;29988:7;29997:8;29975:12;:31::i;22160:138::-;22235:33;22248:7;22257:10;22235:12;:33::i;:::-;22230:61;;22277:14;;-1:-1:-1;;;22277:14:0;;;;;;;;;;;7938:233:44;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:44;;;;;;;;;:36;;-1:-1:-1;;8059:36:44;8091:4;8059:36;;;8141:12;965:10:52;;886:96;8141:12:44;-1:-1:-1;;;;;8114:40:44;8132:7;-1:-1:-1;;;;;8114:40:44;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;26159:151:0:-;26234:14;;;;:5;:14;;;;;;;:23;;;:69;;;;;-1:-1:-1;;;;;26234:23:0;;;;:32;;26274:9;;26234:69;;26285:5;;26292:10;;26234:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26159:151;;:::o;3789:103:44:-;3855:30;3866:4;965:10:52;3855::44;:30::i;8342:234::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:44;;;;;;;;;;:37;;-1:-1:-1;;8463:37:44;;;8519:40;965:10:52;;8463:12:44;;8519:40;;8495:5;8519:40;8342:234;;:::o;26634:1879:0:-;26727:17;26817:14;;;:5;:14;;;;;26858:10;;;;26883;;26779:7;;26817:14;-1:-1:-1;;;;;26858:10:0;;26883:14;26879:808;;31880:4;26936:10;;26926:20;;:7;:20;:::i;:::-;26925:44;;;;:::i;:::-;26913:56;-1:-1:-1;26983:27:0;26913:56;26983:27;;:::i;:::-;;-1:-1:-1;27059:7:0;27029:26;26983:27;27029:9;:26;:::i;:::-;:37;27025:59;;27075:9;;;;;;;;;;;;;;27025:59;-1:-1:-1;;;;;;;27103:16:0;;;27099:578;;27167:65;;;;;;;;27187:10;27167:65;;27203:8;;-1:-1:-1;;;;;27203:8:0;27167:65;;;;;;;;;;27139:94;;27159:6;;27139:19;:94::i;:::-;;27099:578;;;27319:8;;27272:24;;27299:29;;27311:6;;-1:-1:-1;;;;;27319:8:0;27299:11;:29::i;:::-;27374:65;;;;;;;;27394:10;27374:65;;27410:8;;-1:-1:-1;;;;;27410:8:0;27374:65;;;;;;;;;;27272:56;;-1:-1:-1;27346:94:0;;27366:6;;27346:19;:94::i;:::-;-1:-1:-1;27504:8:0;;27458:23;;27484:29;;27496:6;;-1:-1:-1;;;;;27504:8:0;27484:11;:29::i;:::-;27458:55;-1:-1:-1;27628:34:0;27646:16;27458:55;27628:34;:::i;:::-;27616:46;;27254:423;;27099:578;-1:-1:-1;;;;;;;27701:16:0;;;27697:693;;27733:139;27770:6;27778:80;;;;;;;;27798:10;-1:-1:-1;;;;;27778:80:0;;;;;27822:9;-1:-1:-1;;;;;27778:80:0;;;;;27842:14;27778:80;;;27733:19;:139::i;:::-;;27697:693;;;27903:32;27938:39;27950:6;27966:9;27938:11;:39::i;:::-;27903:74;;27991:139;28028:6;28036:80;;;;;;;;28056:10;-1:-1:-1;;;;;28036:80:0;;;;;28080:9;-1:-1:-1;;;;;28036:80:0;;;;;28100:14;28036:80;;;27991:19;:139::i;:::-;;28144:31;28178:39;28190:6;28206:9;28178:11;:39::i;:::-;28144:73;-1:-1:-1;28329:50:0;28355:24;28144:73;28329:50;:::i;:::-;28312:67;;27889:501;;27697:693;28400:44;;;;;;;;4604:25:143;;;-1:-1:-1;;;;;28400:28:0;;;;;4577:18:143;;28400:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28460:46:0;;;22362:25:143;;;22418:2;22403:18;;22396:34;;;28471:7:0;;-1:-1:-1;28460:46:0;;-1:-1:-1;22335:18:143;28460:46:0;;;;;;;26717:1796;;;;26634:1879;;;:::o;21910:142::-;21987:35;22002:7;22011:10;21987:14;:35::i;5040:495:12:-;-1:-1:-1;;5416:16:12;;-1:-1:-1;;;;;5272:26:12;;;;;;5376:38;5373:1;;5365:78;5492:27;5040:495::o;4749:279:6:-;4867:36;;-1:-1:-1;;4884:10:6;22618:2:143;22614:15;22610:53;4867:36:6;;;22598:66:143;22680:12;;;22673:28;;;4823:7:6;;;;22717:12:143;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;23131:2681:0:-;23424:8;;:57;;;;;;;;22914:25:143;;;23470:10:0;22955:18:143;;;22948:83;23393:14:0;;-1:-1:-1;;;;;23424:8:0;;:33;;22887:18:143;;23424:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23419:85;;23490:14;;-1:-1:-1;;;23490:14:0;;;;;;;;;;;23419:85;23526:10;;23524:12;;;;;:::i;:::-;;;;;-1:-1:-1;23764:33:0;;23524:12;;-1:-1:-1;23524:12:0;;23675:25;;23764:33;;23524:12;;23764:33;;23554:19:143;;;23603:7;23598:2;23589:12;;23582:29;23636:2;23627:12;;23324:321;23764:33:0;;;;-1:-1:-1;;23764:33:0;;;;;;;;;23754:44;;23764:33;23754:44;;;;23864:228;;;;;;;;-1:-1:-1;;;;;23864:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23845:16;24159:13;;;:5;:13;;;;;;:20;;;;;;;;;;;;;;-1:-1:-1;;24159:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23754:44;;-1:-1:-1;23764:33:0;;24159:13;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;;24159:20:0;;;;;;;;;;;;;;;;;;24239:39;24250:15;24267:10;24239;:39::i;:::-;24337:49;24351:17;24370:15;24337:13;:49::i;:::-;24541:47;;;;;-1:-1:-1;;;;;24541:20:0;;;;;:47;;24562:6;;24570:17;;24541:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24628:6;24603:9;-1:-1:-1;;;;;24603:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;:80;;;;24678:4;-1:-1:-1;;;;;24638:45:0;24646:9;-1:-1:-1;;;;;24646:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24638:45:0;;;24603:80;24599:103;;;24692:10;;-1:-1:-1;;;24692:10:0;;;;;;;;;;;24599:103;24775:16;;24750:22;24801:266;24821:14;24817:1;:18;24801:266;;;24852:15;24870:9;24880:1;24870:12;;;;;;;;:::i;:::-;;;;;;;24852:30;;24919:1;-1:-1:-1;;;;;24900:21:0;:7;-1:-1:-1;;;;;24900:21:0;;24896:48;;24930:14;;-1:-1:-1;;;24930:14:0;;;;;;;;;;;24896:48;24959:38;24970:17;24989:7;24959:10;:38::i;:::-;-1:-1:-1;25039:3:0;;24801:266;;;-1:-1:-1;25081:7:0;;:11;25077:554;;-1:-1:-1;;;;;25359:16:0;;4445:42:9;25359:16:0;:52;;;;;25401:9;25390:7;25380;;:17;;;;:::i;:::-;:30;;25359:52;25358:100;;;-1:-1:-1;;;;;;25417:16:0;;4445:42:9;25417:16:0;;;;:40;;;25448:9;25437:7;;:20;;25417:40;25354:164;;;25485:18;;-1:-1:-1;;;25485:18:0;;;;;;;;;;;25354:164;25555:8;;25565:7;;25531:42;;4445::9;;-1:-1:-1;;;;;25555:8:0;;;;25531:15;:42::i;:::-;25604:6;25592:28;25612:7;;25592:28;;;;4604:25:143;;4592:2;4577:18;;4458:177;25592:28:0;;;;;;;;25077:554;25645:11;;25641:79;;25672:37;25682:7;25691:6;25699:9;25672;:37::i;:::-;25755:10;25747:6;25735:70;25767:9;25778:6;25786:7;25795:9;25735:70;;;;;;;;;:::i;:::-;;;;;;;;23409:2403;;;;23131:2681;;;;;;;;;:::o;30642:199::-;-1:-1:-1;;;;;30717:23:0;;30713:50;;30749:14;;-1:-1:-1;;;30749:14:0;;;;;;;;;;;30713:50;30774:8;:20;;-1:-1:-1;;30774:20:0;-1:-1:-1;;;;;30774:20:0;;;;;;;;30809:25;;4373:74:143;;;30809:25:0;;4361:2:143;4346:18;30809:25:0;4227:226:143;31426:125:0;31487:7;:18;;;31521:23;;4604:25:143;;;31521:23:0;;4592:2:143;4577:18;31521:23:0;4458:177:143;4520:448:12;-1:-1:-1;;;;;4709:26:12;-1:-1:-1;;4784:38:12;;;4709:26;4940:1;4900:38;4940:1;;4889:63;4520:448;:::o;31041:198:0:-;31126:4;31112:11;:18;31108:44;;;31139:13;;;;;;;;;;;;;;31108:44;31163:10;:24;;;31203:29;;4604:25:143;;;31203:29:0;;4592:2:143;4577:18;31203:29:0;4458:177:143;29346:153:0;29426:4;29457:14;;;:5;:14;;;;;;;;:24;;;3459:12:44;;:6;:12;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;29449:43:0;3350:145:44;2455:490:14;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;4173:501:44:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:44;;;;;;;;;;-1:-1:-1;;;4299:358:44;;;;;;;:::i;6019:500:10:-;6150:20;;;;6117:4;;-1:-1:-1;;;;;;;6184:16:10;;;6180:312;;6260:6;6248:9;:18;6244:48;;;6275:17;;;;;;;;;;;;;;6244:48;6307:57;6339:13;:16;;;6357:6;6307:31;:57::i;:::-;6180:312;;;6395:86;6428:6;6436:13;:18;;;6456:13;:16;;;6474:6;6395:32;:86::i;:::-;-1:-1:-1;6508:4:10;;6019:500;-1:-1:-1;;;6019:500:10:o;7224:263::-;7302:7;-1:-1:-1;;;;;;;7325:16:10;;;7321:160;;-1:-1:-1;;;;;;7364:25:10;;;7357:32;;7321:160;7427:43;7453:6;7461:8;7427:25;:43::i;:::-;7420:50;;;;2118:794:47;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:47;;2847:58;;;;-1:-1:-1;;;2847:58:47;;26275:2:143;2847:58:47;;;26257:21:143;26314:2;26294:18;;;26287:30;26353:25;26333:18;;;26326:53;26396:18;;2847:58:47;26073:347:143;7523:247:44;7606:25;4955:12;;;:6;:12;;;;;;:22;;;;7662:34;;;;7711:52;;4955:22;;7662:34;;4955:22;;:12;;7711:52;;7606:25;7711:52;7596:174;7523:247;;:::o;2473:149:53:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:53;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:53;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:53;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:53;;;;;;;;-1:-1:-1;2096:9:53;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:53;;;;;;;;-1:-1:-1;2207:1:53;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:53;;2228:55;;;;-1:-1:-1;;;2228:55:53;;26768:2:143;2228:55:53;;;26750:21:143;;;26787:18;;;26780:30;26846:34;26826:18;;;26819:62;26898:18;;2228:55:53;26566:356:143;7671:1379:14;7854:4;7848:11;7920:6;7914:4;7907:20;7985:2;7979:4;7972:16;8050:4;8046:2;8042:13;8036:4;8029:27;8199:34;8193:4;8186:48;8657:4;8651;8645;8639;8636:1;8629:5;8622;8617:45;8577:16;8570:24;8566:1;8559:4;8553:11;8550:18;8547:48;8275:405;8248:659;;8800:10;8794:4;8787:24;8888:4;8882;8875:18;8248:659;8934:1;8928:4;8921:15;8990:4;8983:15;-1:-1:-1;;;;7671:1379:14:o;18299:722::-;18373:14;18478:7;18472:4;18465:21;18613:34;18607:4;18600:48;18960:4;18954;18948;18942;18935:5;18928;18917:48;18855:4;18837:16;18834:26;18745:242;18718:4;18712:11;18687:318;18661:344;;18299:722;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:332:143:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:154;-1:-1:-1;;;;;622:5:143;618:54;611:5;608:65;598:93;;687:1;684;677:12;702:247;761:6;814:2;802:9;793:7;789:23;785:32;782:52;;;830:1;827;820:12;782:52;869:9;856:23;888:31;913:5;888:31;:::i;954:180::-;1013:6;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;-1:-1:-1;1105:23:143;;954:180;-1:-1:-1;954:180:143:o;1139:250::-;1224:1;1234:113;1248:6;1245:1;1242:13;1234:113;;;1324:11;;;1318:18;1305:11;;;1298:39;1270:2;1263:10;1234:113;;;-1:-1:-1;;1381:1:143;1363:16;;1356:27;1139:250::o;1394:271::-;1436:3;1474:5;1468:12;1501:6;1496:3;1489:19;1517:76;1586:6;1579:4;1574:3;1570:14;1563:4;1556:5;1552:16;1517:76;:::i;:::-;1647:2;1626:15;-1:-1:-1;;1622:29:143;1613:39;;;;1654:4;1609:50;;1394:271;-1:-1:-1;;1394:271:143:o;1670:252::-;1757:5;1751:12;1746:3;1739:25;1721:3;1810:4;1803:5;1799:16;1793:23;1848:4;1841;1836:3;1832:14;1825:28;1869:47;1910:4;1905:3;1901:14;1887:12;1869:47;:::i;1927:797::-;2100:2;2089:9;2082:21;2145:6;2139:13;2134:2;2123:9;2119:18;2112:41;2063:4;2200:2;2192:6;2188:15;2182:22;-1:-1:-1;;;;;2319:2:143;2305:12;2301:21;2296:2;2285:9;2281:18;2274:49;2387:2;2381;2373:6;2369:15;2363:22;2359:31;2354:2;2343:9;2339:18;2332:59;;;2440:2;2432:6;2428:15;2422:22;2481:4;2475:3;2464:9;2460:19;2453:33;2509:63;2567:3;2556:9;2552:19;2536:14;2509:63;:::i;:::-;2495:77;;2627:3;2619:6;2615:16;2609:23;2603:3;2592:9;2588:19;2581:52;2689:3;2681:6;2677:16;2671:23;2664:4;2653:9;2649:20;2642:53;2712:6;2704:14;;;1927:797;;;;:::o;2729:184::-;-1:-1:-1;;;2778:1:143;2771:88;2878:4;2875:1;2868:15;2902:4;2899:1;2892:15;2918:275;2989:2;2983:9;3054:2;3035:13;;-1:-1:-1;;3031:27:143;3019:40;;3089:18;3074:34;;3110:22;;;3071:62;3068:88;;;3136:18;;:::i;:::-;3172:2;3165:22;2918:275;;-1:-1:-1;2918:275:143:o;3198:406::-;3262:5;3296:18;3288:6;3285:30;3282:56;;;3318:18;;:::i;:::-;3356:57;3401:2;3380:15;;-1:-1:-1;;3376:29:143;3407:4;3372:40;3356:57;:::i;:::-;3347:66;;3436:6;3429:5;3422:21;3476:3;3467:6;3462:3;3458:16;3455:25;3452:45;;;3493:1;3490;3483:12;3452:45;3542:6;3537:3;3530:4;3523:5;3519:16;3506:43;3596:1;3589:4;3580:6;3573:5;3569:18;3565:29;3558:40;3198:406;;;;;:::o;3609:220::-;3651:5;3704:3;3697:4;3689:6;3685:17;3681:27;3671:55;;3722:1;3719;3712:12;3671:55;3744:79;3819:3;3810:6;3797:20;3790:4;3782:6;3778:17;3744:79;:::i;3834:388::-;3911:6;3919;3972:2;3960:9;3951:7;3947:23;3943:32;3940:52;;;3988:1;3985;3978:12;3940:52;4024:9;4011:23;4001:33;;4085:2;4074:9;4070:18;4057:32;4112:18;4104:6;4101:30;4098:50;;;4144:1;4141;4134:12;4098:50;4167:49;4208:7;4199:6;4188:9;4184:22;4167:49;:::i;:::-;4157:59;;;3834:388;;;;;:::o;4640:183::-;4700:4;4733:18;4725:6;4722:30;4719:56;;;4755:18;;:::i;:::-;-1:-1:-1;4800:1:143;4796:14;4812:4;4792:25;;4640:183::o;4828:886::-;4880:5;4933:3;4926:4;4918:6;4914:17;4910:27;4900:55;;4951:1;4948;4941:12;4900:55;4987:6;4974:20;5013:4;5037:60;5053:43;5093:2;5053:43;:::i;:::-;5037:60;:::i;:::-;5131:15;;;5217:1;5213:10;;;;5201:23;;5197:32;;;5162:12;;;;5241:15;;;5238:35;;;5269:1;5266;5259:12;5238:35;5305:2;5297:6;5293:15;5317:368;5333:6;5328:3;5325:15;5317:368;;;5419:3;5406:17;5455:18;5442:11;5439:35;5436:125;;;5515:1;5544:2;5540;5533:14;5436:125;5586:56;5638:3;5633:2;5619:11;5611:6;5607:24;5603:33;5586:56;:::i;:::-;5574:69;;-1:-1:-1;5663:12:143;;;;5350;;5317:368;;;-1:-1:-1;5703:5:143;4828:886;-1:-1:-1;;;;;;4828:886:143:o;5719:1147::-;5846:6;5854;5907:2;5895:9;5886:7;5882:23;5878:32;5875:52;;;5923:1;5920;5913:12;5875:52;5963:9;5950:23;5992:18;6033:2;6025:6;6022:14;6019:34;;;6049:1;6046;6039:12;6019:34;6087:6;6076:9;6072:22;6062:32;;6132:7;6125:4;6121:2;6117:13;6113:27;6103:55;;6154:1;6151;6144:12;6103:55;6190:2;6177:16;6212:4;6236:60;6252:43;6292:2;6252:43;:::i;6236:60::-;6330:15;;;6412:1;6408:10;;;;6400:19;;6396:28;;;6361:12;;;;6436:19;;;6433:39;;;6468:1;6465;6458:12;6433:39;6492:11;;;;6512:142;6528:6;6523:3;6520:15;6512:142;;;6594:17;;6582:30;;6545:12;;;;6632;;;;6512:142;;;6673:5;-1:-1:-1;;6716:18:143;;6703:32;;-1:-1:-1;;6747:16:143;;;6744:36;;;6776:1;6773;6766:12;6744:36;;6799:61;6852:7;6841:8;6830:9;6826:24;6799:61;:::i;6871:484::-;6924:3;6962:5;6956:12;6989:6;6984:3;6977:19;7015:4;7044:2;7039:3;7035:12;7028:19;;7081:2;7074:5;7070:14;7102:1;7112:218;7126:6;7123:1;7120:13;7112:218;;;7191:13;;-1:-1:-1;;;;;7187:62:143;7175:75;;7270:12;;;;7305:15;;;;7148:1;7141:9;7112:218;;;-1:-1:-1;7346:3:143;;6871:484;-1:-1:-1;;;;;6871:484:143:o;7360:261::-;7539:2;7528:9;7521:21;7502:4;7559:56;7611:2;7600:9;7596:18;7588:6;7559:56;:::i;7993:388::-;8061:6;8069;8122:2;8110:9;8101:7;8097:23;8093:32;8090:52;;;8138:1;8135;8128:12;8090:52;8177:9;8164:23;8196:31;8221:5;8196:31;:::i;:::-;8246:5;-1:-1:-1;8303:2:143;8288:18;;8275:32;8316:33;8275:32;8316:33;:::i;:::-;8368:7;8358:17;;;7993:388;;;;;:::o;8386:315::-;8454:6;8462;8515:2;8503:9;8494:7;8490:23;8486:32;8483:52;;;8531:1;8528;8521:12;8483:52;8567:9;8554:23;8544:33;;8627:2;8616:9;8612:18;8599:32;8640:31;8665:5;8640:31;:::i;9026:737::-;9080:5;9133:3;9126:4;9118:6;9114:17;9110:27;9100:55;;9151:1;9148;9141:12;9100:55;9187:6;9174:20;9213:4;9237:60;9253:43;9293:2;9253:43;:::i;9237:60::-;9331:15;;;9417:1;9413:10;;;;9401:23;;9397:32;;;9362:12;;;;9441:15;;;9438:35;;;9469:1;9466;9459:12;9438:35;9505:2;9497:6;9493:15;9517:217;9533:6;9528:3;9525:15;9517:217;;;9613:3;9600:17;9630:31;9655:5;9630:31;:::i;:::-;9674:18;;9712:12;;;;9550;;9517:217;;9768:635;9879:6;9887;9895;9948:2;9936:9;9927:7;9923:23;9919:32;9916:52;;;9964:1;9961;9954:12;9916:52;10000:9;9987:23;9977:33;;10061:2;10050:9;10046:18;10033:32;10084:18;10125:2;10117:6;10114:14;10111:34;;;10141:1;10138;10131:12;10111:34;10164:61;10217:7;10208:6;10197:9;10193:22;10164:61;:::i;:::-;10154:71;;10278:2;10267:9;10263:18;10250:32;10234:48;;10307:2;10297:8;10294:16;10291:36;;;10323:1;10320;10313:12;10291:36;;10346:51;10389:7;10378:8;10367:9;10363:24;10346:51;:::i;:::-;10336:61;;;9768:635;;;;;:::o;10904:248::-;10972:6;10980;11033:2;11021:9;11012:7;11008:23;11004:32;11001:52;;;11049:1;11046;11039:12;11001:52;-1:-1:-1;;11072:23:143;;;11142:2;11127:18;;;11114:32;;-1:-1:-1;10904:248:143:o;11157:734::-;11212:5;11260:4;11248:9;11243:3;11239:19;11235:30;11232:50;;;11278:1;11275;11268:12;11232:50;11311:4;11305:11;11355:4;11347:6;11343:17;11379:18;11447:6;11435:10;11432:22;11427:2;11415:10;11412:18;11409:46;11406:72;;;11458:18;;:::i;:::-;11500:10;11494:4;11487:24;11529:6;11520:15;;11572:9;11559:23;11551:6;11544:39;11634:2;11623:9;11619:18;11606:32;11592:46;;11661:2;11653:6;11650:14;11647:34;;;11677:1;11674;11667:12;11647:34;-1:-1:-1;11700:22:143;;11753:4;11745:13;;11741:23;-1:-1:-1;11731:51:143;;11778:1;11775;11768:12;11731:51;11815:69;11880:3;11875:2;11862:16;11857:2;11853;11849:11;11815:69;:::i;:::-;11810:2;11802:6;11798:15;11791:94;;;11157:734;;;;:::o;11896:415::-;11990:6;11998;12051:2;12039:9;12030:7;12026:23;12022:32;12019:52;;;12067:1;12064;12057:12;12019:52;12103:9;12090:23;12080:33;;12164:2;12153:9;12149:18;12136:32;12191:18;12183:6;12180:30;12177:50;;;12223:1;12220;12213:12;12177:50;12246:59;12297:7;12288:6;12277:9;12273:22;12246:59;:::i;12316:1208::-;12489:6;12497;12505;12513;12521;12529;12537;12590:3;12578:9;12569:7;12565:23;12561:33;12558:53;;;12607:1;12604;12597:12;12558:53;12643:9;12630:23;12620:33;;12703:2;12692:9;12688:18;12675:32;12716:31;12741:5;12716:31;:::i;:::-;12766:5;-1:-1:-1;12822:2:143;12807:18;;12794:32;12845:18;12875:14;;;12872:34;;;12902:1;12899;12892:12;12872:34;12925:49;12966:7;12957:6;12946:9;12942:22;12925:49;:::i;:::-;12915:59;;13026:2;13015:9;13011:18;12998:32;12983:47;;13039:33;13064:7;13039:33;:::i;:::-;13091:7;;-1:-1:-1;13145:3:143;13130:19;;13117:33;;-1:-1:-1;13203:3:143;13188:19;;13175:33;;13220:16;;;13217:36;;;13249:1;13246;13239:12;13217:36;13272:61;13325:7;13314:8;13303:9;13299:24;13272:61;:::i;:::-;13262:71;;13386:3;13375:9;13371:19;13358:33;13342:49;;13416:2;13406:8;13403:16;13400:36;;;13432:1;13429;13422:12;13400:36;;13455:63;13510:7;13499:8;13488:9;13484:24;13455:63;:::i;:::-;13445:73;;;12316:1208;;;;;;;;;;:::o;13789:675::-;13892:6;13900;13908;13916;13924;13977:3;13965:9;13956:7;13952:23;13948:33;13945:53;;;13994:1;13991;13984:12;13945:53;14033:9;14020:23;14052:31;14077:5;14052:31;:::i;:::-;14102:5;-1:-1:-1;14159:2:143;14144:18;;14131:32;14172:33;14131:32;14172:33;:::i;:::-;14224:7;-1:-1:-1;14283:2:143;14268:18;;14255:32;14296:33;14255:32;14296:33;:::i;:::-;13789:675;;;;-1:-1:-1;14348:7:143;;14402:2;14387:18;;14374:32;;-1:-1:-1;14453:3:143;14438:19;14425:33;;13789:675;-1:-1:-1;;13789:675:143:o;14469:854::-;14598:6;14606;14614;14667:2;14655:9;14646:7;14642:23;14638:32;14635:52;;;14683:1;14680;14673:12;14635:52;14723:9;14710:23;14752:18;14793:2;14785:6;14782:14;14779:34;;;14809:1;14806;14799:12;14779:34;14847:6;14836:9;14832:22;14822:32;;14892:7;14885:4;14881:2;14877:13;14873:27;14863:55;;14914:1;14911;14904:12;14863:55;14954:2;14941:16;14980:2;14972:6;14969:14;14966:34;;;14996:1;14993;14986:12;14966:34;15051:7;15044:4;15034:6;15031:1;15027:14;15023:2;15019:23;15015:34;15012:47;15009:67;;;15072:1;15069;15062:12;15009:67;15103:4;15095:13;;;;-1:-1:-1;15127:6:143;-1:-1:-1;15171:20:143;;;15158:34;;15204:16;;;15201:36;;;15233:1;15230;15223:12;15201:36;;15256:61;15309:7;15298:8;15287:9;15283:24;15256:61;:::i;15328:437::-;15407:1;15403:12;;;;15450;;;15471:61;;15525:4;15517:6;15513:17;15503:27;;15471:61;15578:2;15570:6;15567:14;15547:18;15544:38;15541:218;;-1:-1:-1;;;15612:1:143;15605:88;15716:4;15713:1;15706:15;15744:4;15741:1;15734:15;15541:218;;15328:437;;;:::o;15770:338::-;15945:2;15934:9;15927:21;15908:4;15965:45;16006:2;15995:9;15991:18;15983:6;15965:45;:::i;:::-;15957:53;;-1:-1:-1;;;;;16050:6:143;16046:55;16041:2;16030:9;16026:18;16019:83;15770:338;;;;;:::o;16113:251::-;16183:6;16236:2;16224:9;16215:7;16211:23;16207:32;16204:52;;;16252:1;16249;16242:12;16204:52;16284:9;16278:16;16303:31;16328:5;16303:31;:::i;16369:184::-;-1:-1:-1;;;16418:1:143;16411:88;16518:4;16515:1;16508:15;16542:4;16539:1;16532:15;16558:184;16628:6;16681:2;16669:9;16660:7;16656:23;16652:32;16649:52;;;16697:1;16694;16687:12;16649:52;-1:-1:-1;16720:16:143;;16558:184;-1:-1:-1;16558:184:143:o;17163:542::-;17416:2;17405:9;17398:21;17379:4;17442:56;17494:2;17483:9;17479:18;17471:6;17442:56;:::i;:::-;17546:9;17538:6;17534:22;17529:2;17518:9;17514:18;17507:50;17574:33;17600:6;17592;17574:33;:::i;:::-;17566:41;;;-1:-1:-1;;;;;17647:6:143;17643:55;17638:2;17627:9;17623:18;17616:83;17163:542;;;;;;:::o;17836:545::-;17938:2;17933:3;17930:11;17927:448;;;17974:1;17999:5;17995:2;17988:17;18044:4;18040:2;18030:19;18114:2;18102:10;18098:19;18095:1;18091:27;18085:4;18081:38;18150:4;18138:10;18135:20;18132:47;;;-1:-1:-1;18173:4:143;18132:47;18228:2;18223:3;18219:12;18216:1;18212:20;18206:4;18202:31;18192:41;;18283:82;18301:2;18294:5;18291:13;18283:82;;;18346:17;;;18327:1;18316:13;18283:82;;;18287:3;;;17836:545;;;:::o;18557:1352::-;18683:3;18677:10;18710:18;18702:6;18699:30;18696:56;;;18732:18;;:::i;:::-;18761:97;18851:6;18811:38;18843:4;18837:11;18811:38;:::i;:::-;18805:4;18761:97;:::i;:::-;18913:4;;18977:2;18966:14;;18994:1;18989:663;;;;19696:1;19713:6;19710:89;;;-1:-1:-1;19765:19:143;;;19759:26;19710:89;-1:-1:-1;;18514:1:143;18510:11;;;18506:24;18502:29;18492:40;18538:1;18534:11;;;18489:57;19812:81;;18959:944;;18989:663;17783:1;17776:14;;;17820:4;17807:18;;-1:-1:-1;;19025:20:143;;;19143:236;19157:7;19154:1;19151:14;19143:236;;;19246:19;;;19240:26;19225:42;;19338:27;;;;19306:1;19294:14;;;;19173:19;;19143:236;;;19147:3;19407:6;19398:7;19395:19;19392:201;;;19468:19;;;19462:26;-1:-1:-1;;19551:1:143;19547:14;;;19563:3;19543:24;19539:37;19535:42;19520:58;19505:74;;19392:201;-1:-1:-1;;;;;19639:1:143;19623:14;;;19619:22;19606:36;;-1:-1:-1;18557:1352:143:o;19914:261::-;20095:2;20084:9;20077:21;20058:4;20115:54;20165:2;20154:9;20150:18;20142:6;20115:54;:::i;20180:184::-;-1:-1:-1;;;20229:1:143;20222:88;20329:4;20326:1;20319:15;20353:4;20350:1;20343:15;20369:135;20408:3;20429:17;;;20426:43;;20449:18;;:::i;:::-;-1:-1:-1;20496:1:143;20485:13;;20369:135::o;21473:168::-;21546:9;;;21577;;21594:15;;;21588:22;;21574:37;21564:71;;21615:18;;:::i;21646:274::-;21686:1;21712;21702:189;;-1:-1:-1;;;21744:1:143;21737:88;21848:4;21845:1;21838:15;21876:4;21873:1;21866:15;21702:189;-1:-1:-1;21905:9:143;;21646:274::o;21925:128::-;21992:9;;;22013:11;;;22010:37;;;22027:18;;:::i;22058:125::-;22123:9;;;22144:10;;;22141:36;;;22157:18;;:::i;23042:277::-;23109:6;23162:2;23150:9;23141:7;23137:23;23133:32;23130:52;;;23178:1;23175;23168:12;23130:52;23210:9;23204:16;23263:5;23256:13;23249:21;23242:5;23239:32;23229:60;;23285:1;23282;23275:12;23650:289;23825:6;23814:9;23807:25;23868:2;23863;23852:9;23848:18;23841:30;23788:4;23888:45;23929:2;23918:9;23914:18;23906:6;23888:45;:::i;24214:573::-;24460:4;-1:-1:-1;;;;;24570:2:143;24562:6;24558:15;24547:9;24540:34;24622:2;24614:6;24610:15;24605:2;24594:9;24590:18;24583:43;;24662:6;24657:2;24646:9;24642:18;24635:34;24705:3;24700:2;24689:9;24685:18;24678:31;24726:55;24776:3;24765:9;24761:19;24753:6;24726:55;:::i;:::-;24718:63;24214:573;-1:-1:-1;;;;;;24214:573:143:o;25031:812::-;25442:25;25437:3;25430:38;25412:3;25497:6;25491:13;25513:75;25581:6;25576:2;25571:3;25567:12;25560:4;25552:6;25548:17;25513:75;:::i;:::-;25652:19;25647:2;25607:16;;;25639:11;;;25632:40;25697:13;;25719:76;25697:13;25781:2;25773:11;;25766:4;25754:17;;25719:76;:::i;:::-;25815:17;25834:2;25811:26;;25031:812;-1:-1:-1;;;;25031:812:143:o;25848:220::-;25997:2;25986:9;25979:21;25960:4;26017:45;26058:2;26047:9;26043:18;26035:6;26017:45;:::i;26425:136::-;26464:3;26492:5;26482:39;;26501:18;;:::i;:::-;-1:-1:-1;;;26537:18:143;;26425:136::o","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","addPoolManager(uint256,address)":"2cf682b0","addToCloneableStrategies(address)":"41bba0b4","allocate(uint256,bytes)":"2ec38188","batchAllocate(uint256[],bytes[])":"c6dff1cf","batchRegisterRecipient(uint256[],bytes[])":"1a20bd88","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"77da8caf","createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","distribute(uint256,address[],bytes)":"3a5fbd92","fundPool(uint256,uint256)":"5acd6fac","getBaseFee()":"15e812ad","getFeeDenominator()":"f4e1fc41","getPercentFee()":"4edbaadc","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53","getRoleAdmin(bytes32)":"248a9ca3","getStrategy(uint256)":"cfc0cc34","getTreasury()":"3b19e84a","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address,address,uint256,uint256)":"a6b63eb8","isCloneableStrategy(address)":"ab2ec589","isPoolAdmin(uint256,address)":"ab3febc6","isPoolManager(uint256,address)":"29e40d4b","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","recoverFunds(address,address)":"24ae6a27","registerRecipient(uint256,bytes)":"075c0e9c","removeFromCloneableStrategies(address)":"031e2fa1","removePoolManager(uint256,address)":"7f5a70bd","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","requestOwnershipHandover()":"25692962","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","updateBaseFee(uint256)":"8e690186","updatePercentFee(uint256)":"f54fc4a0","updatePoolMetadata(uint256,(uint256,string))":"5f9ca138","updateRegistry(address)":"1a5da6c8","updateTreasury(address)":"7f51bb1f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BaseFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentFee\",\"type\":\"uint256\"}],\"name\":\"PercentFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"PoolFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"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\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"addToCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_datas\",\"type\":\"bytes[]\"}],\"name\":\"batchAllocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"batchRegisterRecipient\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"recipientIds\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"fundPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"FEE_DENOMINATOR\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getStrategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address payable\",\"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\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"isCloneableStrategy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeFromCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removePoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"updateBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"}],\"name\":\"updatePercentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updatePoolMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"The contract must be initialized with the 'initialize()' function.\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"params\":{\"amount\":\"Amount of the base fee paid\",\"poolId\":\"ID of the pool the base fee was paid for\"}},\"BaseFeeUpdated(uint256)\":{\"params\":{\"baseFee\":\"New base fee amount\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"PercentFeeUpdated(uint256)\":{\"params\":{\"percentFee\":\"New percentage for the fee\"}},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"params\":{\"amount\":\"Amount pool was funded with when created\",\"metadata\":\"Pool metadata\",\"poolId\":\"ID of the pool created\",\"profileId\":\"ID of the profile the pool is associated with\",\"strategy\":\"Address of the strategy contract\",\"token\":\"Address of the token pool was funded with when created\"}},\"PoolFunded(uint256,uint256,uint256)\":{\"params\":{\"amount\":\"Amount funded to the pool\",\"fee\":\"Amount of the fee paid to the treasury\",\"poolId\":\"ID of the pool funded\"}},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"params\":{\"metadata\":\"Pool metadata that was updated\",\"poolId\":\"ID of the pool updated\"}},\"RegistryUpdated(address)\":{\"params\":{\"registry\":\"Address of the new registry\"}},\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"StrategyApproved(address)\":{\"params\":{\"strategy\":\"Address of the strategy approved\"}},\"StrategyRemoved(address)\":{\"params\":{\"strategy\":\"Address of the strategy removed\"}},\"TreasuryUpdated(address)\":{\"params\":{\"treasury\":\"Address of the new treasury\"}}},\"kind\":\"dev\",\"methods\":{\"addPoolManager(uint256,address)\":{\"details\":\"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to add\",\"_poolId\":\"ID of the pool\"}},\"addToCloneableStrategies(address)\":{\"details\":\"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"allocate(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().\",\"params\":{\"_data\":\"Encoded data unique to the strategy for that pool\",\"_poolId\":\"ID of the pool\"}},\"batchAllocate(uint256[],bytes[])\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.\",\"params\":{\"_datas\":\"encoded data unique to the strategy for that pool\",\"_poolIds\":\"IDs of the pools\"}},\"batchRegisterRecipient(uint256[],bytes[])\":{\"details\":\"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\",\"params\":{\"_data\":\"An array of encoded data unique to a strategy that registerRecipient() requires.\",\"_poolIds\":\"ID's of the pools\"},\"returns\":{\"recipientIds\":\"The recipient IDs that have been registered\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"custom:initstrategydata\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'\",\"details\":\"'msg.sender' must be owner or member of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool\",\"_metadata\":\"The metadata of the pool\",\"_profileId\":\"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the strategy contract the pool will use.\",\"_token\":\"The address of the token\"}},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"details\":\"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token you want to deposit into the pool on initialization\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool, and can be added/removed later by the pool admin\",\"_metadata\":\"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\",\"_profileId\":\"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the deployed custom strategy\",\"_token\":\"The address of the token you want to use in your pool\"},\"returns\":{\"poolId\":\"The ID of the pool\"}},\"distribute(uint256,address[],bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.\",\"params\":{\"_data\":\"Encoded data unique to the strategy\",\"_poolId\":\"ID of the pool\",\"_recipientIds\":\"Ids of the recipients of the distribution\"}},\"fundPool(uint256,uint256)\":{\"details\":\"Anyone can fund a pool and call this function.\",\"params\":{\"_amount\":\"The amount to be deposited into the pool\",\"_poolId\":\"ID of the pool\"}},\"getBaseFee()\":{\"returns\":{\"_0\":\"The base fee\"}},\"getFeeDenominator()\":{\"returns\":{\"FEE_DENOMINATOR\":\"The fee denominator is (1e18) which represents 100%\"}},\"getPercentFee()\":{\"returns\":{\"_0\":\"The fee percentage (1e18 = 100%)\"}},\"getPool(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The 'Pool' struct\"}},\"getRegistry()\":{\"returns\":{\"_0\":\"The registry address\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStrategy(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The address of the strategy\"}},\"getTreasury()\":{\"returns\":{\"_0\":\"The treasury address\"}},\"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,address,address,uint256,uint256)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer\",\"params\":{\"_baseFee\":\"The base fee\",\"_owner\":\"The owner of allo\",\"_percentFee\":\"The percentage fee\",\"_registry\":\"The address of the registry\",\"_treasury\":\"The address of the treasury\"}},\"isCloneableStrategy(address)\":{\"params\":{\"_strategy\":\"The address of the strategy\"},\"returns\":{\"_0\":\"'true' if the strategy is cloneable, otherwise 'false'\"}},\"isPoolAdmin(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool admin, otherwise 'false'\"}},\"isPoolManager(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool manager, otherwise 'false'\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be Allo owner\",\"params\":{\"_recipient\":\"The recipient\",\"_token\":\"The token to transfer\"}},\"registerRecipient(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().\",\"params\":{\"_data\":\"Encoded data unique to a strategy that registerRecipient() requires\",\"_poolId\":\"ID of the pool\"},\"returns\":{\"_0\":\"recipientId The recipient ID that has been registered\"}},\"removeFromCloneableStrategies(address)\":{\"details\":\"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"removePoolManager(uint256,address)\":{\"details\":\"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to remove\",\"_poolId\":\"ID of the pool\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"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 `account`. May emit a {RoleRevoked} event.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"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\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"updateBaseFee(uint256)\":{\"details\":\"Use this to update the base fee. 'msg.sender' must be Allo owner.\",\"params\":{\"_baseFee\":\"The new base fee\"}},\"updatePercentFee(uint256)\":{\"details\":\"Use this to update the fee percentage. 'msg.sender' must be Allo owner.\",\"params\":{\"_percentFee\":\"The new fee\"}},\"updatePoolMetadata(uint256,(uint256,string))\":{\"details\":\"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\",\"params\":{\"_metadata\":\"The new metadata of the pool\",\"_poolId\":\"ID of the pool\"}},\"updateRegistry(address)\":{\"details\":\"Use this to update the registry address. 'msg.sender' must be Allo owner.\",\"params\":{\"_registry\":\"The new registry address\"}},\"updateTreasury(address)\":{\"details\":\"Use this to update the treasury address. 'msg.sender' must be Allo owner.\",\"params\":{\"_treasury\":\"The new treasury address\"}}},\"stateVariables\":{\"_nonces\":{\"details\":\"'msg.sender' -> 'nonce' for cloning strategies\"},\"baseFee\":{\"details\":\"This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address.\"},\"cloneableStrategies\":{\"details\":\"Strategy.address -> bool\"},\"percentFee\":{\"details\":\"How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%\"},\"pools\":{\"details\":\"'Pool.id' -> 'Pool'\"}},\"title\":\"Allo\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"notice\":\"Emitted when the base fee is paid\"},\"BaseFeeUpdated(uint256)\":{\"notice\":\"Emitted when the base fee is updated\"},\"PercentFeeUpdated(uint256)\":{\"notice\":\"Emitted when the percent fee is updated\"},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"notice\":\"Event emitted when a new pool is created\"},\"PoolFunded(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a pool is funded\"},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"notice\":\"Emitted when a pools metadata is updated\"},\"RegistryUpdated(address)\":{\"notice\":\"Emitted when the registry address is updated\"},\"StrategyApproved(address)\":{\"notice\":\"Emitted when a strategy is approved and added to the cloneable strategies\"},\"StrategyRemoved(address)\":{\"notice\":\"Emitted when a strategy is removed from the cloneable strategies\"},\"TreasuryUpdated(address)\":{\"notice\":\"Emitted when the treasury address is updated\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"addPoolManager(uint256,address)\":{\"notice\":\"Add a pool manager\"},\"addToCloneableStrategies(address)\":{\"notice\":\"Add a strategy to the allowlist.\"},\"allocate(uint256,bytes)\":{\"notice\":\"Allocate to a recipient or multiple recipients.\"},\"batchAllocate(uint256[],bytes[])\":{\"notice\":\"Allocate to multiple pools\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"notice\":\"Register multiple recipients to multiple pools.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (by cloning a cloneable strategies).\"},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (with a custom strategy)\"},\"distribute(uint256,address[],bytes)\":{\"notice\":\"Distribute to a recipient or multiple recipients.\"},\"fundPool(uint256,uint256)\":{\"notice\":\"Fund a pool.\"},\"getBaseFee()\":{\"notice\":\"Getter for base fee.\"},\"getFeeDenominator()\":{\"notice\":\"Getter for the fee denominator\"},\"getPercentFee()\":{\"notice\":\"Getter for fee percentage.\"},\"getPool(uint256)\":{\"notice\":\"Getter for the 'Pool'.\"},\"getRegistry()\":{\"notice\":\"Getter for registry.\"},\"getStrategy(uint256)\":{\"notice\":\"Getter for the strategy.\"},\"getTreasury()\":{\"notice\":\"Getter for treasury address.\"},\"initialize(address,address,address,uint256,uint256)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isCloneableStrategy(address)\":{\"notice\":\"Getter for if strategy is cloneable.\"},\"isPoolAdmin(uint256,address)\":{\"notice\":\"Checks if the address is a pool admin.\"},\"isPoolManager(uint256,address)\":{\"notice\":\"Checks if the address is a pool manager\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfer the funds recovered to the recipient\"},\"registerRecipient(uint256,bytes)\":{\"notice\":\"Passes _data through to the strategy for that pool.\"},\"removeFromCloneableStrategies(address)\":{\"notice\":\"Remove a strategy from the allowlist\"},\"removePoolManager(uint256,address)\":{\"notice\":\"Remove a pool manager\"},\"updateBaseFee(uint256)\":{\"notice\":\"Updates the base fee.\"},\"updatePercentFee(uint256)\":{\"notice\":\"Updates the fee percentage.\"},\"updatePoolMetadata(uint256,(uint256,string))\":{\"notice\":\"Update pool metadata\"},\"updateRegistry(address)\":{\"notice\":\"Updates the registry address.\"},\"updateTreasury(address)\":{\"notice\":\"Updates the treasury address.\"}},\"notice\":\"This contract is used to create & manage pools as well as manage the protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Allo.sol\":\"Allo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BaseFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256","indexed":false}],"type":"event","name":"BaseFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"percentFee","type":"uint256","indexed":false}],"type":"event","name":"PercentFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"PoolFunded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"registry","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasuryUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPoolManager"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterRecipient","outputs":[{"internalType":"address[]","name":"recipientIds","type":"address[]"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundPool"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getFeeDenominator","outputs":[{"internalType":"uint256","name":"FEE_DENOMINATOR","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPercentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStrategy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_percentFee","type":"uint256"},{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"isCloneableStrategy","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}]},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function","name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFromCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePoolManager"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateBaseFee"},{"inputs":[{"internalType":"uint256","name":"_percentFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updatePercentFee"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePoolMetadata"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRegistry"},{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTreasury"}],"devdoc":{"kind":"dev","methods":{"addPoolManager(uint256,address)":{"details":"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to add","_poolId":"ID of the pool"}},"addToCloneableStrategies(address)":{"details":"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"allocate(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().","params":{"_data":"Encoded data unique to the strategy for that pool","_poolId":"ID of the pool"}},"batchAllocate(uint256[],bytes[])":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.","params":{"_datas":"encoded data unique to the strategy for that pool","_poolIds":"IDs of the pools"}},"batchRegisterRecipient(uint256[],bytes[])":{"details":"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.","params":{"_data":"An array of encoded data unique to a strategy that registerRecipient() requires.","_poolIds":"ID's of the pools"},"returns":{"recipientIds":"The recipient IDs that have been registered"}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"completeOwnershipHandover(address)":{"details":"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"custom:initstrategydata":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'","details":"'msg.sender' must be owner or member of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool","_metadata":"The metadata of the pool","_profileId":"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the strategy contract the pool will use.","_token":"The address of the token"}},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"details":"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token you want to deposit into the pool on initialization","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool, and can be added/removed later by the pool admin","_metadata":"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)","_profileId":"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the deployed custom strategy","_token":"The address of the token you want to use in your pool"},"returns":{"poolId":"The ID of the pool"}},"distribute(uint256,address[],bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.","params":{"_data":"Encoded data unique to the strategy","_poolId":"ID of the pool","_recipientIds":"Ids of the recipients of the distribution"}},"fundPool(uint256,uint256)":{"details":"Anyone can fund a pool and call this function.","params":{"_amount":"The amount to be deposited into the pool","_poolId":"ID of the pool"}},"getBaseFee()":{"returns":{"_0":"The base fee"}},"getFeeDenominator()":{"returns":{"FEE_DENOMINATOR":"The fee denominator is (1e18) which represents 100%"}},"getPercentFee()":{"returns":{"_0":"The fee percentage (1e18 = 100%)"}},"getPool(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The 'Pool' struct"}},"getRegistry()":{"returns":{"_0":"The registry address"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getStrategy(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The address of the strategy"}},"getTreasury()":{"returns":{"_0":"The treasury address"}},"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,address,address,uint256,uint256)":{"details":"During upgrade -> a higher version should be passed to reinitializer","params":{"_baseFee":"The base fee","_owner":"The owner of allo","_percentFee":"The percentage fee","_registry":"The address of the registry","_treasury":"The address of the treasury"}},"isCloneableStrategy(address)":{"params":{"_strategy":"The address of the strategy"},"returns":{"_0":"'true' if the strategy is cloneable, otherwise 'false'"}},"isPoolAdmin(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool admin, otherwise 'false'"}},"isPoolManager(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool manager, otherwise 'false'"}},"owner()":{"details":"Returns the owner of the contract."},"ownershipHandoverExpiresAt(address)":{"details":"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"recoverFunds(address,address)":{"details":"'msg.sender' must be Allo owner","params":{"_recipient":"The recipient","_token":"The token to transfer"}},"registerRecipient(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().","params":{"_data":"Encoded data unique to a strategy that registerRecipient() requires","_poolId":"ID of the pool"},"returns":{"_0":"recipientId The recipient ID that has been registered"}},"removeFromCloneableStrategies(address)":{"details":"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"removePoolManager(uint256,address)":{"details":"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to remove","_poolId":"ID of the pool"}},"renounceOwnership()":{"details":"Allows the owner to renounce their ownership."},"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 `account`. May emit a {RoleRevoked} event."},"requestOwnershipHandover()":{"details":"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default."},"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":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"updateBaseFee(uint256)":{"details":"Use this to update the base fee. 'msg.sender' must be Allo owner.","params":{"_baseFee":"The new base fee"}},"updatePercentFee(uint256)":{"details":"Use this to update the fee percentage. 'msg.sender' must be Allo owner.","params":{"_percentFee":"The new fee"}},"updatePoolMetadata(uint256,(uint256,string))":{"details":"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.","params":{"_metadata":"The new metadata of the pool","_poolId":"ID of the pool"}},"updateRegistry(address)":{"details":"Use this to update the registry address. 'msg.sender' must be Allo owner.","params":{"_registry":"The new registry address"}},"updateTreasury(address)":{"details":"Use this to update the treasury address. 'msg.sender' must be Allo owner.","params":{"_treasury":"The new treasury address"}}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"addPoolManager(uint256,address)":{"notice":"Add a pool manager"},"addToCloneableStrategies(address)":{"notice":"Add a strategy to the allowlist."},"allocate(uint256,bytes)":{"notice":"Allocate to a recipient or multiple recipients."},"batchAllocate(uint256[],bytes[])":{"notice":"Allocate to multiple pools"},"batchRegisterRecipient(uint256[],bytes[])":{"notice":"Register multiple recipients to multiple pools."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (by cloning a cloneable strategies)."},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (with a custom strategy)"},"distribute(uint256,address[],bytes)":{"notice":"Distribute to a recipient or multiple recipients."},"fundPool(uint256,uint256)":{"notice":"Fund a pool."},"getBaseFee()":{"notice":"Getter for base fee."},"getFeeDenominator()":{"notice":"Getter for the fee denominator"},"getPercentFee()":{"notice":"Getter for fee percentage."},"getPool(uint256)":{"notice":"Getter for the 'Pool'."},"getRegistry()":{"notice":"Getter for registry."},"getStrategy(uint256)":{"notice":"Getter for the strategy."},"getTreasury()":{"notice":"Getter for treasury address."},"initialize(address,address,address,uint256,uint256)":{"notice":"Initializes the contract after an upgrade"},"isCloneableStrategy(address)":{"notice":"Getter for if strategy is cloneable."},"isPoolAdmin(uint256,address)":{"notice":"Checks if the address is a pool admin."},"isPoolManager(uint256,address)":{"notice":"Checks if the address is a pool manager"},"recoverFunds(address,address)":{"notice":"Transfer the funds recovered to the recipient"},"registerRecipient(uint256,bytes)":{"notice":"Passes _data through to the strategy for that pool."},"removeFromCloneableStrategies(address)":{"notice":"Remove a strategy from the allowlist"},"removePoolManager(uint256,address)":{"notice":"Remove a pool manager"},"updateBaseFee(uint256)":{"notice":"Updates the base fee."},"updatePercentFee(uint256)":{"notice":"Updates the fee percentage."},"updatePoolMetadata(uint256,(uint256,string))":{"notice":"Update pool metadata"},"updateRegistry(address)":{"notice":"Updates the registry address."},"updateTreasury(address)":{"notice":"Updates the treasury address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Allo.sol":"Allo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":54008,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":52428,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)"},{"astId":52735,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":53206,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_status","offset":0,"slot":"151","type":"t_uint256"},{"astId":53275,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":34,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"percentFee","offset":0,"slot":"201","type":"t_uint256"},{"astId":37,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"baseFee","offset":0,"slot":"202","type":"t_uint256"},{"astId":40,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_poolIndex","offset":0,"slot":"203","type":"t_uint256"},{"astId":43,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"treasury","offset":0,"slot":"204","type":"t_address_payable"},{"astId":47,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"registry","offset":0,"slot":"205","type":"t_contract(IRegistry)2802"},{"astId":52,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_nonces","offset":0,"slot":"206","type":"t_mapping(t_address,t_uint256)"},{"astId":58,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"pools","offset":0,"slot":"207","type":"t_mapping(t_uint256,t_struct(Pool)2319_storage)"},{"astId":63,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"cloneableStrategies","offset":0,"slot":"208","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(IStrategy)2969":{"encoding":"inplace","label":"contract IStrategy","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52423_storage"},"t_mapping(t_uint256,t_struct(Pool)2319_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct IAllo.Pool)","numberOfBytes":"32","value":"t_struct(Pool)2319_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(Pool)2319_storage":{"encoding":"inplace","label":"struct IAllo.Pool","numberOfBytes":"224","members":[{"astId":2306,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"profileId","offset":0,"slot":"0","type":"t_bytes32"},{"astId":2309,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"strategy","offset":0,"slot":"1","type":"t_contract(IStrategy)2969"},{"astId":2311,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"token","offset":0,"slot":"2","type":"t_address"},{"astId":2314,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"metadata","offset":0,"slot":"3","type":"t_struct(Metadata)3098_storage"},{"astId":2316,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"managerRole","offset":0,"slot":"5","type":"t_bytes32"},{"astId":2318,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"adminRole","offset":0,"slot":"6","type":"t_bytes32"}]},"t_struct(RoleData)52423_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52420,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52422,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/Allo.sol","id":1391,"exportedSymbols":{"AccessControlUpgradeable":[52736],"AddressUpgradeable":[53684],"Allo":[1390],"Clone":[3002],"ContextUpgradeable":[53735],"ERC165Upgradeable":[54009],"Errors":[3089],"IAccessControlUpgradeable":[52809],"IAllo":[2610],"IERC165Upgradeable":[54021],"IERC20Upgradeable":[53354],"IRegistry":[2802],"IStrategy":[2969],"Initializable":[53191],"MathUpgradeable":[54887],"Metadata":[3098],"Native":[3106],"Ownable":[4095],"ReentrancyGuardUpgradeable":[53276],"SignedMathUpgradeable":[54992],"StringsUpgradeable":[53964],"Transfer":[3317]},"nodeType":"SourceUnit","src":"42:34082:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"42:23:0","nodes":[],"literals":["solidity","0.8",".19"]},{"id":2,"nodeType":"ImportDirective","src":"89:37:0","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/auth/Ownable.sol","file":"solady/src/auth/Ownable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":4096,"symbolAliases":[],"unitAlias":""},{"id":3,"nodeType":"ImportDirective","src":"127:84:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53192,"symbolAliases":[],"unitAlias":""},{"id":4,"nodeType":"ImportDirective","src":"212:88:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53355,"symbolAliases":[],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"301:90:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":52737,"symbolAliases":[],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"392:94:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53277,"symbolAliases":[],"unitAlias":""},{"id":7,"nodeType":"ImportDirective","src":"501:32:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"./interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":2611,"symbolAliases":[],"unitAlias":""},{"id":9,"nodeType":"ImportDirective","src":"557:44:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"./libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":8,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"565:5:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11,"nodeType":"ImportDirective","src":"602:46:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"./libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":10,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"610:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12,"nodeType":"ImportDirective","src":"649:32:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"./libraries/Native.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3107,"symbolAliases":[],"unitAlias":""},{"id":14,"nodeType":"ImportDirective","src":"682:50:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Transfer.sol","file":"./libraries/Transfer.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3318,"symbolAliases":[{"foreign":{"id":13,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"690:8:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1390,"nodeType":"ContractDefinition","src":"5076:29047:0","nodes":[{"id":34,"nodeType":"VariableDeclaration","src":"5862:26:0","nodes":[],"constant":false,"documentation":{"id":32,"nodeType":"StructuredDocumentation","src":"5344:513:0","text":"@notice Percentage that is used to calculate the fee Allo takes from each pool when funded\n and is deducted when a pool is funded. So if you want to fund a round with 1000 DAI and the fee\n percentage is 1e17 (10%), then 100 DAI will be deducted from the 1000 DAI and the pool will be\n funded with 900 DAI. The fee is then sent to the treasury address.\n @dev How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%"},"mutability":"mutable","name":"percentFee","nameLocation":"5878:10:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33,"name":"uint256","nodeType":"ElementaryTypeName","src":"5862:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":37,"nodeType":"VariableDeclaration","src":"6339:24:0","nodes":[],"constant":false,"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"5895:439:0","text":"@notice Fee Allo charges for all pools on creation\n @dev This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool\n with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created\n with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address."},"mutability":"mutable","name":"baseFee","nameLocation":"6356:7:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"6431:26:0","nodes":[],"constant":false,"documentation":{"id":38,"nodeType":"StructuredDocumentation","src":"6370:56:0","text":"@notice Incremental index to track the pools created"},"mutability":"mutable","name":"_poolIndex","nameLocation":"6447:10:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"6431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":43,"nodeType":"VariableDeclaration","src":"6494:32:0","nodes":[],"constant":false,"documentation":{"id":41,"nodeType":"StructuredDocumentation","src":"6464:25:0","text":"@notice Allo treasury"},"mutability":"mutable","name":"treasury","nameLocation":"6518:8:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"6494:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"private"},{"id":47,"nodeType":"VariableDeclaration","src":"6567:26:0","nodes":[],"constant":false,"documentation":{"id":44,"nodeType":"StructuredDocumentation","src":"6533:29:0","text":"@notice Registry contract"},"mutability":"mutable","name":"registry","nameLocation":"6585:8:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":46,"nodeType":"UserDefinedTypeName","pathNode":{"id":45,"name":"IRegistry","nameLocations":["6567:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6567:9:0"},"referencedDeclaration":2802,"src":"6567:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"private"},{"id":52,"nodeType":"VariableDeclaration","src":"6733:43:0","nodes":[],"constant":false,"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"6600:128:0","text":"@notice Maps the `msg.sender` to a `nonce` to prevent duplicates\n @dev 'msg.sender' -> 'nonce' for cloning strategies"},"mutability":"mutable","name":"_nonces","nameLocation":"6769:7:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"6741:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6733:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"6752:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":58,"nodeType":"VariableDeclaration","src":"6869:38:0","nodes":[],"constant":false,"documentation":{"id":53,"nodeType":"StructuredDocumentation","src":"6783:81:0","text":"@notice Maps the pool ID to the pool details\n @dev 'Pool.id' -> 'Pool'"},"mutability":"mutable","name":"pools","nameLocation":"6902:5:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool)"},"typeName":{"id":57,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54,"name":"uint256","nodeType":"ElementaryTypeName","src":"6877:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"6869:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56,"nodeType":"UserDefinedTypeName","pathNode":{"id":55,"name":"Pool","nameLocations":["6888:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"6888:4:0"},"referencedDeclaration":2319,"src":"6888:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}}},"visibility":"private"},{"id":63,"nodeType":"VariableDeclaration","src":"7064:52:0","nodes":[],"constant":false,"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"6914:145:0","text":"@notice Returns a bool for whether a strategy is cloneable or not using the strategy address as the key\n @dev Strategy.address -> bool"},"mutability":"mutable","name":"cloneableStrategies","nameLocation":"7097:19:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":62,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":60,"name":"address","nodeType":"ElementaryTypeName","src":"7072:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7064:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":61,"name":"bool","nodeType":"ElementaryTypeName","src":"7083:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":101,"nodeType":"FunctionDefinition","src":"7626:593:0","nodes":[],"body":{"id":100,"nodeType":"Block","src":"7819:400:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":81,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"7907:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7890:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7890:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83,"nodeType":"ExpressionStatement","src":"7890:24:0"},{"expression":{"arguments":[{"id":85,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"7984:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84,"name":"_updateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"7968:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7968:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87,"nodeType":"ExpressionStatement","src":"7968:26:0"},{"expression":{"arguments":[{"id":89,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"8064:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":88,"name":"_updateTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"8048:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8048:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91,"nodeType":"ExpressionStatement","src":"8048:26:0"},{"expression":{"arguments":[{"id":93,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"8137:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":92,"name":"_updatePercentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"8119:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":95,"nodeType":"ExpressionStatement","src":"8119:30:0"},{"expression":{"arguments":[{"id":97,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"8203:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":96,"name":"_updateBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"8188:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99,"nodeType":"ExpressionStatement","src":"8188:24:0"}]},"baseFunctions":[2404],"documentation":{"id":64,"nodeType":"StructuredDocumentation","src":"7257:364:0","text":"@notice Initializes the contract after an upgrade\n @dev During upgrade -> a higher version should be passed to reinitializer\n @param _owner The owner of allo\n @param _registry The address of the registry\n @param _treasury The address of the treasury\n @param _percentFee The percentage fee\n @param _baseFee The base fee"},"functionSelector":"a6b63eb8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"31","id":77,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":78,"kind":"modifierInvocation","modifierName":{"id":76,"name":"reinitializer","nameLocations":["7802:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":53126,"src":"7802:13:0"},"nodeType":"ModifierInvocation","src":"7802:16:0"}],"name":"initialize","nameLocation":"7635:10:0","parameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"mutability":"mutable","name":"_owner","nameLocation":"7663:6:0","nodeType":"VariableDeclaration","scope":101,"src":"7655:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"7655:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68,"mutability":"mutable","name":"_registry","nameLocation":"7687:9:0","nodeType":"VariableDeclaration","scope":101,"src":"7679:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"7679:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"_treasury","nameLocation":"7722:9:0","nodeType":"VariableDeclaration","scope":101,"src":"7706:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"7706:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":72,"mutability":"mutable","name":"_percentFee","nameLocation":"7749:11:0","nodeType":"VariableDeclaration","scope":101,"src":"7741:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71,"name":"uint256","nodeType":"ElementaryTypeName","src":"7741:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74,"mutability":"mutable","name":"_baseFee","nameLocation":"7778:8:0","nodeType":"VariableDeclaration","scope":101,"src":"7770:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7645:147:0"},"returnParameters":{"id":79,"nodeType":"ParameterList","parameters":[],"src":"7819:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":112,"nodeType":"ModifierDefinition","src":"8573:100:0","nodes":[],"body":{"id":111,"nodeType":"Block","src":"8615:58:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":107,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104,"src":"8647:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":106,"name":"_checkOnlyPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"8625:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109,"nodeType":"ExpressionStatement","src":"8625:30:0"},{"id":110,"nodeType":"PlaceholderStatement","src":"8665:1:0"}]},"documentation":{"id":102,"nodeType":"StructuredDocumentation","src":"8463:105:0","text":"@notice Reverts UNAUTHORIZED() if the caller is not a pool manager\n @param _poolId The pool id"},"name":"onlyPoolManager","nameLocation":"8582:15:0","parameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"_poolId","nameLocation":"8606:7:0","nodeType":"VariableDeclaration","scope":112,"src":"8598:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":103,"name":"uint256","nodeType":"ElementaryTypeName","src":"8598:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8597:17:0"},"virtual":false,"visibility":"internal"},{"id":123,"nodeType":"ModifierDefinition","src":"8787:96:0","nodes":[],"body":{"id":122,"nodeType":"Block","src":"8827:56:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":118,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"8857:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":117,"name":"_checkOnlyPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"8837:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8837:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120,"nodeType":"ExpressionStatement","src":"8837:28:0"},{"id":121,"nodeType":"PlaceholderStatement","src":"8875:1:0"}]},"documentation":{"id":113,"nodeType":"StructuredDocumentation","src":"8679:103:0","text":"@notice Reverts UNAUTHORIZED() if the caller is not a pool admin\n @param _poolId The pool id"},"name":"onlyPoolAdmin","nameLocation":"8796:13:0","parameters":{"id":116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115,"mutability":"mutable","name":"_poolId","nameLocation":"8818:7:0","nodeType":"VariableDeclaration","scope":123,"src":"8810:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8810:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8809:17:0"},"virtual":false,"visibility":"internal"},{"id":175,"nodeType":"FunctionDefinition","src":"10281:884:0","nodes":[],"body":{"id":174,"nodeType":"Block","src":"10582:583:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":145,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"10687:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10708:1:0","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":147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10700:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":146,"name":"address","nodeType":"ElementaryTypeName","src":"10700:7:0","typeDescriptions":{}}},"id":149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10687:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":154,"nodeType":"IfStatement","src":"10683:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":151,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"10719:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":153,"nodeType":"RevertStatement","src":"10712:21:0"}},{"condition":{"arguments":[{"id":156,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"10919:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":155,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"10898:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10898:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":161,"nodeType":"IfStatement","src":"10894:66:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":158,"name":"IS_APPROVED_STRATEGY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"10938:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10938:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":160,"nodeType":"RevertStatement","src":"10931:29:0"}},{"expression":{"arguments":[{"id":163,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"11067:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":165,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"11089:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":164,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"11079:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$2969_$","typeString":"type(contract IStrategy)"}},"id":166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11079:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":167,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"11101:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":168,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"11120:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":169,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"11128:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":170,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":137,"src":"11137:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":171,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"11148:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":162,"name":"_createPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"11055:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,contract IStrategy,bytes memory,address,uint256,struct Metadata memory,address[] memory) returns (uint256)"}},"id":172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11055:103:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":144,"id":173,"nodeType":"Return","src":"11048:110:0"}]},"documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"9025:1251:0","text":"@notice Creates a new pool (with a custom strategy)\n @dev 'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data\n will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy\n address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must\n be a member or owner of the profile id passed as '_profileId'.\n @param _profileId The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\n @param _strategy The address of the deployed custom strategy\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token you want to use in your pool\n @param _amount The amount of the token you want to deposit into the pool on initialization\n @param _metadata The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\n @param _managers The managers of the pool, and can be added/removed later by the pool admin\n @return poolId The ID of the pool"},"functionSelector":"e1007d4a","implemented":true,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"10290:28:0","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"_profileId","nameLocation":"10336:10:0","nodeType":"VariableDeclaration","scope":175,"src":"10328:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10328:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"_strategy","nameLocation":"10364:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10356:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"10356:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"_initStrategyData","nameLocation":"10396:17:0","nodeType":"VariableDeclaration","scope":175,"src":"10383:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":129,"name":"bytes","nodeType":"ElementaryTypeName","src":"10383:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":132,"mutability":"mutable","name":"_token","nameLocation":"10431:6:0","nodeType":"VariableDeclaration","scope":175,"src":"10423:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":131,"name":"address","nodeType":"ElementaryTypeName","src":"10423:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":134,"mutability":"mutable","name":"_amount","nameLocation":"10455:7:0","nodeType":"VariableDeclaration","scope":175,"src":"10447:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133,"name":"uint256","nodeType":"ElementaryTypeName","src":"10447:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":137,"mutability":"mutable","name":"_metadata","nameLocation":"10488:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10472:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":136,"nodeType":"UserDefinedTypeName","pathNode":{"id":135,"name":"Metadata","nameLocations":["10472:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10472:8:0"},"referencedDeclaration":3098,"src":"10472:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"_managers","nameLocation":"10524:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10507:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"10507:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ArrayTypeName","src":"10507:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10318:221:0"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"poolId","nameLocation":"10574:6:0","nodeType":"VariableDeclaration","scope":175,"src":"10566:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":142,"name":"uint256","nodeType":"ElementaryTypeName","src":"10566:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10565:16:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":229,"nodeType":"FunctionDefinition","src":"11971:701:0","nodes":[],"body":{"id":228,"nodeType":"Block","src":"12267:405:0","nodes":[],"statements":[{"condition":{"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12281:32:0","subExpression":{"arguments":[{"id":200,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":180,"src":"12303:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":199,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"12282:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12282:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":207,"nodeType":"IfStatement","src":"12277:93:0","trueBody":{"id":206,"nodeType":"Block","src":"12315:55:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":203,"name":"NOT_APPROVED_STRATEGY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"12336:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":205,"nodeType":"RevertStatement","src":"12329:30:0"}]}},{"expression":{"arguments":[{"id":209,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"12451:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":213,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":180,"src":"12503:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12514:21:0","subExpression":{"baseExpression":{"id":214,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"12514:7:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":217,"indexExpression":{"expression":{"id":215,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12522:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12526:6:0","memberName":"sender","nodeType":"MemberAccess","src":"12522:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12514:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":211,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"12485:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12491:11:0","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"12485:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12485:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":210,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"12475:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$2969_$","typeString":"type(contract IStrategy)"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12475:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":221,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"12551:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":222,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"12582:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":223,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"12602:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":224,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"12623:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":225,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"12646:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":208,"name":"_createPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"12426:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,contract IStrategy,bytes memory,address,uint256,struct Metadata memory,address[] memory) returns (uint256)"}},"id":226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12426:239:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":198,"id":227,"nodeType":"Return","src":"12419:246:0"}]},"documentation":{"id":176,"nodeType":"StructuredDocumentation","src":"11171:795:0","text":"@notice Creates a new pool (by cloning a cloneable strategies).\n @dev 'msg.sender' must be owner or member of the profile id passed as '_profileId'.\n @param _profileId The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\n @param _strategy The address of the strategy contract the pool will use.\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token\n @param _amount The amount of the token\n @param _metadata The metadata of the pool\n @param _managers The managers of the pool\n @custom:initstrategydata The encoded data will be specific to a given strategy requirements,\n reference the strategy implementation of 'initialize()'"},"functionSelector":"77da8caf","implemented":true,"kind":"function","modifiers":[{"id":195,"kind":"modifierInvocation","modifierName":{"id":194,"name":"nonReentrant","nameLocations":["12229:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"12229:12:0"},"nodeType":"ModifierInvocation","src":"12229:12:0"}],"name":"createPool","nameLocation":"11980:10:0","parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_profileId","nameLocation":"12008:10:0","nodeType":"VariableDeclaration","scope":229,"src":"12000:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12000:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":180,"mutability":"mutable","name":"_strategy","nameLocation":"12036:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12028:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":179,"name":"address","nodeType":"ElementaryTypeName","src":"12028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":182,"mutability":"mutable","name":"_initStrategyData","nameLocation":"12068:17:0","nodeType":"VariableDeclaration","scope":229,"src":"12055:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":181,"name":"bytes","nodeType":"ElementaryTypeName","src":"12055:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":184,"mutability":"mutable","name":"_token","nameLocation":"12103:6:0","nodeType":"VariableDeclaration","scope":229,"src":"12095:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"12095:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":186,"mutability":"mutable","name":"_amount","nameLocation":"12127:7:0","nodeType":"VariableDeclaration","scope":229,"src":"12119:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":185,"name":"uint256","nodeType":"ElementaryTypeName","src":"12119:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"_metadata","nameLocation":"12160:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12144:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":188,"nodeType":"UserDefinedTypeName","pathNode":{"id":187,"name":"Metadata","nameLocations":["12144:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12144:8:0"},"referencedDeclaration":3098,"src":"12144:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":192,"mutability":"mutable","name":"_managers","nameLocation":"12196:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12179:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"12179:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":191,"nodeType":"ArrayTypeName","src":"12179:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11990:221:0"},"returnParameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"mutability":"mutable","name":"poolId","nameLocation":"12259:6:0","nodeType":"VariableDeclaration","scope":229,"src":"12251:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint256","nodeType":"ElementaryTypeName","src":"12251:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12250:16:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":260,"nodeType":"FunctionDefinition","src":"12894:247:0","nodes":[],"body":{"id":259,"nodeType":"Block","src":"13000:141:0","nodes":[],"statements":[{"assignments":[243],"declarations":[{"constant":false,"id":243,"mutability":"mutable","name":"pool","nameLocation":"13023:4:0","nodeType":"VariableDeclaration","scope":259,"src":"13010:17:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":242,"nodeType":"UserDefinedTypeName","pathNode":{"id":241,"name":"Pool","nameLocations":["13010:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"13010:4:0"},"referencedDeclaration":2319,"src":"13010:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":247,"initialValue":{"baseExpression":{"id":244,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"13030:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":246,"indexExpression":{"id":245,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"13036:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13030:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13010:34:0"},{"expression":{"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":248,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"13054:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool storage pointer"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13059:8:0","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2314,"src":"13054:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":251,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"13070:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"13054:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":253,"nodeType":"ExpressionStatement","src":"13054:25:0"},{"eventCall":{"arguments":[{"id":255,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"13115:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":256,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"13124:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":254,"name":"PoolMetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2344,"src":"13095:19:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,struct Metadata memory)"}},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13095:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":258,"nodeType":"EmitStatement","src":"13090:44:0"}]},"baseFunctions":[2413],"documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"12678:211:0","text":"@notice Update pool metadata\n @dev 'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\n @param _poolId ID of the pool\n @param _metadata The new metadata of the pool"},"functionSelector":"5f9ca138","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":238,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"12991:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":239,"kind":"modifierInvocation","modifierName":{"id":237,"name":"onlyPoolManager","nameLocations":["12975:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":112,"src":"12975:15:0"},"nodeType":"ModifierInvocation","src":"12975:24:0"}],"name":"updatePoolMetadata","nameLocation":"12903:18:0","parameters":{"id":236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":232,"mutability":"mutable","name":"_poolId","nameLocation":"12930:7:0","nodeType":"VariableDeclaration","scope":260,"src":"12922:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":231,"name":"uint256","nodeType":"ElementaryTypeName","src":"12922:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"_metadata","nameLocation":"12955:9:0","nodeType":"VariableDeclaration","scope":260,"src":"12939:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"Metadata","nameLocations":["12939:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12939:8:0"},"referencedDeclaration":3098,"src":"12939:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"12921:44:0"},"returnParameters":{"id":240,"nodeType":"ParameterList","parameters":[],"src":"13000:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":273,"nodeType":"FunctionDefinition","src":"13330:105:0","nodes":[],"body":{"id":272,"nodeType":"Block","src":"13392:43:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":269,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"13418:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":268,"name":"_updateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"13402:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13402:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":271,"nodeType":"ExpressionStatement","src":"13402:26:0"}]},"baseFunctions":[2419],"documentation":{"id":261,"nodeType":"StructuredDocumentation","src":"13147:178:0","text":"@notice Updates the registry address.\n @dev Use this to update the registry address. 'msg.sender' must be Allo owner.\n @param _registry The new registry address"},"functionSelector":"1a5da6c8","implemented":true,"kind":"function","modifiers":[{"id":266,"kind":"modifierInvocation","modifierName":{"id":265,"name":"onlyOwner","nameLocations":["13382:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13382:9:0"},"nodeType":"ModifierInvocation","src":"13382:9:0"}],"name":"updateRegistry","nameLocation":"13339:14:0","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"mutability":"mutable","name":"_registry","nameLocation":"13362:9:0","nodeType":"VariableDeclaration","scope":273,"src":"13354:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"13354:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13353:19:0"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[],"src":"13392:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":286,"nodeType":"FunctionDefinition","src":"13624:113:0","nodes":[],"body":{"id":285,"nodeType":"Block","src":"13694:43:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":282,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"13720:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":281,"name":"_updateTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"13704:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"ExpressionStatement","src":"13704:26:0"}]},"baseFunctions":[2425],"documentation":{"id":274,"nodeType":"StructuredDocumentation","src":"13441:178:0","text":"@notice Updates the treasury address.\n @dev Use this to update the treasury address. 'msg.sender' must be Allo owner.\n @param _treasury The new treasury address"},"functionSelector":"7f51bb1f","implemented":true,"kind":"function","modifiers":[{"id":279,"kind":"modifierInvocation","modifierName":{"id":278,"name":"onlyOwner","nameLocations":["13684:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13684:9:0"},"nodeType":"ModifierInvocation","src":"13684:9:0"}],"name":"updateTreasury","nameLocation":"13633:14:0","parameters":{"id":277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":276,"mutability":"mutable","name":"_treasury","nameLocation":"13664:9:0","nodeType":"VariableDeclaration","scope":286,"src":"13648:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":275,"name":"address","nodeType":"ElementaryTypeName","src":"13648:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"13647:27:0"},"returnParameters":{"id":280,"nodeType":"ParameterList","parameters":[],"src":"13694:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":299,"nodeType":"FunctionDefinition","src":"13911:113:0","nodes":[],"body":{"id":298,"nodeType":"Block","src":"13977:47:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":295,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":289,"src":"14005:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":294,"name":"_updatePercentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"13987:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13987:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":297,"nodeType":"ExpressionStatement","src":"13987:30:0"}]},"baseFunctions":[2431],"documentation":{"id":287,"nodeType":"StructuredDocumentation","src":"13743:163:0","text":"@notice Updates the fee percentage.\n @dev Use this to update the fee percentage. 'msg.sender' must be Allo owner.\n @param _percentFee The new fee"},"functionSelector":"f54fc4a0","implemented":true,"kind":"function","modifiers":[{"id":292,"kind":"modifierInvocation","modifierName":{"id":291,"name":"onlyOwner","nameLocations":["13967:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13967:9:0"},"nodeType":"ModifierInvocation","src":"13967:9:0"}],"name":"updatePercentFee","nameLocation":"13920:16:0","parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"_percentFee","nameLocation":"13945:11:0","nodeType":"VariableDeclaration","scope":299,"src":"13937:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":288,"name":"uint256","nodeType":"ElementaryTypeName","src":"13937:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13936:21:0"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[],"src":"13977:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":312,"nodeType":"FunctionDefinition","src":"14188:101:0","nodes":[],"body":{"id":311,"nodeType":"Block","src":"14248:41:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":308,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"14273:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":307,"name":"_updateBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"14258:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14258:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"ExpressionStatement","src":"14258:24:0"}]},"baseFunctions":[2437],"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"14030:153:0","text":"@notice Updates the base fee.\n @dev Use this to update the base fee. 'msg.sender' must be Allo owner.\n @param _baseFee The new base fee"},"functionSelector":"8e690186","implemented":true,"kind":"function","modifiers":[{"id":305,"kind":"modifierInvocation","modifierName":{"id":304,"name":"onlyOwner","nameLocations":["14238:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14238:9:0"},"nodeType":"ModifierInvocation","src":"14238:9:0"}],"name":"updateBaseFee","nameLocation":"14197:13:0","parameters":{"id":303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"mutability":"mutable","name":"_baseFee","nameLocation":"14219:8:0","nodeType":"VariableDeclaration","scope":312,"src":"14211:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"14211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14210:18:0"},"returnParameters":{"id":306,"nodeType":"ParameterList","parameters":[],"src":"14248:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":341,"nodeType":"FunctionDefinition","src":"14481:229:0","nodes":[],"body":{"id":340,"nodeType":"Block","src":"14553:157:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":320,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14567:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14588:1:0","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":322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14580:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"14580:7:0","typeDescriptions":{}}},"id":324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14567:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":329,"nodeType":"IfStatement","src":"14563:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":326,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"14599:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14599:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":328,"nodeType":"RevertStatement","src":"14592:21:0"}},{"expression":{"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":330,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"14624:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":332,"indexExpression":{"id":331,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14644:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14624:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14657:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14624:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":335,"nodeType":"ExpressionStatement","src":"14624:37:0"},{"eventCall":{"arguments":[{"id":337,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14693:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":336,"name":"StrategyApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2385,"src":"14676:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14676:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":339,"nodeType":"EmitStatement","src":"14671:32:0"}]},"baseFunctions":[2443],"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"14295:181:0","text":"@notice Add a strategy to the allowlist.\n @dev Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\n @param _strategy The address of the strategy"},"functionSelector":"41bba0b4","implemented":true,"kind":"function","modifiers":[{"id":318,"kind":"modifierInvocation","modifierName":{"id":317,"name":"onlyOwner","nameLocations":["14543:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14543:9:0"},"nodeType":"ModifierInvocation","src":"14543:9:0"}],"name":"addToCloneableStrategies","nameLocation":"14490:24:0","parameters":{"id":316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":315,"mutability":"mutable","name":"_strategy","nameLocation":"14523:9:0","nodeType":"VariableDeclaration","scope":341,"src":"14515:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"14515:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14514:19:0"},"returnParameters":{"id":319,"nodeType":"ParameterList","parameters":[],"src":"14553:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":360,"nodeType":"FunctionDefinition","src":"14900:288:0","nodes":[],"body":{"id":359,"nodeType":"Block","src":"14977:211:0","nodes":[],"statements":[{"expression":{"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":349,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"15059:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":351,"indexExpression":{"id":350,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"15079:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15059:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15092:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15059:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":354,"nodeType":"ExpressionStatement","src":"15059:38:0"},{"eventCall":{"arguments":[{"id":356,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"15171:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":355,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"15155:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15155:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":358,"nodeType":"EmitStatement","src":"15150:31:0"}]},"baseFunctions":[2449],"documentation":{"id":342,"nodeType":"StructuredDocumentation","src":"14716:179:0","text":"@notice Remove a strategy from the allowlist\n @dev Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\n @param _strategy The address of the strategy"},"functionSelector":"031e2fa1","implemented":true,"kind":"function","modifiers":[{"id":347,"kind":"modifierInvocation","modifierName":{"id":346,"name":"onlyOwner","nameLocations":["14967:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14967:9:0"},"nodeType":"ModifierInvocation","src":"14967:9:0"}],"name":"removeFromCloneableStrategies","nameLocation":"14909:29:0","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"mutability":"mutable","name":"_strategy","nameLocation":"14947:9:0","nodeType":"VariableDeclaration","scope":360,"src":"14939:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":343,"name":"address","nodeType":"ElementaryTypeName","src":"14939:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14938:19:0"},"returnParameters":{"id":348,"nodeType":"ParameterList","parameters":[],"src":"14977:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":390,"nodeType":"FunctionDefinition","src":"15387:358:0","nodes":[],"body":{"id":389,"nodeType":"Block","src":"15478:267:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":371,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"15568:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15588:1:0","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":373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15580:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":372,"name":"address","nodeType":"ElementaryTypeName","src":"15580:7:0","typeDescriptions":{}}},"id":375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15568:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":380,"nodeType":"IfStatement","src":"15564:49:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":377,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"15599:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15599:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":379,"nodeType":"RevertStatement","src":"15592:21:0"}},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":382,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"15701:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":384,"indexExpression":{"id":383,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"15707:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15701:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15716:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"15701:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":386,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"15729:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":381,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"15690:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15690:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":388,"nodeType":"ExpressionStatement","src":"15690:48:0"}]},"baseFunctions":[2457],"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"15194:188:0","text":"@notice Add a pool manager\n @dev Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\n @param _poolId ID of the pool\n @param _manager The address to add"},"functionSelector":"2cf682b0","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":368,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"15469:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":369,"kind":"modifierInvocation","modifierName":{"id":367,"name":"onlyPoolAdmin","nameLocations":["15455:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":123,"src":"15455:13:0"},"nodeType":"ModifierInvocation","src":"15455:22:0"}],"name":"addPoolManager","nameLocation":"15396:14:0","parameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":363,"mutability":"mutable","name":"_poolId","nameLocation":"15419:7:0","nodeType":"VariableDeclaration","scope":390,"src":"15411:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":362,"name":"uint256","nodeType":"ElementaryTypeName","src":"15411:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":365,"mutability":"mutable","name":"_manager","nameLocation":"15436:8:0","nodeType":"VariableDeclaration","scope":390,"src":"15428:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":364,"name":"address","nodeType":"ElementaryTypeName","src":"15428:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15410:35:0"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[],"src":"15478:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":410,"nodeType":"FunctionDefinition","src":"15950:160:0","nodes":[],"body":{"id":409,"nodeType":"Block","src":"16044:66:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":402,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"16066:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":404,"indexExpression":{"id":403,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"16072:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16066:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16081:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"16066:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":406,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"16094:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":401,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"16054:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":408,"nodeType":"ExpressionStatement","src":"16054:49:0"}]},"baseFunctions":[2465],"documentation":{"id":391,"nodeType":"StructuredDocumentation","src":"15751:194:0","text":"@notice Remove a pool manager\n @dev Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\n @param _poolId ID of the pool\n @param _manager The address to remove"},"functionSelector":"7f5a70bd","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":398,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"16035:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":399,"kind":"modifierInvocation","modifierName":{"id":397,"name":"onlyPoolAdmin","nameLocations":["16021:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":123,"src":"16021:13:0"},"nodeType":"ModifierInvocation","src":"16021:22:0"}],"name":"removePoolManager","nameLocation":"15959:17:0","parameters":{"id":396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"_poolId","nameLocation":"15985:7:0","nodeType":"VariableDeclaration","scope":410,"src":"15977:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":392,"name":"uint256","nodeType":"ElementaryTypeName","src":"15977:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":395,"mutability":"mutable","name":"_manager","nameLocation":"16002:8:0","nodeType":"VariableDeclaration","scope":410,"src":"15994:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":394,"name":"address","nodeType":"ElementaryTypeName","src":"15994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15976:35:0"},"returnParameters":{"id":400,"nodeType":"ParameterList","parameters":[],"src":"16044:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":448,"nodeType":"FunctionDefinition","src":"16308:430:0","nodes":[],"body":{"id":447,"nodeType":"Block","src":"16385:353:0","nodes":[],"statements":[{"assignments":[421],"declarations":[{"constant":false,"id":421,"mutability":"mutable","name":"amount","nameLocation":"16514:6:0","nodeType":"VariableDeclaration","scope":447,"src":"16506:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":420,"name":"uint256","nodeType":"ElementaryTypeName","src":"16506:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":440,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":422,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16523:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":423,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"16533:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16523:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":436,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16610:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16602:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":434,"name":"address","nodeType":"ElementaryTypeName","src":"16602:7:0","typeDescriptions":{}}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":431,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16584:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":430,"name":"IERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53354,"src":"16566:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Upgradeable_$53354_$","typeString":"type(contract IERC20Upgradeable)"}},"id":432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16566:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Upgradeable_$53354","typeString":"contract IERC20Upgradeable"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16592:9:0","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":53311,"src":"16566:35:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16566:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"16523:93:0","trueExpression":{"expression":{"arguments":[{"id":427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16550:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16542:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"16542:7:0","typeDescriptions":{}}},"id":428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16542:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16556:7:0","memberName":"balance","nodeType":"MemberAccess","src":"16542:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16506:110:0"},{"expression":{"arguments":[{"id":442,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16704:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":415,"src":"16712:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"16724:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":441,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"16688:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16688:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":446,"nodeType":"ExpressionStatement","src":"16688:43:0"}]},"baseFunctions":[2473],"documentation":{"id":411,"nodeType":"StructuredDocumentation","src":"16116:187:0","text":"@notice Transfer the funds recovered to the recipient\n @dev 'msg.sender' must be Allo owner\n @param _token The token to transfer\n @param _recipient The recipient"},"functionSelector":"24ae6a27","implemented":true,"kind":"function","modifiers":[{"id":418,"kind":"modifierInvocation","modifierName":{"id":417,"name":"onlyOwner","nameLocations":["16375:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"16375:9:0"},"nodeType":"ModifierInvocation","src":"16375:9:0"}],"name":"recoverFunds","nameLocation":"16317:12:0","parameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":413,"mutability":"mutable","name":"_token","nameLocation":"16338:6:0","nodeType":"VariableDeclaration","scope":448,"src":"16330:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":412,"name":"address","nodeType":"ElementaryTypeName","src":"16330:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":415,"mutability":"mutable","name":"_recipient","nameLocation":"16354:10:0","nodeType":"VariableDeclaration","scope":448,"src":"16346:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"16346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16329:36:0"},"returnParameters":{"id":419,"nodeType":"ParameterList","parameters":[],"src":"16385:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":474,"nodeType":"FunctionDefinition","src":"17298:276:0","nodes":[],"body":{"id":473,"nodeType":"Block","src":"17410:164:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":468,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"17549:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17556:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17560:6:0","memberName":"sender","nodeType":"MemberAccess","src":"17556:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":460,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"17489:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":462,"indexExpression":{"id":461,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"17495:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17489:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17489:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17513:17:0","memberName":"registerRecipient","nodeType":"MemberAccess","referencedDeclaration":2949,"src":"17489:41:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17538:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17542:5:0","memberName":"value","nodeType":"MemberAccess","src":"17538:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"17489:59:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$value","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17489:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":459,"id":472,"nodeType":"Return","src":"17482:85:0"}]},"baseFunctions":[2483],"documentation":{"id":449,"nodeType":"StructuredDocumentation","src":"16877:416:0","text":"@notice Passes _data through to the strategy for that pool.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of registerRecipient().\n @param _poolId ID of the pool\n @param _data Encoded data unique to a strategy that registerRecipient() requires\n @return recipientId The recipient ID that has been registered"},"functionSelector":"075c0e9c","implemented":true,"kind":"function","modifiers":[{"id":456,"kind":"modifierInvocation","modifierName":{"id":455,"name":"nonReentrant","nameLocations":["17379:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"17379:12:0"},"nodeType":"ModifierInvocation","src":"17379:12:0"}],"name":"registerRecipient","nameLocation":"17307:17:0","parameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":451,"mutability":"mutable","name":"_poolId","nameLocation":"17333:7:0","nodeType":"VariableDeclaration","scope":474,"src":"17325:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":450,"name":"uint256","nodeType":"ElementaryTypeName","src":"17325:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":453,"mutability":"mutable","name":"_data","nameLocation":"17355:5:0","nodeType":"VariableDeclaration","scope":474,"src":"17342:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":452,"name":"bytes","nodeType":"ElementaryTypeName","src":"17342:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17324:37:0"},"returnParameters":{"id":459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":474,"src":"17401:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"17401:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17400:9:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":543,"nodeType":"FunctionDefinition","src":"18212:747:0","nodes":[],"body":{"id":542,"nodeType":"Block","src":"18383:576:0","nodes":[],"statements":[{"assignments":[490],"declarations":[{"constant":false,"id":490,"mutability":"mutable","name":"poolIdLength","nameLocation":"18401:12:0","nodeType":"VariableDeclaration","scope":542,"src":"18393:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":489,"name":"uint256","nodeType":"ElementaryTypeName","src":"18393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":493,"initialValue":{"expression":{"id":491,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"18416:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18425:6:0","memberName":"length","nodeType":"MemberAccess","src":"18416:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18393:38:0"},{"expression":{"id":500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":494,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18441:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":498,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18470:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18456:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":495,"name":"address","nodeType":"ElementaryTypeName","src":"18460:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":496,"nodeType":"ArrayTypeName","src":"18460:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18456:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18441:42:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":501,"nodeType":"ExpressionStatement","src":"18441:42:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":502,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18498:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":503,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18514:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18520:6:0","memberName":"length","nodeType":"MemberAccess","src":"18514:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18498:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":509,"nodeType":"IfStatement","src":"18494:51:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":506,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"18535:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18535:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":508,"nodeType":"RevertStatement","src":"18528:17:0"}},{"body":{"id":538,"nodeType":"Block","src":"18693:169:0","statements":[{"expression":{"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":516,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18707:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":518,"indexExpression":{"id":517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18720:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18707:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":526,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18771:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":528,"indexExpression":{"id":527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18777:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18771:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18781:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18785:6:0","memberName":"sender","nodeType":"MemberAccess","src":"18781:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":519,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"18725:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":523,"indexExpression":{"baseExpression":{"id":520,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"18731:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":522,"indexExpression":{"id":521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18740:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18731:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18725:18:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18744:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"18725:27:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18753:17:0","memberName":"registerRecipient","nodeType":"MemberAccess","referencedDeclaration":2949,"src":"18725:45:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18725:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18707:85:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":533,"nodeType":"ExpressionStatement","src":"18707:85:0"},{"id":537,"nodeType":"UncheckedBlock","src":"18806:46:0","statements":[{"expression":{"id":535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"18834:3:0","subExpression":{"id":534,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18836:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":536,"nodeType":"ExpressionStatement","src":"18834:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18674:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":514,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18678:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18674:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":539,"initializationExpression":{"assignments":[511],"declarations":[{"constant":false,"id":511,"mutability":"mutable","name":"i","nameLocation":"18671:1:0","nodeType":"VariableDeclaration","scope":539,"src":"18663:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":510,"name":"uint256","nodeType":"ElementaryTypeName","src":"18663:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":512,"nodeType":"VariableDeclarationStatement","src":"18663:9:0"},"nodeType":"ForStatement","src":"18658:204:0"},{"expression":{"id":540,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18940:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":488,"id":541,"nodeType":"Return","src":"18933:19:0"}]},"baseFunctions":[2496],"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"17580:627:0","text":"@notice Register multiple recipients to multiple pools.\n @dev Returns the 'recipientIds' from the strategy that have been registered from calling this function.\n Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match\n '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\n @param _poolIds ID's of the pools\n @param _data An array of encoded data unique to a strategy that registerRecipient() requires.\n @return recipientIds The recipient IDs that have been registered"},"functionSelector":"1a20bd88","implemented":true,"kind":"function","modifiers":[{"id":484,"kind":"modifierInvocation","modifierName":{"id":483,"name":"nonReentrant","nameLocations":["18318:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"18318:12:0"},"nodeType":"ModifierInvocation","src":"18318:12:0"}],"name":"batchRegisterRecipient","nameLocation":"18221:22:0","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":478,"mutability":"mutable","name":"_poolIds","nameLocation":"18261:8:0","nodeType":"VariableDeclaration","scope":543,"src":"18244:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":476,"name":"uint256","nodeType":"ElementaryTypeName","src":"18244:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":477,"nodeType":"ArrayTypeName","src":"18244:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":481,"mutability":"mutable","name":"_data","nameLocation":"18286:5:0","nodeType":"VariableDeclaration","scope":543,"src":"18271:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":479,"name":"bytes","nodeType":"ElementaryTypeName","src":"18271:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":480,"nodeType":"ArrayTypeName","src":"18271:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"18243:49:0"},"returnParameters":{"id":488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":487,"mutability":"mutable","name":"recipientIds","nameLocation":"18365:12:0","nodeType":"VariableDeclaration","scope":543,"src":"18348:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"18348:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":486,"nodeType":"ArrayTypeName","src":"18348:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18347:31:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":588,"nodeType":"FunctionDefinition","src":"19156:439:0","nodes":[],"body":{"id":587,"nodeType":"Block","src":"19238:357:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":553,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19318:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19329:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19318:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":559,"nodeType":"IfStatement","src":"19314:43:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":556,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"19339:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19339:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":558,"nodeType":"RevertStatement","src":"19332:25:0"}},{"assignments":[562],"declarations":[{"constant":false,"id":562,"mutability":"mutable","name":"pool","nameLocation":"19380:4:0","nodeType":"VariableDeclaration","scope":587,"src":"19368:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":561,"nodeType":"UserDefinedTypeName","pathNode":{"id":560,"name":"Pool","nameLocations":["19368:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"19368:4:0"},"referencedDeclaration":2319,"src":"19368:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":566,"initialValue":{"baseExpression":{"id":563,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"19387:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":565,"indexExpression":{"id":564,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"19393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19387:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19368:33:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":567,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"19415:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19420:5:0","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"19415:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":569,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"19429:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19415:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":571,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19439:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":572,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19450:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19454:5:0","memberName":"value","nodeType":"MemberAccess","src":"19450:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19439:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19415:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":579,"nodeType":"IfStatement","src":"19411:75:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":576,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"19468:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19468:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":578,"nodeType":"RevertStatement","src":"19461:25:0"}},{"expression":{"arguments":[{"id":581,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19556:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":582,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"19565:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":583,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"19574:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19579:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"19574:13:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":580,"name":"_fundPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"19546:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IStrategy_$2969_$returns$__$","typeString":"function (uint256,uint256,contract IStrategy)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19546:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"ExpressionStatement","src":"19546:42:0"}]},"baseFunctions":[2504],"documentation":{"id":544,"nodeType":"StructuredDocumentation","src":"18965:186:0","text":"@notice Fund a pool.\n @dev Anyone can fund a pool and call this function.\n @param _poolId ID of the pool\n @param _amount The amount to be deposited into the pool"},"functionSelector":"5acd6fac","implemented":true,"kind":"function","modifiers":[{"id":551,"kind":"modifierInvocation","modifierName":{"id":550,"name":"nonReentrant","nameLocations":["19225:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"19225:12:0"},"nodeType":"ModifierInvocation","src":"19225:12:0"}],"name":"fundPool","nameLocation":"19165:8:0","parameters":{"id":549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":546,"mutability":"mutable","name":"_poolId","nameLocation":"19182:7:0","nodeType":"VariableDeclaration","scope":588,"src":"19174:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":545,"name":"uint256","nodeType":"ElementaryTypeName","src":"19174:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":548,"mutability":"mutable","name":"_amount","nameLocation":"19199:7:0","nodeType":"VariableDeclaration","scope":588,"src":"19191:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":547,"name":"uint256","nodeType":"ElementaryTypeName","src":"19191:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19173:34:0"},"returnParameters":{"id":552,"nodeType":"ParameterList","parameters":[],"src":"19238:0:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":604,"nodeType":"FunctionDefinition","src":"19921:127:0","nodes":[],"body":{"id":603,"nodeType":"Block","src":"20006:42:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":599,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"20026:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":600,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"20035:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":598,"name":"_allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"20016:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20016:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":602,"nodeType":"ExpressionStatement","src":"20016:25:0"}]},"baseFunctions":[2512],"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"19601:315:0","text":"@notice Allocate to a recipient or multiple recipients.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of allocate().\n @param _poolId ID of the pool\n @param _data Encoded data unique to the strategy for that pool"},"functionSelector":"2ec38188","implemented":true,"kind":"function","modifiers":[{"id":596,"kind":"modifierInvocation","modifierName":{"id":595,"name":"nonReentrant","nameLocations":["19993:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"19993:12:0"},"nodeType":"ModifierInvocation","src":"19993:12:0"}],"name":"allocate","nameLocation":"19930:8:0","parameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"_poolId","nameLocation":"19947:7:0","nodeType":"VariableDeclaration","scope":604,"src":"19939:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":590,"name":"uint256","nodeType":"ElementaryTypeName","src":"19939:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"_data","nameLocation":"19969:5:0","nodeType":"VariableDeclaration","scope":604,"src":"19956:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":592,"name":"bytes","nodeType":"ElementaryTypeName","src":"19956:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19938:37:0"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[],"src":"20006:0:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":651,"nodeType":"FunctionDefinition","src":"20511:559:0","nodes":[],"body":{"id":650,"nodeType":"Block","src":"20608:462:0","nodes":[],"statements":[{"assignments":[617],"declarations":[{"constant":false,"id":617,"mutability":"mutable","name":"numPools","nameLocation":"20626:8:0","nodeType":"VariableDeclaration","scope":650,"src":"20618:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":616,"name":"uint256","nodeType":"ElementaryTypeName","src":"20618:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":620,"initialValue":{"expression":{"id":618,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"20637:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20646:6:0","memberName":"length","nodeType":"MemberAccess","src":"20637:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20618:34:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":621,"name":"numPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"20772:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":622,"name":"_datas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"20784:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20791:6:0","memberName":"length","nodeType":"MemberAccess","src":"20784:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20772:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":628,"nodeType":"IfStatement","src":"20768:48:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":625,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"20806:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20806:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":627,"nodeType":"RevertStatement","src":"20799:17:0"}},{"body":{"id":648,"nodeType":"Block","src":"20947:117:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":636,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"20971:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":638,"indexExpression":{"id":637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20980:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20971:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":639,"name":"_datas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"20984:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":641,"indexExpression":{"id":640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20991:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20984:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":635,"name":"_allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"20961:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20961:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":643,"nodeType":"ExpressionStatement","src":"20961:33:0"},{"id":647,"nodeType":"UncheckedBlock","src":"21008:46:0","statements":[{"expression":{"id":645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"21036:3:0","subExpression":{"id":644,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"21038:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":646,"nodeType":"ExpressionStatement","src":"21036:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20932:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":633,"name":"numPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"20936:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20932:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":649,"initializationExpression":{"assignments":[630],"declarations":[{"constant":false,"id":630,"mutability":"mutable","name":"i","nameLocation":"20929:1:0","nodeType":"VariableDeclaration","scope":649,"src":"20921:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":629,"name":"uint256","nodeType":"ElementaryTypeName","src":"20921:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":631,"nodeType":"VariableDeclarationStatement","src":"20921:9:0"},"nodeType":"ForStatement","src":"20916:148:0"}]},"baseFunctions":[2522],"documentation":{"id":605,"nodeType":"StructuredDocumentation","src":"20054:452:0","text":"@notice Allocate to multiple pools\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of allocate(). Please note that this is not a 'payable' function, so if you\n want to send funds to the strategy, you must send the funds using 'fundPool()'.\n @param _poolIds IDs of the pools\n @param _datas encoded data unique to the strategy for that pool"},"functionSelector":"c6dff1cf","implemented":true,"kind":"function","modifiers":[{"id":614,"kind":"modifierInvocation","modifierName":{"id":613,"name":"nonReentrant","nameLocations":["20595:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"20595:12:0"},"nodeType":"ModifierInvocation","src":"20595:12:0"}],"name":"batchAllocate","nameLocation":"20520:13:0","parameters":{"id":612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":608,"mutability":"mutable","name":"_poolIds","nameLocation":"20553:8:0","nodeType":"VariableDeclaration","scope":651,"src":"20534:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":606,"name":"uint256","nodeType":"ElementaryTypeName","src":"20534:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":607,"nodeType":"ArrayTypeName","src":"20534:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"_datas","nameLocation":"20578:6:0","nodeType":"VariableDeclaration","scope":651,"src":"20563:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":609,"name":"bytes","nodeType":"ElementaryTypeName","src":"20563:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":610,"nodeType":"ArrayTypeName","src":"20563:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"20533:52:0"},"returnParameters":{"id":615,"nodeType":"ParameterList","parameters":[],"src":"20608:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":676,"nodeType":"FunctionDefinition","src":"21468:196:0","nodes":[],"body":{"id":675,"nodeType":"Block","src":"21579:85:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":669,"name":"_recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"21624:13:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":670,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"21639:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21646:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21650:6:0","memberName":"sender","nodeType":"MemberAccess","src":"21646:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":664,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"21589:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":666,"indexExpression":{"id":665,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"21595:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21589:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21604:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"21589:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21613:10:0","memberName":"distribute","nodeType":"MemberAccess","referencedDeclaration":2968,"src":"21589:34:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,bytes memory,address) external"}},"id":673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21589:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":674,"nodeType":"ExpressionStatement","src":"21589:68:0"}]},"baseFunctions":[2533],"documentation":{"id":652,"nodeType":"StructuredDocumentation","src":"21076:387:0","text":"@notice Distribute to a recipient or multiple recipients.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of 'strategy.distribute()'.\n @param _poolId ID of the pool\n @param _recipientIds Ids of the recipients of the distribution\n @param _data Encoded data unique to the strategy"},"functionSelector":"3a5fbd92","implemented":true,"kind":"function","modifiers":[{"id":662,"kind":"modifierInvocation","modifierName":{"id":661,"name":"nonReentrant","nameLocations":["21566:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"21566:12:0"},"nodeType":"ModifierInvocation","src":"21566:12:0"}],"name":"distribute","nameLocation":"21477:10:0","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"_poolId","nameLocation":"21496:7:0","nodeType":"VariableDeclaration","scope":676,"src":"21488:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21488:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":657,"mutability":"mutable","name":"_recipientIds","nameLocation":"21522:13:0","nodeType":"VariableDeclaration","scope":676,"src":"21505:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":655,"name":"address","nodeType":"ElementaryTypeName","src":"21505:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":656,"nodeType":"ArrayTypeName","src":"21505:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":659,"mutability":"mutable","name":"_data","nameLocation":"21550:5:0","nodeType":"VariableDeclaration","scope":676,"src":"21537:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":658,"name":"bytes","nodeType":"ElementaryTypeName","src":"21537:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21487:69:0"},"returnParameters":{"id":663,"nodeType":"ParameterList","parameters":[],"src":"21579:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":693,"nodeType":"FunctionDefinition","src":"21910:142:0","nodes":[],"body":{"id":692,"nodeType":"Block","src":"21972:80:0","nodes":[],"statements":[{"condition":{"id":687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21986:36:0","subExpression":{"arguments":[{"id":683,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"22002:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22011:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22015:6:0","memberName":"sender","nodeType":"MemberAccess","src":"22011:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":682,"name":"_isPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"21987:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21987:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":691,"nodeType":"IfStatement","src":"21982:63:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":688,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"22031:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22031:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":690,"nodeType":"RevertStatement","src":"22024:21:0"}}]},"documentation":{"id":677,"nodeType":"StructuredDocumentation","src":"21806:99:0","text":"@notice Internal function to check is caller is pool manager\n @param _poolId The pool id"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyPoolManager","nameLocation":"21919:21:0","parameters":{"id":680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":679,"mutability":"mutable","name":"_poolId","nameLocation":"21949:7:0","nodeType":"VariableDeclaration","scope":693,"src":"21941:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":678,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21940:17:0"},"returnParameters":{"id":681,"nodeType":"ParameterList","parameters":[],"src":"21972:0:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":710,"nodeType":"FunctionDefinition","src":"22160:138:0","nodes":[],"body":{"id":709,"nodeType":"Block","src":"22220:78:0","nodes":[],"statements":[{"condition":{"id":704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22234:34:0","subExpression":{"arguments":[{"id":700,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"22248:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22257:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:6:0","memberName":"sender","nodeType":"MemberAccess","src":"22257:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":699,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"22235:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22235:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":708,"nodeType":"IfStatement","src":"22230:61:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":705,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"22277:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22277:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":707,"nodeType":"RevertStatement","src":"22270:21:0"}}]},"documentation":{"id":694,"nodeType":"StructuredDocumentation","src":"22058:97:0","text":"@notice Internal function to check is caller is pool admin\n @param _poolId The pool id"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyPoolAdmin","nameLocation":"22169:19:0","parameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":696,"mutability":"mutable","name":"_poolId","nameLocation":"22197:7:0","nodeType":"VariableDeclaration","scope":710,"src":"22189:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":695,"name":"uint256","nodeType":"ElementaryTypeName","src":"22189:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22188:17:0"},"returnParameters":{"id":698,"nodeType":"ParameterList","parameters":[],"src":"22220:0:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":925,"nodeType":"FunctionDefinition","src":"23131:2681:0","nodes":[],"body":{"id":924,"nodeType":"Block","src":"23409:2403:0","nodes":[],"statements":[{"condition":{"id":739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23423:58:0","subExpression":{"arguments":[{"id":735,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"23458:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23470:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23474:6:0","memberName":"sender","nodeType":"MemberAccess","src":"23470:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":733,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"23424:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:24:0","memberName":"isOwnerOrMemberOfProfile","nodeType":"MemberAccess","referencedDeclaration":2704,"src":"23424:33:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23424:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":743,"nodeType":"IfStatement","src":"23419:85:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":740,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"23490:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23490:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":742,"nodeType":"RevertStatement","src":"23483:21:0"}},{"expression":{"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":744,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23515:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23524:12:0","subExpression":{"id":745,"name":"_poolIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"23526:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23515:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":748,"nodeType":"ExpressionStatement","src":"23515:21:0"},{"assignments":[750],"declarations":[{"constant":false,"id":750,"mutability":"mutable","name":"POOL_MANAGER_ROLE","nameLocation":"23683:17:0","nodeType":"VariableDeclaration","scope":924,"src":"23675:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23675:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":755,"initialValue":{"arguments":[{"id":753,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23711:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23703:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23703:7:0","typeDescriptions":{}}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23703:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23675:43:0"},{"assignments":[757],"declarations":[{"constant":false,"id":757,"mutability":"mutable","name":"POOL_ADMIN_ROLE","nameLocation":"23736:15:0","nodeType":"VariableDeclaration","scope":924,"src":"23728:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23728:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":765,"initialValue":{"arguments":[{"arguments":[{"id":761,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23781:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"61646d696e","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23789:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8","typeString":"literal_string \"admin\""},"value":"admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8","typeString":"literal_string \"admin\""}],"expression":{"id":759,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23764:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23768:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"23764:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23764:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":758,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"23754:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23754:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23728:70:0"},{"assignments":[768],"declarations":[{"constant":false,"id":768,"mutability":"mutable","name":"pool","nameLocation":"23857:4:0","nodeType":"VariableDeclaration","scope":924,"src":"23845:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":767,"nodeType":"UserDefinedTypeName","pathNode":{"id":766,"name":"Pool","nameLocations":["23845:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"23845:4:0"},"referencedDeclaration":2319,"src":"23845:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":777,"initialValue":{"arguments":[{"id":770,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"23894:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":771,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"23928:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":772,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"23961:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":773,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"23991:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":774,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24024:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":775,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24066:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":769,"name":"Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"23864:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Pool_$2319_storage_ptr_$","typeString":"type(struct IAllo.Pool storage pointer)"}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23883:9:0","23918:8:0","23951:8:0","23984:5:0","24011:11:0","24055:9:0"],"names":["profileId","strategy","metadata","token","managerRole","adminRole"],"nodeType":"FunctionCall","src":"23864:228:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"23845:247:0"},{"expression":{"id":782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":778,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"24159:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":780,"indexExpression":{"id":779,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24165:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24159:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":781,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"24175:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"src":"24159:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":783,"nodeType":"ExpressionStatement","src":"24159:20:0"},{"expression":{"arguments":[{"id":785,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24250:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":786,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24267:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24271:6:0","memberName":"sender","nodeType":"MemberAccess","src":"24267:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":784,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"24239:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24239:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":789,"nodeType":"ExpressionStatement","src":"24239:39:0"},{"expression":{"arguments":[{"id":791,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24351:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":792,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24370:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":790,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52667,"src":"24337:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24337:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"ExpressionStatement","src":"24337:49:0"},{"expression":{"arguments":[{"id":798,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24562:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":799,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"24570:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":795,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24541:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24551:10:0","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":2939,"src":"24541:20:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24541:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":801,"nodeType":"ExpressionStatement","src":"24541:47:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":802,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24603:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24613:9:0","memberName":"getPoolId","nodeType":"MemberAccess","referencedDeclaration":2876,"src":"24603:19:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24603:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":805,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24628:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24603:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":809,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24646:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24656:7:0","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":2870,"src":"24646:17:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24646:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}],"id":808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24638:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":807,"name":"address","nodeType":"ElementaryTypeName","src":"24638:7:0","typeDescriptions":{}}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24638:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24678:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24670:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":813,"name":"address","nodeType":"ElementaryTypeName","src":"24670:7:0","typeDescriptions":{}}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24670:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24638:45:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24603:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":822,"nodeType":"IfStatement","src":"24599:103:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":819,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"24692:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":821,"nodeType":"RevertStatement","src":"24685:17:0"}},{"assignments":[824],"declarations":[{"constant":false,"id":824,"mutability":"mutable","name":"managersLength","nameLocation":"24758:14:0","nodeType":"VariableDeclaration","scope":924,"src":"24750:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":823,"name":"uint256","nodeType":"ElementaryTypeName","src":"24750:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":827,"initialValue":{"expression":{"id":825,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"24775:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24785:6:0","memberName":"length","nodeType":"MemberAccess","src":"24775:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24750:41:0"},{"body":{"id":859,"nodeType":"Block","src":"24838:229:0","statements":[{"assignments":[835],"declarations":[{"constant":false,"id":835,"mutability":"mutable","name":"manager","nameLocation":"24860:7:0","nodeType":"VariableDeclaration","scope":859,"src":"24852:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":834,"name":"address","nodeType":"ElementaryTypeName","src":"24852:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":839,"initialValue":{"baseExpression":{"id":836,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"24870:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":838,"indexExpression":{"id":837,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"24880:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24870:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24852:30:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":840,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"24900:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24919:1:0","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":842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24911:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":841,"name":"address","nodeType":"ElementaryTypeName","src":"24911:7:0","typeDescriptions":{}}},"id":844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24911:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24900:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":849,"nodeType":"IfStatement","src":"24896:48:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":846,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"24930:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24930:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":848,"nodeType":"RevertStatement","src":"24923:21:0"}},{"expression":{"arguments":[{"id":851,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24970:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":852,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"24989:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":850,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"24959:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":854,"nodeType":"ExpressionStatement","src":"24959:38:0"},{"id":858,"nodeType":"UncheckedBlock","src":"25011:46:0","statements":[{"expression":{"id":856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25039:3:0","subExpression":{"id":855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"25041:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":857,"nodeType":"ExpressionStatement","src":"25039:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"24817:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":832,"name":"managersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"24821:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24817:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":860,"initializationExpression":{"assignments":[829],"declarations":[{"constant":false,"id":829,"mutability":"mutable","name":"i","nameLocation":"24814:1:0","nodeType":"VariableDeclaration","scope":860,"src":"24806:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":828,"name":"uint256","nodeType":"ElementaryTypeName","src":"24806:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":830,"nodeType":"VariableDeclarationStatement","src":"24806:9:0"},"nodeType":"ForStatement","src":"24801:266:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":861,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25081:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25091:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25081:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":903,"nodeType":"IfStatement","src":"25077:554:0","trueBody":{"id":902,"nodeType":"Block","src":"25094:537:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":864,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25359:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":865,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25369:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25359:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":867,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25380:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":868,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25390:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25380:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":870,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25401:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25405:5:0","memberName":"value","nodeType":"MemberAccess","src":"25401:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25380:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25379:32:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25359:52:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":875,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25358:54:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":876,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25417:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":877,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25427:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25417:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":879,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25437:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":880,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25448:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25452:5:0","memberName":"value","nodeType":"MemberAccess","src":"25448:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25437:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25417:40:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":884,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25416:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25358:100:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":890,"nodeType":"IfStatement","src":"25354:164:0","trueBody":{"id":889,"nodeType":"Block","src":"25460:58:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":886,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"25485:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25485:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"RevertStatement","src":"25478:25:0"}]}},{"expression":{"arguments":[{"id":892,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25547:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":893,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"25555:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":894,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25565:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":891,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"25531:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25531:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":896,"nodeType":"ExpressionStatement","src":"25531:42:0"},{"eventCall":{"arguments":[{"id":898,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25604:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":899,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25612:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":897,"name":"BaseFeePaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2360,"src":"25592:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25592:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":901,"nodeType":"EmitStatement","src":"25587:33:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":904,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25645:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25655:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25645:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":914,"nodeType":"IfStatement","src":"25641:79:0","trueBody":{"id":913,"nodeType":"Block","src":"25658:62:0","statements":[{"expression":{"arguments":[{"id":908,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25682:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":909,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25691:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":910,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"25699:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":907,"name":"_fundPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"25672:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IStrategy_$2969_$returns$__$","typeString":"function (uint256,uint256,contract IStrategy)"}},"id":911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25672:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":912,"nodeType":"ExpressionStatement","src":"25672:37:0"}]}},{"eventCall":{"arguments":[{"id":916,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25747:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":917,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"25755:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":918,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"25767:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":919,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25778:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":920,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25786:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":921,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"25795:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":915,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"25735:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,bytes32,contract IStrategy,address,uint256,struct Metadata memory)"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25735:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":923,"nodeType":"EmitStatement","src":"25730:75:0"}]},"documentation":{"id":711,"nodeType":"StructuredDocumentation","src":"22304:822:0","text":"@notice Creates a new pool.\n @dev This is an internal function that is called by the 'createPool()' & 'createPoolWithCustomStrategy()' functions\n It is used to create a new pool and is called by both functions. The 'msg.sender' must be a member or owner of\n a profile to create a pool.\n @param _profileId The ID of the profile of for pool creator in the registry\n @param _strategy The address of strategy\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token that the pool is denominated in\n @param _amount The amount of the token to be deposited into the pool\n @param _metadata The 'Metadata' of the pool\n @param _managers The managers of the pool\n @return poolId The ID of the pool"},"implemented":true,"kind":"function","modifiers":[],"name":"_createPool","nameLocation":"23140:11:0","parameters":{"id":729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":713,"mutability":"mutable","name":"_profileId","nameLocation":"23169:10:0","nodeType":"VariableDeclaration","scope":925,"src":"23161:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23161:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"_strategy","nameLocation":"23199:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23189:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":715,"nodeType":"UserDefinedTypeName","pathNode":{"id":714,"name":"IStrategy","nameLocations":["23189:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"23189:9:0"},"referencedDeclaration":2969,"src":"23189:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"},{"constant":false,"id":718,"mutability":"mutable","name":"_initStrategyData","nameLocation":"23231:17:0","nodeType":"VariableDeclaration","scope":925,"src":"23218:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":717,"name":"bytes","nodeType":"ElementaryTypeName","src":"23218:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":720,"mutability":"mutable","name":"_token","nameLocation":"23266:6:0","nodeType":"VariableDeclaration","scope":925,"src":"23258:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":719,"name":"address","nodeType":"ElementaryTypeName","src":"23258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"_amount","nameLocation":"23290:7:0","nodeType":"VariableDeclaration","scope":925,"src":"23282:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":721,"name":"uint256","nodeType":"ElementaryTypeName","src":"23282:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":725,"mutability":"mutable","name":"_metadata","nameLocation":"23323:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23307:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":724,"nodeType":"UserDefinedTypeName","pathNode":{"id":723,"name":"Metadata","nameLocations":["23307:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"23307:8:0"},"referencedDeclaration":3098,"src":"23307:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":728,"mutability":"mutable","name":"_managers","nameLocation":"23359:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23342:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":727,"nodeType":"ArrayTypeName","src":"23342:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"23151:223:0"},"returnParameters":{"id":732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":731,"mutability":"mutable","name":"poolId","nameLocation":"23401:6:0","nodeType":"VariableDeclaration","scope":925,"src":"23393:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":730,"name":"uint256","nodeType":"ElementaryTypeName","src":"23393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23392:16:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":947,"nodeType":"FunctionDefinition","src":"26159:151:0","nodes":[],"body":{"id":946,"nodeType":"Block","src":"26224:86:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":941,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":930,"src":"26285:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":942,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26292:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26296:6:0","memberName":"sender","nodeType":"MemberAccess","src":"26292:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":933,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"26234:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":935,"indexExpression":{"id":934,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"26240:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26234:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26249:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"26234:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26258:8:0","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":2957,"src":"26234:32:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes memory,address) payable external"}},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":938,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26274:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26278:5:0","memberName":"value","nodeType":"MemberAccess","src":"26274:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26234:50:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$__$value","typeString":"function (bytes memory,address) payable external"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26234:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":945,"nodeType":"ExpressionStatement","src":"26234:69:0"}]},"documentation":{"id":926,"nodeType":"StructuredDocumentation","src":"25818:336:0","text":"@notice Allocate to recipient(s).\n @dev Passes '_data' & 'msg.sender' through to the strategy for that pool.\n This is an internal function that is called by the 'allocate()' & 'batchAllocate()' functions.\n @param _poolId ID of the pool\n @param _data Encoded data unique to the strategy for that pool"},"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"26168:9:0","parameters":{"id":931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"_poolId","nameLocation":"26186:7:0","nodeType":"VariableDeclaration","scope":947,"src":"26178:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"26178:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":930,"mutability":"mutable","name":"_data","nameLocation":"26208:5:0","nodeType":"VariableDeclaration","scope":947,"src":"26195:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":929,"name":"bytes","nodeType":"ElementaryTypeName","src":"26195:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26177:37:0"},"returnParameters":{"id":932,"nodeType":"ParameterList","parameters":[],"src":"26224:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1122,"nodeType":"FunctionDefinition","src":"26634:1879:0","nodes":[],"body":{"id":1121,"nodeType":"Block","src":"26717:1796:0","nodes":[],"statements":[{"assignments":[959],"declarations":[{"constant":false,"id":959,"mutability":"mutable","name":"feeAmount","nameLocation":"26735:9:0","nodeType":"VariableDeclaration","scope":1121,"src":"26727:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":958,"name":"uint256","nodeType":"ElementaryTypeName","src":"26727:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":960,"nodeType":"VariableDeclarationStatement","src":"26727:17:0"},{"assignments":[962],"declarations":[{"constant":false,"id":962,"mutability":"mutable","name":"amountAfterFee","nameLocation":"26762:14:0","nodeType":"VariableDeclaration","scope":1121,"src":"26754:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":961,"name":"uint256","nodeType":"ElementaryTypeName","src":"26754:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":964,"initialValue":{"id":963,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"26779:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26754:32:0"},{"assignments":[967],"declarations":[{"constant":false,"id":967,"mutability":"mutable","name":"pool","nameLocation":"26810:4:0","nodeType":"VariableDeclaration","scope":1121,"src":"26797:17:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":966,"nodeType":"UserDefinedTypeName","pathNode":{"id":965,"name":"Pool","nameLocations":["26797:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"26797:4:0"},"referencedDeclaration":2319,"src":"26797:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":971,"initialValue":{"baseExpression":{"id":968,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"26817:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":970,"indexExpression":{"id":969,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"26823:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26817:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26797:34:0"},{"assignments":[973],"declarations":[{"constant":false,"id":973,"mutability":"mutable","name":"_token","nameLocation":"26849:6:0","nodeType":"VariableDeclaration","scope":1121,"src":"26841:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":972,"name":"address","nodeType":"ElementaryTypeName","src":"26841:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":976,"initialValue":{"expression":{"id":974,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"26858:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool storage pointer"}},"id":975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26863:5:0","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"26858:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26841:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":977,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"26883:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26896:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26883:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1050,"nodeType":"IfStatement","src":"26879:808:0","trueBody":{"id":1049,"nodeType":"Block","src":"26899:788:0","statements":[{"expression":{"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":980,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"26913:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":981,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"26926:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":982,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"26936:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26926:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":984,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26925:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":985,"name":"getFeeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"26950:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26950:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26925:44:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26913:56:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":989,"nodeType":"ExpressionStatement","src":"26913:56:0"},{"expression":{"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":990,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"26983:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":991,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27001:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26983:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":993,"nodeType":"ExpressionStatement","src":"26983:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":994,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27029:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":995,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"27041:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27029:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":997,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"27059:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27029:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1002,"nodeType":"IfStatement","src":"27025:59:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":999,"name":"INVALID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"27075:7:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27075:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1001,"nodeType":"RevertStatement","src":"27068:16:0"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1003,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27103:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1004,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"27113:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27103:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1047,"nodeType":"Block","src":"27254:423:0","statements":[{"assignments":[1018],"declarations":[{"constant":false,"id":1018,"mutability":"mutable","name":"balanceBeforeFee","nameLocation":"27280:16:0","nodeType":"VariableDeclaration","scope":1047,"src":"27272:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1017,"name":"uint256","nodeType":"ElementaryTypeName","src":"27272:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1023,"initialValue":{"arguments":[{"id":1020,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27311:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1021,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27319:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1019,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27299:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27299:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27272:56:0"},{"expression":{"arguments":[{"id":1025,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27366:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1027,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27394:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27398:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27394:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1029,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27410:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1030,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27428:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1026,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27374:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27388:4:0","27406:2:0","27420:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27374:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1024,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27346:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27346:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1033,"nodeType":"ExpressionStatement","src":"27346:94:0"},{"assignments":[1035],"declarations":[{"constant":false,"id":1035,"mutability":"mutable","name":"balanceAfterFee","nameLocation":"27466:15:0","nodeType":"VariableDeclaration","scope":1047,"src":"27458:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint256","nodeType":"ElementaryTypeName","src":"27458:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1040,"initialValue":{"arguments":[{"id":1037,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27496:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1038,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27504:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1036,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27484:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27458:55:0"},{"expression":{"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1041,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27616:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1042,"name":"balanceAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1035,"src":"27628:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1043,"name":"balanceBeforeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1018,"src":"27646:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27628:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27616:46:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1046,"nodeType":"ExpressionStatement","src":"27616:46:0"}]},"id":1048,"nodeType":"IfStatement","src":"27099:578:0","trueBody":{"id":1016,"nodeType":"Block","src":"27121:127:0","statements":[{"expression":{"arguments":[{"id":1007,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27159:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1009,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27187:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27191:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27187:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1011,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27203:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1012,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27221:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1008,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27167:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27181:4:0","27199:2:0","27213:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27167:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1006,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27139:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27139:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1015,"nodeType":"ExpressionStatement","src":"27139:94:0"}]}}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1051,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27701:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1052,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"27711:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27701:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1107,"nodeType":"Block","src":"27889:501:0","statements":[{"assignments":[1069],"declarations":[{"constant":false,"id":1069,"mutability":"mutable","name":"balanceBeforeFundingPool","nameLocation":"27911:24:0","nodeType":"VariableDeclaration","scope":1107,"src":"27903:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1068,"name":"uint256","nodeType":"ElementaryTypeName","src":"27903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1077,"initialValue":{"arguments":[{"id":1071,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27950:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1074,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"27966:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27958:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1072,"name":"address","nodeType":"ElementaryTypeName","src":"27958:7:0","typeDescriptions":{}}},"id":1075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27958:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1070,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27938:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27938:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27903:74:0"},{"expression":{"arguments":[{"id":1079,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"28028:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1081,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28056:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28060:6:0","memberName":"sender","nodeType":"MemberAccess","src":"28056:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1085,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28080:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28072:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"28072:7:0","typeDescriptions":{}}},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28072:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1087,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28100:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1080,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"28036:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28050:4:0","28068:2:0","28092:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"28036:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1078,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27991:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27991:139:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1090,"nodeType":"ExpressionStatement","src":"27991:139:0"},{"assignments":[1092],"declarations":[{"constant":false,"id":1092,"mutability":"mutable","name":"balanceAfterFundingPool","nameLocation":"28152:23:0","nodeType":"VariableDeclaration","scope":1107,"src":"28144:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1091,"name":"uint256","nodeType":"ElementaryTypeName","src":"28144:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1100,"initialValue":{"arguments":[{"id":1094,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"28190:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1097,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28206:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28198:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"28198:7:0","typeDescriptions":{}}},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1093,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"28178:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28178:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28144:73:0"},{"expression":{"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1101,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28312:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1102,"name":"balanceAfterFundingPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"28329:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1103,"name":"balanceBeforeFundingPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"28355:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28329:50:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28312:67:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1106,"nodeType":"ExpressionStatement","src":"28312:67:0"}]},"id":1108,"nodeType":"IfStatement","src":"27697:693:0","trueBody":{"id":1067,"nodeType":"Block","src":"27719:164:0","statements":[{"expression":{"arguments":[{"id":1055,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27770:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27798:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27802:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27798:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1061,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"27822:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27814:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1059,"name":"address","nodeType":"ElementaryTypeName","src":"27814:7:0","typeDescriptions":{}}},"id":1062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27814:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1063,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"27842:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1056,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27778:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27792:4:0","27810:2:0","27834:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27778:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1054,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27733:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27733:139:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1066,"nodeType":"ExpressionStatement","src":"27733:139:0"}]}},{"expression":{"arguments":[{"id":1112,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28429:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1109,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28400:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28410:18:0","memberName":"increasePoolAmount","nodeType":"MemberAccess","referencedDeclaration":2908,"src":"28400:28:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28400:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1114,"nodeType":"ExpressionStatement","src":"28400:44:0"},{"eventCall":{"arguments":[{"id":1116,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"28471:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1117,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28480:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1118,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"28496:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1115,"name":"PoolFunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"28460:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28460:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1120,"nodeType":"EmitStatement","src":"28455:51:0"}]},"documentation":{"id":948,"nodeType":"StructuredDocumentation","src":"26316:313:0","text":"@notice Fund a pool.\n @dev Deducts the fee and transfers the amount to the distribution strategy.\n Emits a 'PoolFunded' event.\n @param _amount The amount to transfer\n @param _poolId The 'poolId' for the pool you are funding\n @param _strategy The address of the strategy"},"implemented":true,"kind":"function","modifiers":[],"name":"_fundPool","nameLocation":"26643:9:0","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":950,"mutability":"mutable","name":"_amount","nameLocation":"26661:7:0","nodeType":"VariableDeclaration","scope":1122,"src":"26653:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":949,"name":"uint256","nodeType":"ElementaryTypeName","src":"26653:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":952,"mutability":"mutable","name":"_poolId","nameLocation":"26678:7:0","nodeType":"VariableDeclaration","scope":1122,"src":"26670:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":951,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":955,"mutability":"mutable","name":"_strategy","nameLocation":"26697:9:0","nodeType":"VariableDeclaration","scope":1122,"src":"26687:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":954,"nodeType":"UserDefinedTypeName","pathNode":{"id":953,"name":"IStrategy","nameLocations":["26687:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"26687:9:0"},"referencedDeclaration":2969,"src":"26687:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"}],"src":"26652:55:0"},"returnParameters":{"id":957,"nodeType":"ParameterList","parameters":[],"src":"26717:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1135,"nodeType":"FunctionDefinition","src":"28898:132:0","nodes":[],"body":{"id":1134,"nodeType":"Block","src":"28976:54:0","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1130,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"28993:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1132,"indexExpression":{"id":1131,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1125,"src":"29013:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28993:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1129,"id":1133,"nodeType":"Return","src":"28986:37:0"}]},"documentation":{"id":1123,"nodeType":"StructuredDocumentation","src":"28519:374:0","text":"@notice Checks if the strategy is an approved cloneable strategy.\n @dev Internal function used by createPoolwithCustomStrategy and createPool to\n determine if a strategy is in the cloneable strategy allow list.\n @param _strategy The address of the strategy\n @return This will return 'true' if the strategy is cloneable, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isCloneableStrategy","nameLocation":"28907:20:0","parameters":{"id":1126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"_strategy","nameLocation":"28936:9:0","nodeType":"VariableDeclaration","scope":1135,"src":"28928:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1124,"name":"address","nodeType":"ElementaryTypeName","src":"28928:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28927:19:0"},"returnParameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1135,"src":"28970:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1127,"name":"bool","nodeType":"ElementaryTypeName","src":"28970:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28969:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1154,"nodeType":"FunctionDefinition","src":"29346:153:0","nodes":[],"body":{"id":1153,"nodeType":"Block","src":"29432:67:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1146,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"29457:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1148,"indexExpression":{"id":1147,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1138,"src":"29463:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29457:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29472:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":2318,"src":"29457:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1150,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"29483:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1145,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"29449:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29449:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1144,"id":1152,"nodeType":"Return","src":"29442:50:0"}]},"documentation":{"id":1136,"nodeType":"StructuredDocumentation","src":"29036:305:0","text":"@notice Checks if the address is a pool admin\n @dev Internal function used to determine if an address is a pool admin\n @param _poolId The ID of the pool\n @param _address The address to check\n @return This will return 'true' if the address is a pool admin, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isPoolAdmin","nameLocation":"29355:12:0","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1138,"mutability":"mutable","name":"_poolId","nameLocation":"29376:7:0","nodeType":"VariableDeclaration","scope":1154,"src":"29368:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"29368:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1140,"mutability":"mutable","name":"_address","nameLocation":"29393:8:0","nodeType":"VariableDeclaration","scope":1154,"src":"29385:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1139,"name":"address","nodeType":"ElementaryTypeName","src":"29385:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29367:35:0"},"returnParameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1154,"src":"29426:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1142,"name":"bool","nodeType":"ElementaryTypeName","src":"29426:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29425:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1178,"nodeType":"FunctionDefinition","src":"29821:192:0","nodes":[],"body":{"id":1177,"nodeType":"Block","src":"29909:104:0","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"baseExpression":{"id":1165,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"29934:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1167,"indexExpression":{"id":1166,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"29940:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29934:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29949:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"29934:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1169,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"29962:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1164,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"29926:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29926:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1172,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"29988:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1173,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"29997:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1171,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"29975:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29975:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29926:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1163,"id":1176,"nodeType":"Return","src":"29919:87:0"}]},"documentation":{"id":1155,"nodeType":"StructuredDocumentation","src":"29505:311:0","text":"@notice Checks if the address is a pool manager\n @dev Internal function used to determine if an address is a pool manager\n @param _poolId The ID of the pool\n @param _address The address to check\n @return This will return 'true' if the address is a pool manager, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isPoolManager","nameLocation":"29830:14:0","parameters":{"id":1160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"_poolId","nameLocation":"29853:7:0","nodeType":"VariableDeclaration","scope":1178,"src":"29845:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"29845:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"_address","nameLocation":"29870:8:0","nodeType":"VariableDeclaration","scope":1178,"src":"29862:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"29862:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29844:35:0"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1178,"src":"29903:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1161,"name":"bool","nodeType":"ElementaryTypeName","src":"29903:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29902:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1205,"nodeType":"FunctionDefinition","src":"30226:203:0","nodes":[],"body":{"id":1204,"nodeType":"Block","src":"30279:150:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1184,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30293:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30314:1:0","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":1186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30306:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1185,"name":"address","nodeType":"ElementaryTypeName","src":"30306:7:0","typeDescriptions":{}}},"id":1188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30306:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30293:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1193,"nodeType":"IfStatement","src":"30289:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1190,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"30325:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30325:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1192,"nodeType":"RevertStatement","src":"30318:21:0"}},{"expression":{"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1194,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"30350:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1196,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30371:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1195,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"30361:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":1197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30361:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"30350:31:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":1199,"nodeType":"ExpressionStatement","src":"30350:31:0"},{"eventCall":{"arguments":[{"id":1201,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30412:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1200,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"30396:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30396:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1203,"nodeType":"EmitStatement","src":"30391:31:0"}]},"documentation":{"id":1179,"nodeType":"StructuredDocumentation","src":"30019:202:0","text":"@notice Updates the registry address\n @dev Internal function used to update the registry address.\n Emits a RegistryUpdated event.\n @param _registry The new registry address"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateRegistry","nameLocation":"30235:15:0","parameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"_registry","nameLocation":"30259:9:0","nodeType":"VariableDeclaration","scope":1205,"src":"30251:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1180,"name":"address","nodeType":"ElementaryTypeName","src":"30251:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:19:0"},"returnParameters":{"id":1183,"nodeType":"ParameterList","parameters":[],"src":"30279:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1230,"nodeType":"FunctionDefinition","src":"30642:199:0","nodes":[],"body":{"id":1229,"nodeType":"Block","src":"30703:138:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1211,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"30717:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30738:1:0","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":1213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30730:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"30730:7:0","typeDescriptions":{}}},"id":1215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30730:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30717:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1220,"nodeType":"IfStatement","src":"30713:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1217,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"30749:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30749:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1219,"nodeType":"RevertStatement","src":"30742:21:0"}},{"expression":{"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1221,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"30774:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1222,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"30785:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"30774:20:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1224,"nodeType":"ExpressionStatement","src":"30774:20:0"},{"eventCall":{"arguments":[{"id":1226,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"30825:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1225,"name":"TreasuryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"30809:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30809:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1228,"nodeType":"EmitStatement","src":"30804:30:0"}]},"documentation":{"id":1206,"nodeType":"StructuredDocumentation","src":"30435:202:0","text":"@notice Updates the treasury address\n @dev Internal function used to update the treasury address.\n Emits a TreasuryUpdated event.\n @param _treasury The new treasury address"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateTreasury","nameLocation":"30651:15:0","parameters":{"id":1209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"_treasury","nameLocation":"30683:9:0","nodeType":"VariableDeclaration","scope":1230,"src":"30667:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1207,"name":"address","nodeType":"ElementaryTypeName","src":"30667:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"30666:27:0"},"returnParameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"30703:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1252,"nodeType":"FunctionDefinition","src":"31041:198:0","nodes":[],"body":{"id":1251,"nodeType":"Block","src":"31098:141:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1236,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"31112:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31653138","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31126:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"31112:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1242,"nodeType":"IfStatement","src":"31108:44:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1239,"name":"INVALID_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3041,"src":"31139:11:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31139:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1241,"nodeType":"RevertStatement","src":"31132:20:0"}},{"expression":{"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1243,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"31163:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1244,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"31176:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31163:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1246,"nodeType":"ExpressionStatement","src":"31163:24:0"},{"eventCall":{"arguments":[{"id":1248,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"31221:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1247,"name":"PercentFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"31203:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31203:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1250,"nodeType":"EmitStatement","src":"31198:34:0"}]},"documentation":{"id":1231,"nodeType":"StructuredDocumentation","src":"30847:189:0","text":"@notice Updates the fee percentage\n @dev Internal function used to update the percentage fee.\n Emits a PercentFeeUpdated event.\n @param _percentFee The new fee"},"implemented":true,"kind":"function","modifiers":[],"name":"_updatePercentFee","nameLocation":"31050:17:0","parameters":{"id":1234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1233,"mutability":"mutable","name":"_percentFee","nameLocation":"31076:11:0","nodeType":"VariableDeclaration","scope":1252,"src":"31068:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1232,"name":"uint256","nodeType":"ElementaryTypeName","src":"31068:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31067:21:0"},"returnParameters":{"id":1235,"nodeType":"ParameterList","parameters":[],"src":"31098:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1267,"nodeType":"FunctionDefinition","src":"31426:125:0","nodes":[],"body":{"id":1266,"nodeType":"Block","src":"31477:74:0","nodes":[],"statements":[{"expression":{"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1258,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"31487:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1259,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"31497:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31487:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1261,"nodeType":"ExpressionStatement","src":"31487:18:0"},{"eventCall":{"arguments":[{"id":1263,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"31536:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1262,"name":"BaseFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"31521:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31521:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1265,"nodeType":"EmitStatement","src":"31516:28:0"}]},"documentation":{"id":1253,"nodeType":"StructuredDocumentation","src":"31245:176:0","text":"@notice Updates the base fee\n @dev Internal function used to update the base fee.\n Emits a BaseFeeUpdated event.\n @param _baseFee The new base fee"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateBaseFee","nameLocation":"31435:14:0","parameters":{"id":1256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1255,"mutability":"mutable","name":"_baseFee","nameLocation":"31458:8:0","nodeType":"VariableDeclaration","scope":1267,"src":"31450:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1254,"name":"uint256","nodeType":"ElementaryTypeName","src":"31450:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31449:18:0"},"returnParameters":{"id":1257,"nodeType":"ParameterList","parameters":[],"src":"31477:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1276,"nodeType":"FunctionDefinition","src":"31788:103:0","nodes":[],"body":{"id":1275,"nodeType":"Block","src":"31863:28:0","nodes":[],"statements":[{"expression":{"hexValue":"31653138","id":1273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31880:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"functionReturnParameters":1272,"id":1274,"nodeType":"Return","src":"31873:11:0"}]},"baseFunctions":[2609],"documentation":{"id":1268,"nodeType":"StructuredDocumentation","src":"31657:126:0","text":"@notice Getter for the fee denominator\n @return FEE_DENOMINATOR The fee denominator is (1e18) which represents 100%"},"functionSelector":"f4e1fc41","implemented":true,"kind":"function","modifiers":[],"name":"getFeeDenominator","nameLocation":"31797:17:0","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[],"src":"31814:2:0"},"returnParameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"mutability":"mutable","name":"FEE_DENOMINATOR","nameLocation":"31846:15:0","nodeType":"VariableDeclaration","scope":1276,"src":"31838:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"31838:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31837:25:0"},"scope":1390,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":1292,"nodeType":"FunctionDefinition","src":"32112:140:0","nodes":[],"body":{"id":1291,"nodeType":"Block","src":"32197:55:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1287,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"32227:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1288,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"32236:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1286,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"32214:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32214:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1285,"id":1290,"nodeType":"Return","src":"32207:38:0"}]},"baseFunctions":[2543],"documentation":{"id":1277,"nodeType":"StructuredDocumentation","src":"31897:210:0","text":"@notice Checks if the address is a pool admin.\n @param _poolId The ID of the pool\n @param _address The address to check\n @return 'true' if the address is a pool admin, otherwise 'false'"},"functionSelector":"ab3febc6","implemented":true,"kind":"function","modifiers":[],"name":"isPoolAdmin","nameLocation":"32121:11:0","parameters":{"id":1282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"mutability":"mutable","name":"_poolId","nameLocation":"32141:7:0","nodeType":"VariableDeclaration","scope":1292,"src":"32133:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1278,"name":"uint256","nodeType":"ElementaryTypeName","src":"32133:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1281,"mutability":"mutable","name":"_address","nameLocation":"32158:8:0","nodeType":"VariableDeclaration","scope":1292,"src":"32150:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1280,"name":"address","nodeType":"ElementaryTypeName","src":"32150:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32132:35:0"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1292,"src":"32191:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1283,"name":"bool","nodeType":"ElementaryTypeName","src":"32191:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32190:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1308,"nodeType":"FunctionDefinition","src":"32476:144:0","nodes":[],"body":{"id":1307,"nodeType":"Block","src":"32563:57:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1303,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"32595:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1304,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"32604:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1302,"name":"_isPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"32580:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32580:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1301,"id":1306,"nodeType":"Return","src":"32573:40:0"}]},"baseFunctions":[2553],"documentation":{"id":1293,"nodeType":"StructuredDocumentation","src":"32258:213:0","text":"@notice Checks if the address is a pool manager\n @param _poolId The ID of the pool\n @param _address The address to check\n @return 'true' if the address is a pool manager, otherwise 'false'"},"functionSelector":"29e40d4b","implemented":true,"kind":"function","modifiers":[],"name":"isPoolManager","nameLocation":"32485:13:0","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"_poolId","nameLocation":"32507:7:0","nodeType":"VariableDeclaration","scope":1308,"src":"32499:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1294,"name":"uint256","nodeType":"ElementaryTypeName","src":"32499:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"_address","nameLocation":"32524:8:0","nodeType":"VariableDeclaration","scope":1308,"src":"32516:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1296,"name":"address","nodeType":"ElementaryTypeName","src":"32516:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32498:35:0"},"returnParameters":{"id":1301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1308,"src":"32557:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1299,"name":"bool","nodeType":"ElementaryTypeName","src":"32557:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32556:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1325,"nodeType":"FunctionDefinition","src":"32753:126:0","nodes":[],"body":{"id":1324,"nodeType":"Block","src":"32823:56:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1318,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"32848:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1320,"indexExpression":{"id":1319,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"32854:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32848:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32863:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"32848:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32840:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"32840:7:0","typeDescriptions":{}}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32840:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1315,"id":1323,"nodeType":"Return","src":"32833:39:0"}]},"baseFunctions":[2569],"documentation":{"id":1309,"nodeType":"StructuredDocumentation","src":"32626:122:0","text":"@notice Getter for the strategy.\n @param _poolId The ID of the pool\n @return The address of the strategy"},"functionSelector":"cfc0cc34","implemented":true,"kind":"function","modifiers":[],"name":"getStrategy","nameLocation":"32762:11:0","parameters":{"id":1312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1311,"mutability":"mutable","name":"_poolId","nameLocation":"32782:7:0","nodeType":"VariableDeclaration","scope":1325,"src":"32774:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1310,"name":"uint256","nodeType":"ElementaryTypeName","src":"32774:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32773:17:0"},"returnParameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1325,"src":"32814:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"32814:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32813:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1334,"nodeType":"FunctionDefinition","src":"32977:91:0","nodes":[],"body":{"id":1333,"nodeType":"Block","src":"33034:34:0","nodes":[],"statements":[{"expression":{"id":1331,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"33051:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1330,"id":1332,"nodeType":"Return","src":"33044:17:0"}]},"baseFunctions":[2575],"documentation":{"id":1326,"nodeType":"StructuredDocumentation","src":"32885:87:0","text":"@notice Getter for fee percentage.\n @return The fee percentage (1e18 = 100%)"},"functionSelector":"4edbaadc","implemented":true,"kind":"function","modifiers":[],"name":"getPercentFee","nameLocation":"32986:13:0","parameters":{"id":1327,"nodeType":"ParameterList","parameters":[],"src":"32999:2:0"},"returnParameters":{"id":1330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1334,"src":"33025:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1328,"name":"uint256","nodeType":"ElementaryTypeName","src":"33025:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33024:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1343,"nodeType":"FunctionDefinition","src":"33140:85:0","nodes":[],"body":{"id":1342,"nodeType":"Block","src":"33194:31:0","nodes":[],"statements":[{"expression":{"id":1340,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"33211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1339,"id":1341,"nodeType":"Return","src":"33204:14:0"}]},"baseFunctions":[2581],"documentation":{"id":1335,"nodeType":"StructuredDocumentation","src":"33074:61:0","text":"@notice Getter for base fee.\n @return The base fee"},"functionSelector":"15e812ad","implemented":true,"kind":"function","modifiers":[],"name":"getBaseFee","nameLocation":"33149:10:0","parameters":{"id":1336,"nodeType":"ParameterList","parameters":[],"src":"33159:2:0"},"returnParameters":{"id":1339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1343,"src":"33185:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1337,"name":"uint256","nodeType":"ElementaryTypeName","src":"33185:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33184:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1352,"nodeType":"FunctionDefinition","src":"33313:95:0","nodes":[],"body":{"id":1351,"nodeType":"Block","src":"33376:32:0","nodes":[],"statements":[{"expression":{"id":1349,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"33393:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":1348,"id":1350,"nodeType":"Return","src":"33386:15:0"}]},"baseFunctions":[2587],"documentation":{"id":1344,"nodeType":"StructuredDocumentation","src":"33231:77:0","text":"@notice Getter for treasury address.\n @return The treasury address"},"functionSelector":"3b19e84a","implemented":true,"kind":"function","modifiers":[],"name":"getTreasury","nameLocation":"33322:11:0","parameters":{"id":1345,"nodeType":"ParameterList","parameters":[],"src":"33333:2:0"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1352,"src":"33359:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1346,"name":"address","nodeType":"ElementaryTypeName","src":"33359:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"33358:17:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1362,"nodeType":"FunctionDefinition","src":"33488:89:0","nodes":[],"body":{"id":1361,"nodeType":"Block","src":"33545:32:0","nodes":[],"statements":[{"expression":{"id":1359,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"33562:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"functionReturnParameters":1358,"id":1360,"nodeType":"Return","src":"33555:15:0"}]},"baseFunctions":[2594],"documentation":{"id":1353,"nodeType":"StructuredDocumentation","src":"33414:69:0","text":"@notice Getter for registry.\n @return The registry address"},"functionSelector":"5ab1bd53","implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"33497:11:0","parameters":{"id":1354,"nodeType":"ParameterList","parameters":[],"src":"33508:2:0"},"returnParameters":{"id":1358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1362,"src":"33534:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":1356,"nodeType":"UserDefinedTypeName","pathNode":{"id":1355,"name":"IRegistry","nameLocations":["33534:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"33534:9:0"},"referencedDeclaration":2802,"src":"33534:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"33533:11:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1375,"nodeType":"FunctionDefinition","src":"33760:132:0","nodes":[],"body":{"id":1374,"nodeType":"Block","src":"33837:55:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1371,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"33875:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1370,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"33854:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33854:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1369,"id":1373,"nodeType":"Return","src":"33847:38:0"}]},"baseFunctions":[2561],"documentation":{"id":1363,"nodeType":"StructuredDocumentation","src":"33583:172:0","text":"@notice Getter for if strategy is cloneable.\n @param _strategy The address of the strategy\n @return 'true' if the strategy is cloneable, otherwise 'false'"},"functionSelector":"ab2ec589","implemented":true,"kind":"function","modifiers":[],"name":"isCloneableStrategy","nameLocation":"33769:19:0","parameters":{"id":1366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1365,"mutability":"mutable","name":"_strategy","nameLocation":"33797:9:0","nodeType":"VariableDeclaration","scope":1375,"src":"33789:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1364,"name":"address","nodeType":"ElementaryTypeName","src":"33789:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33788:19:0"},"returnParameters":{"id":1369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1375,"src":"33831:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1367,"name":"bool","nodeType":"ElementaryTypeName","src":"33831:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33830:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1389,"nodeType":"FunctionDefinition","src":"34013:108:0","nodes":[],"body":{"id":1388,"nodeType":"Block","src":"34083:38:0","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1384,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"34100:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1386,"indexExpression":{"id":1385,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"34106:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34100:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"functionReturnParameters":1383,"id":1387,"nodeType":"Return","src":"34093:21:0"}]},"baseFunctions":[2603],"documentation":{"id":1376,"nodeType":"StructuredDocumentation","src":"33898:110:0","text":"@notice Getter for the 'Pool'.\n @param _poolId The ID of the pool\n @return The 'Pool' struct"},"functionSelector":"068bcd8d","implemented":true,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"34022:7:0","parameters":{"id":1379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1378,"mutability":"mutable","name":"_poolId","nameLocation":"34038:7:0","nodeType":"VariableDeclaration","scope":1389,"src":"34030:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1377,"name":"uint256","nodeType":"ElementaryTypeName","src":"34030:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34029:17:0"},"returnParameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1389,"src":"34070:11:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":1381,"nodeType":"UserDefinedTypeName","pathNode":{"id":1380,"name":"Pool","nameLocations":["34070:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"34070:4:0"},"referencedDeclaration":2319,"src":"34070:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"34069:13:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":16,"name":"IAllo","nameLocations":["5097:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":2610,"src":"5097:5:0"},"id":17,"nodeType":"InheritanceSpecifier","src":"5097:5:0"},{"baseName":{"id":18,"name":"Native","nameLocations":["5108:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"5108:6:0"},"id":19,"nodeType":"InheritanceSpecifier","src":"5108:6:0"},{"baseName":{"id":20,"name":"Transfer","nameLocations":["5120:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3317,"src":"5120:8:0"},"id":21,"nodeType":"InheritanceSpecifier","src":"5120:8:0"},{"baseName":{"id":22,"name":"Initializable","nameLocations":["5134:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":53191,"src":"5134:13:0"},"id":23,"nodeType":"InheritanceSpecifier","src":"5134:13:0"},{"baseName":{"id":24,"name":"Ownable","nameLocations":["5153:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":4095,"src":"5153:7:0"},"id":25,"nodeType":"InheritanceSpecifier","src":"5153:7:0"},{"baseName":{"id":26,"name":"AccessControlUpgradeable","nameLocations":["5166:24:0"],"nodeType":"IdentifierPath","referencedDeclaration":52736,"src":"5166:24:0"},"id":27,"nodeType":"InheritanceSpecifier","src":"5166:24:0"},{"baseName":{"id":28,"name":"ReentrancyGuardUpgradeable","nameLocations":["5196:26:0"],"nodeType":"IdentifierPath","referencedDeclaration":53276,"src":"5196:26:0"},"id":29,"nodeType":"InheritanceSpecifier","src":"5196:26:0"},{"baseName":{"id":30,"name":"Errors","nameLocations":["5228:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"5228:6:0"},"id":31,"nodeType":"InheritanceSpecifier","src":"5228:6:0"}],"canonicalName":"Allo","contractDependencies":[],"contractKind":"contract","documentation":{"id":15,"nodeType":"StructuredDocumentation","src":"4725:351:0","text":"@title Allo\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice This contract is used to create & manage pools as well as manage the protocol.\n @dev The contract must be initialized with the 'initialize()' function."},"fullyImplemented":true,"linearizedBaseContracts":[1390,3089,53276,52736,54009,54021,52809,53735,4095,53191,3317,3106,2610],"name":"Allo","nameLocation":"5085:4:0","scope":1391,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,3929,3932,3935]}],"license":"AGPL-3.0-only"},"id":0} \ No newline at end of file +{"abi":[{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"addPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addToCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"batchAllocate","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_datas","type":"bytes[]","internalType":"bytes[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"batchRegisterRecipient","inputs":[{"name":"_poolIds","type":"uint256[]","internalType":"uint256[]"},{"name":"_data","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"recipientIds","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"cancelOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"completeOwnershipHandover","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"createPool","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"distribute","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"fundPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"getBaseFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getFeeDenominator","inputs":[],"outputs":[{"name":"FEE_DENOMINATOR","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"getPercentFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStrategy","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getTreasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"},{"name":"_registry","type":"address","internalType":"address"},{"name":"_treasury","type":"address","internalType":"address payable"},{"name":"_percentFee","type":"uint256","internalType":"uint256"},{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCloneableStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolAdmin","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isPoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_address","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"result","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ownershipHandoverExpiresAt","inputs":[{"name":"pendingOwner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"removeFromCloneableStrategies","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removePoolManager","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_manager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"requestOwnershipHandover","inputs":[],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"updateBaseFee","inputs":[{"name":"_baseFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePercentFee","inputs":[{"name":"_percentFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updatePoolMetadata","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateRegistry","inputs":[{"name":"_registry","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateTreasury","inputs":[{"name":"_treasury","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"BaseFeePaid","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BaseFeeUpdated","inputs":[{"name":"baseFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverCanceled","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipHandoverRequested","inputs":[{"name":"pendingOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"oldOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PercentFeeUpdated","inputs":[{"name":"percentFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"strategy","type":"address","indexed":false,"internalType":"contract IStrategy"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"PoolFunded","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"fee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolMetadataUpdated","inputs":[{"name":"poolId","type":"uint256","indexed":true,"internalType":"uint256"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registry","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyApproved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TreasuryUpdated","inputs":[{"name":"treasury","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NewOwnerIsZeroAddress","inputs":[]},{"type":"error","name":"NoHandoverRequest","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"Unauthorized","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b506135a1806100206000396000f3fe6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea264697066735822122003a48f7a46c6d9883a02069310109ac1406e8f153439b0f6e65fc391be587c1f64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106102e75760003560e01c80635f9ca13811610184578063ab2ec589116100d6578063e1007d4a1161008a578063f4e1fc4111610064578063f4e1fc41146107e7578063f54fc4a014610802578063fee81cf41461082257600080fd5b8063e1007d4a146107ae578063f04e283e146107c1578063f2fde38b146107d457600080fd5b8063c6dff1cf116100bb578063c6dff1cf14610735578063cfc0cc3414610755578063d547741f1461078e57600080fd5b8063ab2ec589146106f5578063ab3febc61461071557600080fd5b80638da5cb5b11610138578063a0cf0aea11610112578063a0cf0aea14610698578063a217fddf146106c0578063a6b63eb8146106d557600080fd5b80638da5cb5b146106195780638e6901861461063257806391d148541461065257600080fd5b806377da8caf1161016957806377da8caf146105c65780637f51bb1f146105d95780637f5a70bd146105f957600080fd5b80635f9ca1381461059e578063715018a6146105be57600080fd5b80632cf682b01161023d5780633b19e84a116101f157806354d1f13d116101cb57806354d1f13d146105655780635ab1bd531461056d5780635acd6fac1461058b57600080fd5b80633b19e84a1461051257806341bba0b4146105305780634edbaadc1461055057600080fd5b80632f2ff15d116102225780632f2ff15d146104b257806336568abe146104d25780633a5fbd92146104f257600080fd5b80632cf682b01461047f5780632ec381881461049f57600080fd5b80631a20bd881161029f57806324ae6a271161027957806324ae6a2714610437578063256929621461045757806329e40d4b1461045f57600080fd5b80631a20bd88146103ba5780631a5da6c8146103e7578063248a9ca31461040757600080fd5b8063068bcd8d116102d0578063068bcd8d14610343578063075c0e9c1461037057806315e812ad1461039b57600080fd5b806301ffc9a7146102ec578063031e2fa114610321575b600080fd5b3480156102f857600080fd5b5061030c6103073660046129c9565b610855565b60405190151581526020015b60405180910390f35b34801561032d57600080fd5b5061034161033c366004612a20565b6108ee565b005b34801561034f57600080fd5b5061036361035e366004612a3d565b61094e565b6040516103189190612ac5565b61038361037e366004612bed565b610a61565b6040516001600160a01b039091168152602001610318565b3480156103a757600080fd5b5060ca545b604051908152602001610318565b3480156103c657600080fd5b506103da6103d5366004612ce8565b610b17565b6040516103189190612ddb565b3480156103f357600080fd5b50610341610402366004612a20565b610c9e565b34801561041357600080fd5b506103ac610422366004612a3d565b60009081526065602052604090206001015490565b34801561044357600080fd5b50610341610452366004612dee565b610cb2565b610341610d7a565b34801561046b57600080fd5b5061030c61047a366004612e27565b610dca565b34801561048b57600080fd5b5061034161049a366004612e27565b610ddd565b6103416104ad366004612bed565b610e2a565b3480156104be57600080fd5b506103416104cd366004612e27565b610e4a565b3480156104de57600080fd5b506103416104ed366004612e27565b610e6f565b3480156104fe57600080fd5b5061034161050d366004612eb0565b610efc565b34801561051e57600080fd5b5060cc546001600160a01b0316610383565b34801561053c57600080fd5b5061034161054b366004612a20565b610f9d565b34801561055c57600080fd5b5060c9546103ac565b610341611020565b34801561057957600080fd5b5060cd546001600160a01b0316610383565b610341610599366004612f1d565b61105c565b3480156105aa57600080fd5b506103416105b9366004612fc2565b6111f3565b610341611270565b6103ac6105d4366004612fff565b611284565b3480156105e557600080fd5b506103416105f4366004612a20565b611333565b34801561060557600080fd5b50610341610614366004612e27565b611344565b34801561062557600080fd5b50638b78c6d81954610383565b34801561063e57600080fd5b5061034161064d366004612a3d565b61136a565b34801561065e57600080fd5b5061030c61066d366004612e27565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156106a457600080fd5b5061038373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b3480156106cc57600080fd5b506103ac600081565b3480156106e157600080fd5b506103416106f03660046130c2565b61137b565b34801561070157600080fd5b5061030c610710366004612a20565b611499565b34801561072157600080fd5b5061030c610730366004612e27565b6114ba565b34801561074157600080fd5b5061034161075036600461311d565b6114c6565b34801561076157600080fd5b50610383610770366004612a3d565b600090815260cf60205260409020600101546001600160a01b031690565b34801561079a57600080fd5b506103416107a9366004612e27565b61154b565b6103ac6107bc366004612fff565b611570565b6103416107cf366004612a20565b611607565b6103416107e2366004612a20565b611644565b3480156107f357600080fd5b50670de0b6b3a76400006103ac565b34801561080e57600080fd5b5061034161081d366004612a3d565b61166b565b34801561082e57600080fd5b506103ac61083d366004612a20565b63389a75e1600c908152600091909152602090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806108e857507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b6108f661167c565b6001600160a01b038116600081815260d06020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea491015b60405180910390a150565b610956612963565b600082815260cf6020908152604091829020825160c0810184528154815260018201546001600160a01b039081168285015260028301541681850152835180850190945260038201805485526004830180549295939460608701949390840191906109c0906131aa565b80601f01602080910402602001604051908101604052809291908181526020018280546109ec906131aa565b8015610a395780601f10610a0e57610100808354040283529160200191610a39565b820191906000526020600020905b815481529060010190602001808311610a1c57829003601f168201915b5050505050815250508152602001600582015481526020016006820154815250509050919050565b6000610a6b611697565b600083815260cf6020526040908190206001015490517f2bbe0cae0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690632bbe0cae903490610ac890869033906004016131e4565b60206040518083038185885af1158015610ae6573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190610b0b919061320f565b90506108e86001609755565b6060610b21611697565b82518067ffffffffffffffff811115610b3c57610b3c612b2e565b604051908082528060200260200182016040528015610b65578160200160208202803683370190505b50915082518114610b895760405163636e39bb60e01b815260040160405180910390fd5b60005b81811015610c925760cf6000868381518110610baa57610baa61322c565b6020026020010151815260200190815260200160002060010160009054906101000a90046001600160a01b03166001600160a01b0316632bbe0cae858381518110610bf757610bf761322c565b6020026020010151336040518363ffffffff1660e01b8152600401610c1d9291906131e4565b6020604051808303816000875af1158015610c3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c60919061320f565b838281518110610c7257610c7261322c565b6001600160a01b0390921660209283029190910190910152600101610b8c565b50506108e86001609755565b610ca661167c565b610caf816116f0565b50565b610cba61167c565b60006001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14610d66576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038416906370a0823190602401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d619190613242565b610d68565b475b9050610d75838383611772565b505050565b60006202a30067ffffffffffffffff164201905063389a75e1600c5233600052806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d600080a250565b6000610dd683836117ac565b9392505050565b81610de7816117ef565b6001600160a01b038216610e0e5760405163538ba4f960e01b815260040160405180910390fd5b600083815260cf6020526040902060050154610d759083611816565b610e32611697565b610e3c82826118b8565b610e466001609755565b5050565b600082815260656020526040902060010154610e658161194b565b610d758383611816565b6001600160a01b0381163314610ef25760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b610e468282611955565b610f04611697565b600083815260cf6020526040908190206001015490517f0a6f0ee90000000000000000000000000000000000000000000000000000000081526001600160a01b0390911690630a6f0ee990610f619085908590339060040161325b565b600060405180830381600087803b158015610f7b57600080fd5b505af1158015610f8f573d6000803e3d6000fd5b50505050610d756001609755565b610fa561167c565b6001600160a01b038116610fcc5760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038116600081815260d06020908152604091829020805460ff1916600117905590519182527f960dd94cbb79169f09a4e445d58b895df2d9bffa5b31055d0932d801724a20d19101610943565b63389a75e1600c523360005260006020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c92600080a2565b611064611697565b80600003611085576040516303e09bb960e31b815260040160405180910390fd5b600082815260cf60209081526040808320815160c0810183528154815260018201546001600160a01b03908116828601526002830154168184015282518084019093526003820180548452600483018054929593946060870194909390840191906110ef906131aa565b80601f016020809104026020016040519081016040528092919081815260200182805461111b906131aa565b80156111685780601f1061113d57610100808354040283529160200191611168565b820191906000526020600020905b81548152906001019060200180831161114b57829003601f168201915b505050919092525050508152600582015460208201526006909101546040918201528101519091506001600160a01b031673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156111bb5750348214155b156111d9576040516303e09bb960e31b815260040160405180910390fd5b6111e8828483602001516119d8565b50610e466001609755565b816111fd81611cbc565b600083815260cf602090815260409091208351600382019081559184015190918491600484019061122e90826132e8565b50905050837f14f52b76bda9e4c482842cefda2968d332933577988f224e80aae18fba10edf08460405161126291906133a8565b60405180910390a250505050565b61127861167c565b6112826000611cc6565b565b600061128e611697565b6001600160a01b038716600090815260d0602052604090205460ff166112e0576040517f9369923800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b33600090815260ce60205260408120805461131c928b92611312928c92909190611309836133d1565b91905055611d04565b8888888888611d58565b90506113286001609755565b979650505050505050565b61133b61167c565b610caf81612293565b8161134e816117ef565b600083815260cf6020526040902060050154610d759083611955565b61137261167c565b610caf81612315565b600054600190610100900460ff1615801561139d575060005460ff8083169116105b61140f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401610ee9565b6000805461ffff191660ff83161761010017905561142c8661234a565b611435856116f0565b61143e84612293565b61144783612386565b61145082612315565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050505050565b6001600160a01b038116600090815260d0602052604081205460ff166108e8565b6000610dd683836123fd565b6114ce611697565b8051829081146114f15760405163636e39bb60e01b815260040160405180910390fd5b60005b8181101561153f576115378585838181106115115761151161322c565b9050602002013584838151811061152a5761152a61322c565b60200260200101516118b8565b6001016114f4565b5050610d756001609755565b6000828152606560205260409020600101546115668161194b565b610d758383611955565b60006001600160a01b0387166115995760405163538ba4f960e01b815260040160405180910390fd5b6001600160a01b038716600090815260d0602052604090205460ff16156115ec576040517feeffa72100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115fb88888888888888611d58565b98975050505050505050565b61160f61167c565b63389a75e1600c52806000526020600c20805442111561163757636f5e88186000526004601cfd5b60009055610caf81611cc6565b61164c61167c565b8060601b61166257637448fbae6000526004601cfd5b610caf81611cc6565b61167361167c565b610caf81612386565b638b78c6d819543314611282576382b429006000526004601cfd5b6002609754036116e95760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ee9565b6002609755565b6001600160a01b0381166117175760405163538ba4f960e01b815260040160405180910390fd5b60cd805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd90602001610943565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016117a157610d758282612435565b610d75838383612451565b600082815260cf60209081526040808320600501548352606582528083206001600160a01b038516845290915281205460ff1680610dd65750610dd683836123fd565b6117f981336123fd565b610caf5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e465760008281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556118743390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600082815260cf6020526040908190206001015490517fef2920fc0000000000000000000000000000000000000000000000000000000081526001600160a01b039091169063ef2920fc90349061191590859033906004016131e4565b6000604051808303818588803b15801561192e57600080fd5b505af1158015611942573d6000803e3d6000fd5b50505050505050565b610caf81336124a0565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1615610e465760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082815260cf60205260408120600281015460c9548692916001600160a01b03169015611b4257670de0b6b3a764000060c954611a1690896133ea565b611a209190613401565b9350611a2c8484613423565b925086611a398486613436565b14611a70576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611aca576040805160608101825233815260cc546001600160a01b03166020820152908101859052611ac4908290612515565b50611b42565b60cc54600090611ae49083906001600160a01b03166125ad565b6040805160608101825233815260cc546001600160a01b03166020820152908101879052909150611b16908390612515565b5060cc54600090611b319084906001600160a01b03166125ad565b9050611b3d8282613423565b955050505b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03821601611ba357611b9d816040518060600160405280336001600160a01b03168152602001886001600160a01b0316815260200186815250612515565b50611c05565b6000611baf82876125ad565b9050611be7826040518060600160405280336001600160a01b03168152602001896001600160a01b0316815260200187815250612515565b506000611bf483886125ad565b9050611c008282613423565b945050505b6040517ff5b0dfb7000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b0386169063f5b0dfb790602401600060405180830381600087803b158015611c6057600080fd5b505af1158015611c74573d6000803e3d6000fd5b505060408051868152602081018890528993507fbf59838198f4ea92f663f5c1fc697f151a1b746b7dff86d564f250a55cbb485192500160405180910390a250505050505050565b6117f981336117ac565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a355565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050611d5084826125f6565b949350505050565b60cd546040517f5e8a7915000000000000000000000000000000000000000000000000000000008152600481018990523360248201526000916001600160a01b031690635e8a791590604401602060405180830381865afa158015611dc1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611de59190613449565b611e025760405163075fd2b160e01b815260040160405180910390fd5b60cb60008154611e11906133d1565b91829055506040519091508190600090611e599083906020019081527f61646d696e000000000000000000000000000000000000000000000000000000602082015260250190565b60408051601f19818403018152828252805160209182012060c0840183528d84526001600160a01b03808e168584019081528c8216868601908152606087018c8152608088018a905260a0880185905260008b815260cf87529690962087518155915160018301805491851673ffffffffffffffffffffffffffffffffffffffff1992831617905590516002830180549190941691161790915592518051600385019081559281015191955084939290916004840190611f1990826132e8565b5050506080820151600582015560a090910151600690910155611f3c8233611816565b611f468383612693565b6040517fedd146cc0000000000000000000000000000000000000000000000000000000081526001600160a01b038b169063edd146cc90611f8d9087908d9060040161346b565b600060405180830381600087803b158015611fa757600080fd5b505af1158015611fbb573d6000803e3d6000fd5b50505050838a6001600160a01b03166338fff2d06040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ffe573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120229190613242565b1415806120a25750306001600160a01b03168a6001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612072573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612096919061320f565b6001600160a01b031614155b156120c05760405163636e39bb60e01b815260040160405180910390fd5b845160005b818110156121315760008782815181106120e1576120e161322c565b6020026020010151905060006001600160a01b0316816001600160a01b03160361211e5760405163538ba4f960e01b815260040160405180910390fd5b6121288682611816565b506001016120c5565b5060ca5415612234576001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1480156121735750348860ca546121709190613436565b14155b806121a857506001600160a01b03891673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee148015906121a857503460ca5414155b156121c6576040516303e09bb960e31b815260040160405180910390fd5b60cc5460ca546121f79173eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee916001600160a01b0390911690611772565b847f02e340b51c6ae66fd22509c9b016f224c47a54063d4259fe3d860958e9eaac7260ca5460405161222b91815260200190565b60405180910390a25b87156122455761224588868d6119d8565b8b857f69bcb5a6cf6a3c95185cbb451e77787240c866dd2e8332597e3013ff18a1aba18d8c8c8c60405161227c9493929190613484565b60405180910390a350505050979650505050505050565b6001600160a01b0381166122ba5760405163538ba4f960e01b815260040160405180910390fd5b60cc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527f7dae230f18360d76a040c81f050aa14eb9d6dc7901b20fc5d855e2a20fe814d190602001610943565b60ca8190556040518181527f803bee7e92bbc6ae7a1551f9f4ed3e31a8ea8df32e93332f41b0028f1091f9c390602001610943565b6001600160a01b0316638b78c6d8198190558060007f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b670de0b6b3a76400008111156123c8576040517f2fb15b8700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60c98190556040518181527f9e826789de2de708fd9f09edea1182545e543893caa8ff71f8eb3aab50a4b06590602001610943565b600082815260cf60209081526040808320600601548352606582528083206001600160a01b038516845290915281205460ff16610dd6565b60008060008084865af1610e465763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716612496576390b8ec186000526004601cfd5b6000603452505050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff16610e46576124d3816126de565b6124de8360206126f0565b6040516020016124ef9291906134c0565b60408051601f198184030181529082905262461bcd60e51b8252610ee991600401613541565b604081015160009073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161258f578034101561257c576040517f74c5672b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61258a836020015182612435565b6125a3565b6125a38484600001518560200151846128d1565b5060019392505050565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038416016125e557506001600160a01b038116316108e8565b6125ef838361292e565b90506108e8565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166108e85760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401610ee9565b600082815260656020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b60606108e86001600160a01b03831660145b606060006126ff8360026133ea565b61270a906002613436565b67ffffffffffffffff81111561272257612722612b2e565b6040519080825280601f01601f19166020018201604052801561274c576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106127835761278361322c565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106127ce576127ce61322c565b60200101906001600160f81b031916908160001a90535060006127f28460026133ea565b6127fd906001613436565b90505b6001811115612882577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061283e5761283e61322c565b1a60f81b8282815181106128545761285461322c565b60200101906001600160f81b031916908160001a90535060049490941c9361287b81613554565b9050612800565b508315610dd65760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610ee9565b60405181606052826040528360601b602c526f23b872dd000000000000000000000000600c52602060006064601c6000895af13d15600160005114171661292057637939f4246000526004601cfd5b600060605260405250505050565b6000816014526f70a0823100000000000000000000000060005260208060246010865afa601f3d111660205102905092915050565b6040518060c001604052806000801916815260200160006001600160a01b0316815260200160006001600160a01b031681526020016129b5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b6000602082840312156129db57600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610dd657600080fd5b6001600160a01b0381168114610caf57600080fd5b600060208284031215612a3257600080fd5b8135610dd681612a0b565b600060208284031215612a4f57600080fd5b5035919050565b60005b83811015612a71578181015183820152602001612a59565b50506000910152565b60008151808452612a92816020860160208601612a56565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152611d506040850182612a7a565b6020815281516020820152600060208301516001600160a01b0380821660408501528060408601511660608501525050606083015160c06080840152612b0e60e0840182612aa6565b9050608084015160a084015260a084015160c08401528091505092915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612b6d57612b6d612b2e565b604052919050565b600067ffffffffffffffff831115612b8f57612b8f612b2e565b612ba2601f8401601f1916602001612b44565b9050828152838383011115612bb657600080fd5b828260208301376000602084830101529392505050565b600082601f830112612bde57600080fd5b610dd683833560208501612b75565b60008060408385031215612c0057600080fd5b82359150602083013567ffffffffffffffff811115612c1e57600080fd5b612c2a85828601612bcd565b9150509250929050565b600067ffffffffffffffff821115612c4e57612c4e612b2e565b5060051b60200190565b600082601f830112612c6957600080fd5b81356020612c7e612c7983612c34565b612b44565b82815260059290921b84018101918181019086841115612c9d57600080fd5b8286015b84811015612cdd57803567ffffffffffffffff811115612cc15760008081fd5b612ccf8986838b0101612bcd565b845250918301918301612ca1565b509695505050505050565b60008060408385031215612cfb57600080fd5b823567ffffffffffffffff80821115612d1357600080fd5b818501915085601f830112612d2757600080fd5b81356020612d37612c7983612c34565b82815260059290921b84018101918181019089841115612d5657600080fd5b948201945b83861015612d7457853582529482019490820190612d5b565b96505086013592505080821115612d8a57600080fd5b50612c2a85828601612c58565b600081518084526020808501945080840160005b83811015612dd05781516001600160a01b031687529582019590820190600101612dab565b509495945050505050565b602081526000610dd66020830184612d97565b60008060408385031215612e0157600080fd5b8235612e0c81612a0b565b91506020830135612e1c81612a0b565b809150509250929050565b60008060408385031215612e3a57600080fd5b823591506020830135612e1c81612a0b565b600082601f830112612e5d57600080fd5b81356020612e6d612c7983612c34565b82815260059290921b84018101918181019086841115612e8c57600080fd5b8286015b84811015612cdd578035612ea381612a0b565b8352918301918301612e90565b600080600060608486031215612ec557600080fd5b83359250602084013567ffffffffffffffff80821115612ee457600080fd5b612ef087838801612e4c565b93506040860135915080821115612f0657600080fd5b50612f1386828701612bcd565b9150509250925092565b60008060408385031215612f3057600080fd5b50508035926020909101359150565b600060408284031215612f5157600080fd5b6040516040810167ffffffffffffffff8282108183111715612f7557612f75612b2e565b81604052829350843583526020850135915080821115612f9457600080fd5b508301601f81018513612fa657600080fd5b612fb585823560208401612b75565b6020830152505092915050565b60008060408385031215612fd557600080fd5b82359150602083013567ffffffffffffffff811115612ff357600080fd5b612c2a85828601612f3f565b600080600080600080600060e0888a03121561301a57600080fd5b87359650602088013561302c81612a0b565b9550604088013567ffffffffffffffff8082111561304957600080fd5b6130558b838c01612bcd565b965060608a0135915061306782612a0b565b9094506080890135935060a0890135908082111561308457600080fd5b6130908b838c01612f3f565b935060c08a01359150808211156130a657600080fd5b506130b38a828b01612e4c565b91505092959891949750929550565b600080600080600060a086880312156130da57600080fd5b85356130e581612a0b565b945060208601356130f581612a0b565b9350604086013561310581612a0b565b94979396509394606081013594506080013592915050565b60008060006040848603121561313257600080fd5b833567ffffffffffffffff8082111561314a57600080fd5b818601915086601f83011261315e57600080fd5b81358181111561316d57600080fd5b8760208260051b850101111561318257600080fd5b60209283019550935090850135908082111561319d57600080fd5b50612f1386828701612c58565b600181811c908216806131be57607f821691505b6020821081036131de57634e487b7160e01b600052602260045260246000fd5b50919050565b6040815260006131f76040830185612a7a565b90506001600160a01b03831660208301529392505050565b60006020828403121561322157600080fd5b8151610dd681612a0b565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561325457600080fd5b5051919050565b60608152600061326e6060830186612d97565b82810360208401526132808186612a7a565b9150506001600160a01b0383166040830152949350505050565b601f821115610d7557600081815260208120601f850160051c810160208610156132c15750805b601f850160051c820191505b818110156132e0578281556001016132cd565b505050505050565b815167ffffffffffffffff81111561330257613302612b2e565b6133168161331084546131aa565b8461329a565b602080601f83116001811461334b57600084156133335750858301515b600019600386901b1c1916600185901b1785556132e0565b600085815260208120601f198616915b8281101561337a5788860151825594840194600190910190840161335b565b50858210156133985787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b602081526000610dd66020830184612aa6565b634e487b7160e01b600052601160045260246000fd5b6000600182016133e3576133e36133bb565b5060010190565b80820281158282048414176108e8576108e86133bb565b60008261341e57634e487b7160e01b600052601260045260246000fd5b500490565b818103818111156108e8576108e86133bb565b808201808211156108e8576108e86133bb565b60006020828403121561345b57600080fd5b81518015158114610dd657600080fd5b828152604060208201526000611d506040830184612a7a565b60006001600160a01b038087168352808616602084015250836040830152608060608301526134b66080830184612aa6565b9695505050505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516134f8816017850160208801612a56565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351613535816028840160208801612a56565b01602801949350505050565b602081526000610dd66020830184612a7a565b600081613563576135636133bb565b50600019019056fea264697066735822122003a48f7a46c6d9883a02069310109ac1406e8f153439b0f6e65fc391be587c1f64736f6c63430008130033","sourceMap":"5076:29047:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3050:213:44;;;;;;;;;;-1:-1:-1;3050:213:44;;;;;:::i;:::-;;:::i;:::-;;;516:14:145;;509:22;491:41;;479:2;464:18;3050:213:44;;;;;;;;14900:288:0;;;;;;;;;;-1:-1:-1;14900:288:0;;;;;:::i;:::-;;:::i;:::-;;34013:108;;;;;;;;;;-1:-1:-1;34013:108:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;17298:276::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4391:55:145;;;4373:74;;4361:2;4346:18;17298:276:0;4227:226:145;33140:85:0;;;;;;;;;;-1:-1:-1;33211:7:0;;33140:85;;;4604:25:145;;;4592:2;4577:18;33140:85:0;4458:177:145;18212:747:0;;;;;;;;;;-1:-1:-1;18212:747:0;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;13330:105::-;;;;;;;;;;-1:-1:-1;13330:105:0;;;;;:::i;:::-;;:::i;4855:129:44:-;;;;;;;;;;-1:-1:-1;4855:129:44;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;16308:430:0;;;;;;;;;;-1:-1:-1;16308:430:0;;;;;:::i;:::-;;:::i;7331:617:12:-;;;:::i;32476:144:0:-;;;;;;;;;;-1:-1:-1;32476:144:0;;;;;:::i;:::-;;:::i;15387:358::-;;;;;;;;;;-1:-1:-1;15387:358:0;;;;;:::i;:::-;;:::i;19921:127::-;;;;;;:::i;:::-;;:::i;5280:145:44:-;;;;;;;;;;-1:-1:-1;5280:145:44;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;;;;;-1:-1:-1;6389:214:44;;;;;:::i;:::-;;:::i;21468:196:0:-;;;;;;;;;;-1:-1:-1;21468:196:0;;;;;:::i;:::-;;:::i;33313:95::-;;;;;;;;;;-1:-1:-1;33393:8:0;;-1:-1:-1;;;;;33393:8:0;33313:95;;14481:229;;;;;;;;;;-1:-1:-1;14481:229:0;;;;;:::i;:::-;;:::i;32977:91::-;;;;;;;;;;-1:-1:-1;33051:10:0;;32977:91;;8030:456:12;;;:::i;33488:89:0:-;;;;;;;;;;-1:-1:-1;33562:8:0;;-1:-1:-1;;;;;33562:8:0;33488:89;;19156:439;;;;;;:::i;:::-;;:::i;12894:247::-;;;;;;;;;;-1:-1:-1;12894:247:0;;;;;:::i;:::-;;:::i;7072:100:12:-;;;:::i;11971:701:0:-;;;;;;:::i;:::-;;:::i;13624:113::-;;;;;;;;;;-1:-1:-1;13624:113:0;;;;;:::i;:::-;;:::i;15950:160::-;;;;;;;;;;-1:-1:-1;15950:160:0;;;;;:::i;:::-;;:::i;9718:191:12:-;;;;;;;;;;-1:-1:-1;;;9866:27:12;9718:191;;14188:101:0;;;;;;;;;;-1:-1:-1;14188:101:0;;;;;:::i;:::-;;:::i;3350:145:44:-;;;;;;;;;;-1:-1:-1;3350:145:44;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;;;;3350:145;4412:75:9;;;;;;;;;;;;4445:42;4412:75;;2320:49:44;;;;;;;;;;-1:-1:-1;2320:49:44;2365:4;2320:49;;7626:593:0;;;;;;;;;;-1:-1:-1;7626:593:0;;;;;:::i;:::-;;:::i;33760:132::-;;;;;;;;;;-1:-1:-1;33760:132:0;;;;;:::i;:::-;;:::i;32112:140::-;;;;;;;;;;-1:-1:-1;32112:140:0;;;;;:::i;:::-;;:::i;20511:559::-;;;;;;;;;;-1:-1:-1;20511:559:0;;;;;:::i;:::-;;:::i;32753:126::-;;;;;;;;;;-1:-1:-1;32753:126:0;;;;;:::i;:::-;32814:7;32848:14;;;:5;:14;;;;;:23;;;-1:-1:-1;;;;;32848:23:0;;32753:126;5705:147:44;;;;;;;;;;-1:-1:-1;5705:147:44;;;;;:::i;:::-;;:::i;10281:884:0:-;;;;;;:::i;:::-;;:::i;8673:708:12:-;;;;;;:::i;:::-;;:::i;6658:349::-;;;;;;:::i;:::-;;:::i;31788:103:0:-;;;;;;;;;;-1:-1:-1;31880:4:0;31788:103;;13911:113;;;;;;;;;;-1:-1:-1;13911:113:0;;;;;:::i;:::-;;:::i;10012:435:12:-;;;;;;;;;;-1:-1:-1;10012:435:12;;;;;:::i;:::-;10282:19;10276:4;10269:33;;;10131:14;10315:26;;;;10425:4;10409:21;;10403:28;;10012:435;3050:213:44;3135:4;3158:58;;;3173:43;3158:58;;:98;;-1:-1:-1;1204:36:54;1189:51;;;;3220:36:44;3151:105;3050:213;-1:-1:-1;;3050:213:44:o;14900:288:0:-;10836:13:12;:11;:13::i;:::-;-1:-1:-1;;;;;15059:30:0;::::1;15092:5;15059:30:::0;;;:19:::1;:30;::::0;;;;;;;;:38;;-1:-1:-1;;15059:38:0::1;::::0;;15155:26;;4373:74:145;;;15155:26:0::1;::::0;4346:18:145;15155:26:0::1;;;;;;;;14900:288:::0;:::o;34013:108::-;34070:11;;:::i;:::-;34100:14;;;;:5;:14;;;;;;;;;34093:21;;;;;;;;;;;;;;;-1:-1:-1;;;;;34093:21:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34100:14;;34093:21;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;34013:108;;;:::o;17298:276::-;17401:7;2526:21:49;:19;:21::i;:::-;17489:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:78;;;;;-1:-1:-1;;;;;17489:23:0;;::::1;::::0;:41:::1;::::0;17538:9:::1;::::0;17489:78:::1;::::0;17549:5;;17556:10:::1;::::0;17489:78:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17482:85;;2568:20:49::0;1808:1;3074:7;:22;2894:209;18212:747:0;18348:29;2526:21:49;:19;:21::i;:::-;18416:15:0;;;18456:27:::1;::::0;::::1;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;18456:27:0::1;;18441:42;;18514:5;:12;18498;:28;18494:51;;18535:10;;-1:-1:-1::0;;;18535:10:0::1;;;;;;;;;;;18494:51;18663:9;18658:204;18678:12;18674:1;:16;18658:204;;;18725:5;:18;18731:8;18740:1;18731:11;;;;;;;;:::i;:::-;;;;;;;18725:18;;;;;;;;;;;:27;;;;;;;;;;-1:-1:-1::0;;;;;18725:27:0::1;-1:-1:-1::0;;;;;18725:45:0::1;;18771:5;18777:1;18771:8;;;;;;;;:::i;:::-;;;;;;;18781:10;18725:67;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18707:12;18720:1;18707:15;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;18707:85:0;;::::1;:15;::::0;;::::1;::::0;;;;;;;:85;18834:3:::1;;18658:204;;;;18933:19;2568:20:49::0;1808:1;3074:7;:22;2894:209;13330:105:0;10836:13:12;:11;:13::i;:::-;13402:26:0::1;13418:9;13402:15;:26::i;:::-;13330:105:::0;:::o;16308:430::-;10836:13:12;:11;:13::i;:::-;16506:14:0::1;-1:-1:-1::0;;;;;16523:16:0;::::1;4445:42:9;16523:16:0;:93;;16566:50;::::0;;;;16610:4:::1;16566:50;::::0;::::1;4373:74:145::0;-1:-1:-1;;;;;16566:35:0;::::1;::::0;::::1;::::0;4346:18:145;;16566:50:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16523:93;;;16542:21;16523:93;16506:110;;16688:43;16704:6;16712:10;16724:6;16688:15;:43::i;:::-;16385:353;16308:430:::0;;:::o;7331:617:12:-;7424:15;6282:9;7442:46;;:15;:46;7424:64;;7656:19;7650:4;7643:33;7706:8;7700:4;7693:22;7762:7;7755:4;7749;7739:21;7732:38;7909:8;7862:45;7859:1;7856;7851:67;7558:374;7331:617::o;32476:144:0:-;32557:4;32580:33;32595:7;32604:8;32580:14;:33::i;:::-;32573:40;32476:144;-1:-1:-1;;;32476:144:0:o;15387:358::-;15469:7;8837:28;8857:7;8837:19;:28::i;:::-;-1:-1:-1;;;;;15568:22:0;::::1;15564:49;;15599:14;;-1:-1:-1::0;;;15599:14:0::1;;;;;;;;;;;15564:49;15701:14;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;15690:48:::1;::::0;15729:8;15690:10:::1;:48::i;19921:127::-:0;2526:21:49;:19;:21::i;:::-;20016:25:0::1;20026:7;20035:5;20016:9;:25::i;:::-;2568:20:49::0;1808:1;3074:7;:22;2894:209;2568:20;19921:127:0;;:::o;5280:145:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;6389:214::-:0;-1:-1:-1;;;;;6484:23:44;;965:10:52;6484:23:44;6476:83;;;;-1:-1:-1;;;6476:83:44;;16949:2:145;6476:83:44;;;16931:21:145;16988:2;16968:18;;;16961:30;17027:34;17007:18;;;17000:62;17098:17;17078:18;;;17071:45;17133:19;;6476:83:44;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;21468:196:0:-;2526:21:49;:19;:21::i;:::-;21589:14:0::1;::::0;;;:5:::1;:14;::::0;;;;;;:23:::1;;::::0;:68;;;;;-1:-1:-1;;;;;21589:23:0;;::::1;::::0;:34:::1;::::0;:68:::1;::::0;21624:13;;21639:5;;21646:10:::1;::::0;21589:68:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2568:20:49::0;1808:1;3074:7;:22;2894:209;14481:229:0;10836:13:12;:11;:13::i;:::-;-1:-1:-1;;;;;14567:23:0;::::1;14563:50;;14599:14;;-1:-1:-1::0;;;14599:14:0::1;;;;;;;;;;;14563:50;-1:-1:-1::0;;;;;14624:30:0;::::1;;::::0;;;:19:::1;:30;::::0;;;;;;;;:37;;-1:-1:-1;;14624:37:0::1;14657:4;14624:37;::::0;;14676:27;;4373:74:145;;;14676:27:0::1;::::0;4346:18:145;14676:27:0::1;4227:226:145::0;8030:456:12;8232:19;8226:4;8219:33;8278:8;8272:4;8265:22;8330:1;8323:4;8317;8307:21;8300:32;8461:8;8415:44;8412:1;8409;8404:66;8030:456::o;19156:439:0:-;2526:21:49;:19;:21::i;:::-;19318:7:0::1;19329:1;19318:12:::0;19314:43:::1;;19339:18;;-1:-1:-1::0;;;19339:18:0::1;;;;;;;;;;;19314:43;19368:16;19387:14:::0;;;:5:::1;:14;::::0;;;;;;;19368:33;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;::::1;::::0;-1:-1:-1;;;;;19368:33:0;;::::1;::::0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;;;;;;;::::1;::::0;;;::::1;::::0;::::1;::::0;;;;;;;;;;;19387:14;;19368:33;;;;;;;;::::1;::::0;;::::1;::::0;::::1;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1::0;;;19368:33:0;;;;-1:-1:-1;;;19368:33:0;;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;;;;;;19415:10;::::1;::::0;19368:33;;-1:-1:-1;;;;;;19415:20:0::1;4445:42:9;19415:20:0;:44:::0;::::1;;;;19450:9;19439:7;:20;;19415:44;19411:75;;;19468:18;;-1:-1:-1::0;;;19468:18:0::1;;;;;;;;;;;19411:75;19546:42;19556:7;19565;19574:4;:13;;;19546:9;:42::i;:::-;19238:357;2568:20:49::0;1808:1;3074:7;:22;2894:209;12894:247:0;12991:7;8625:30;8647:7;8625:21;:30::i;:::-;13010:17:::1;13030:14:::0;;;:5:::1;:14;::::0;;;;;;;13054:25;;:13:::1;::::0;::::1;:25:::0;;;;;::::1;::::0;13030:14;;13070:9;;13054:25;;;;::::1;::::0;;::::1;:::i;:::-;;;;;13115:7;13095:39;13124:9;13095:39;;;;;;:::i;:::-;;;;;;;;13000:141;12894:247:::0;;;:::o;7072:100:12:-;10836:13;:11;:13::i;:::-;7144:21:::1;7162:1;7144:9;:21::i;:::-;7072:100::o:0;11971:701:0:-;12251:14;2526:21:49;:19;:21::i;:::-;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;12277:93:::1;;12336:23;;;;;;;;;;;;;;12277:93;12522:10;12514:19;::::0;;;:7:::1;:19;::::0;;;;:21;;12426:239:::1;::::0;12451:10;;12485:51:::1;::::0;12503:9;;12514:21;;:19;:21:::1;::::0;::::1;:::i;:::-;;;;;12485:17;:51::i;:::-;12551:17;12582:6;12602:7;12623:9;12646;12426:11;:239::i;:::-;12419:246;;2568:20:49::0;1808:1;3074:7;:22;2894:209;2568:20;11971:701:0;;;;;;;;;:::o;13624:113::-;10836:13:12;:11;:13::i;:::-;13704:26:0::1;13720:9;13704:15;:26::i;15950:160::-:0;16035:7;8837:28;8857:7;8837:19;:28::i;:::-;16066:14:::1;::::0;;;:5:::1;:14;::::0;;;;:26:::1;;::::0;16054:49:::1;::::0;16094:8;16054:11:::1;:49::i;14188:101::-:0;10836:13:12;:11;:13::i;:::-;14258:24:0::1;14273:8;14258:14;:24::i;7626:593::-:0;4882:13:48;;7816:1:0;;4882:13:48;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:48;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:48;;20711:2:145;4873:99:48;;;20693:21:145;20750:2;20730:18;;;20723:30;20789:34;20769:18;;;20762:62;20860:16;20840:18;;;20833:44;20894:19;;4873:99:48;20509:410:145;4873:99:48;4982:12;:22;;-1:-1:-1;;5014:20:48;4982:22;;;5014:20;4982:22;5014:20;;;7890:24:0::1;7907:6:::0;7890:16:::1;:24::i;:::-;7968:26;7984:9;7968:15;:26::i;:::-;8048;8064:9;8048:15;:26::i;:::-;8119:30;8137:11;8119:17;:30::i;:::-;8188:24;8203:8;8188:14;:24::i;:::-;5071:5:48::0;5055:21;;-1:-1:-1;;5055:21:48;;;5091:20;;21096:4:145;21084:17;;21066:36;;5091:20:48;;21054:2:145;21039:18;5091:20:48;;;;;;;7626:593:0;;;;;;:::o;33760:132::-;-1:-1:-1;;;;;28993:30:0;;33831:4;28993:30;;;:19;:30;;;;;;;;33854:31;28898:132;32112:140;32191:4;32214:31;32227:7;32236:8;32214:12;:31::i;20511:559::-;2526:21:49;:19;:21::i;:::-;20784:13:0;;20637:8;;20772:25;::::1;20768:48;;20806:10;;-1:-1:-1::0;;;20806:10:0::1;;;;;;;;;;;20768:48;20921:9;20916:148;20936:8;20932:1;:12;20916:148;;;20961:33;20971:8;;20980:1;20971:11;;;;;;;:::i;:::-;;;;;;;20984:6;20991:1;20984:9;;;;;;;;:::i;:::-;;;;;;;20961;:33::i;:::-;21036:3;;20916:148;;;;20608:462;2568:20:49::0;1808:1;3074:7;:22;2894:209;5705:147:44;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;10281:884:0:-:0;10566:14;-1:-1:-1;;;;;10687:23:0;;10683:50;;10719:14;;-1:-1:-1;;;10719:14:0;;;;;;;;;;;10683:50;-1:-1:-1;;;;;28993:30:0;;28970:4;28993:30;;;:19;:30;;;;;;;;10894:66;;;10938:22;;;;;;;;;;;;;;10894:66;11055:103;11067:10;11089:9;11101:17;11120:6;11128:7;11137:9;11148;11055:11;:103::i;:::-;11048:110;10281:884;-1:-1:-1;;;;;;;;10281:884:0:o;8673:708:12:-;10836:13;:11;:13::i;:::-;8907:19:::1;8901:4;8894:33;8953:12;8947:4;8940:26;9015:4;9009;8999:21;9121:12;9115:19;9102:11;9099:36;9096:157;;;9167:10;9161:4;9154:24;9234:4;9228;9221:18;9096:157;9330:1;9309:23:::0;;9351::::1;9361:12:::0;9351:9:::1;:23::i;6658:349::-:0;10836:13;:11;:13::i;:::-;6830:8:::1;6826:2;6822:17;6812:150;;6872:10;6866:4;6859:24;6943:4;6937;6930:18;6812:150;6981:19;6991:8;6981:9;:19::i;13911:113:0:-:0;10836:13:12;:11;:13::i;:::-;13987:30:0::1;14005:11;13987:17;:30::i;5593:364:12:-:0;-1:-1:-1;;5799:27:12;5789:8;5786:41;5776:165;;5860:10;5854:4;5847:24;5922:4;5916;5909:18;2601:287:49;1851:1;2733:7;;:19;2725:63;;;;-1:-1:-1;;;2725:63:49;;21315:2:145;2725:63:49;;;21297:21:145;21354:2;21334:18;;;21327:30;21393:33;21373:18;;;21366:61;21444:18;;2725:63:49;21113:355:145;2725:63:49;1851:1;2863:7;:18;2601:287::o;30226:203:0:-;-1:-1:-1;;;;;30293:23:0;;30289:50;;30325:14;;-1:-1:-1;;;30325:14:0;;;;;;;;;;;30289:50;30350:8;:31;;-1:-1:-1;;30350:31:0;-1:-1:-1;;;;;30350:31:0;;;;;;;;30396:26;;4373:74:145;;;30396:26:0;;4361:2:145;4346:18;30396:26:0;4227:226:145;6721:269:10;-1:-1:-1;;;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;29821:192:0:-;29903:4;29934:14;;;:5;:14;;;;;;;;:26;;;3459:12:44;;:6;:12;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;29926:80:0;;;;29975:31;29988:7;29997:8;29975:12;:31::i;22160:138::-;22235:33;22248:7;22257:10;22235:12;:33::i;:::-;22230:61;;22277:14;;-1:-1:-1;;;22277:14:0;;;;;;;;;;;7938:233:44;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:44;;;;;;;;;:36;;-1:-1:-1;;8059:36:44;8091:4;8059:36;;;8141:12;965:10:52;;886:96;8141:12:44;-1:-1:-1;;;;;8114:40:44;8132:7;-1:-1:-1;;;;;8114:40:44;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;26159:151:0:-;26234:14;;;;:5;:14;;;;;;;:23;;;:69;;;;;-1:-1:-1;;;;;26234:23:0;;;;:32;;26274:9;;26234:69;;26285:5;;26292:10;;26234:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26159:151;;:::o;3789:103:44:-;3855:30;3866:4;965:10:52;3855::44;:30::i;8342:234::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:44;;;;;;;;;;:37;;-1:-1:-1;;8463:37:44;;;8519:40;965:10:52;;8463:12:44;;8519:40;;8495:5;8519:40;8342:234;;:::o;26634:1879:0:-;26727:17;26817:14;;;:5;:14;;;;;26858:10;;;;26883;;26779:7;;26817:14;-1:-1:-1;;;;;26858:10:0;;26883:14;26879:808;;31880:4;26936:10;;26926:20;;:7;:20;:::i;:::-;26925:44;;;;:::i;:::-;26913:56;-1:-1:-1;26983:27:0;26913:56;26983:27;;:::i;:::-;;-1:-1:-1;27059:7:0;27029:26;26983:27;27029:9;:26;:::i;:::-;:37;27025:59;;27075:9;;;;;;;;;;;;;;27025:59;-1:-1:-1;;;;;;;27103:16:0;;;27099:578;;27167:65;;;;;;;;27187:10;27167:65;;27203:8;;-1:-1:-1;;;;;27203:8:0;27167:65;;;;;;;;;;27139:94;;27159:6;;27139:19;:94::i;:::-;;27099:578;;;27319:8;;27272:24;;27299:29;;27311:6;;-1:-1:-1;;;;;27319:8:0;27299:11;:29::i;:::-;27374:65;;;;;;;;27394:10;27374:65;;27410:8;;-1:-1:-1;;;;;27410:8:0;27374:65;;;;;;;;;;27272:56;;-1:-1:-1;27346:94:0;;27366:6;;27346:19;:94::i;:::-;-1:-1:-1;27504:8:0;;27458:23;;27484:29;;27496:6;;-1:-1:-1;;;;;27504:8:0;27484:11;:29::i;:::-;27458:55;-1:-1:-1;27628:34:0;27646:16;27458:55;27628:34;:::i;:::-;27616:46;;27254:423;;27099:578;-1:-1:-1;;;;;;;27701:16:0;;;27697:693;;27733:139;27770:6;27778:80;;;;;;;;27798:10;-1:-1:-1;;;;;27778:80:0;;;;;27822:9;-1:-1:-1;;;;;27778:80:0;;;;;27842:14;27778:80;;;27733:19;:139::i;:::-;;27697:693;;;27903:32;27938:39;27950:6;27966:9;27938:11;:39::i;:::-;27903:74;;27991:139;28028:6;28036:80;;;;;;;;28056:10;-1:-1:-1;;;;;28036:80:0;;;;;28080:9;-1:-1:-1;;;;;28036:80:0;;;;;28100:14;28036:80;;;27991:19;:139::i;:::-;;28144:31;28178:39;28190:6;28206:9;28178:11;:39::i;:::-;28144:73;-1:-1:-1;28329:50:0;28355:24;28144:73;28329:50;:::i;:::-;28312:67;;27889:501;;27697:693;28400:44;;;;;;;;4604:25:145;;;-1:-1:-1;;;;;28400:28:0;;;;;4577:18:145;;28400:44:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;28460:46:0;;;22362:25:145;;;22418:2;22403:18;;22396:34;;;28471:7:0;;-1:-1:-1;28460:46:0;;-1:-1:-1;22335:18:145;28460:46:0;;;;;;;26717:1796;;;;26634:1879;;;:::o;21910:142::-;21987:35;22002:7;22011:10;21987:14;:35::i;5040:495:12:-;-1:-1:-1;;5416:16:12;;-1:-1:-1;;;;;5272:26:12;;;;;;5376:38;5373:1;;5365:78;5492:27;5040:495::o;4749:279:6:-;4867:36;;-1:-1:-1;;4884:10:6;22618:2:145;22614:15;22610:53;4867:36:6;;;22598:66:145;22680:12;;;22673:28;;;4823:7:6;;;;22717:12:145;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;23131:2681:0:-;23424:8;;:57;;;;;;;;22914:25:145;;;23470:10:0;22955:18:145;;;22948:83;23393:14:0;;-1:-1:-1;;;;;23424:8:0;;:33;;22887:18:145;;23424:57:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;23419:85;;23490:14;;-1:-1:-1;;;23490:14:0;;;;;;;;;;;23419:85;23526:10;;23524:12;;;;;:::i;:::-;;;;;-1:-1:-1;23764:33:0;;23524:12;;-1:-1:-1;23524:12:0;;23675:25;;23764:33;;23524:12;;23764:33;;23554:19:145;;;23603:7;23598:2;23589:12;;23582:29;23636:2;23627:12;;23324:321;23764:33:0;;;;-1:-1:-1;;23764:33:0;;;;;;;;;23754:44;;23764:33;23754:44;;;;23864:228;;;;;;;;-1:-1:-1;;;;;23864:228:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23845:16;24159:13;;;:5;:13;;;;;;:20;;;;;;;;;;;;;;-1:-1:-1;;24159:20:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23754:44;;-1:-1:-1;23764:33:0;;24159:13;:20;;;;;;;;;;:::i;:::-;-1:-1:-1;;;24159:20:0;;;;;;;;;;;;;;;;;;24239:39;24250:15;24267:10;24239;:39::i;:::-;24337:49;24351:17;24370:15;24337:13;:49::i;:::-;24541:47;;;;;-1:-1:-1;;;;;24541:20:0;;;;;:47;;24562:6;;24570:17;;24541:47;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24628:6;24603:9;-1:-1:-1;;;;;24603:19:0;;:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:31;;:80;;;;24678:4;-1:-1:-1;;;;;24638:45:0;24646:9;-1:-1:-1;;;;;24646:17:0;;:19;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;24638:45:0;;;24603:80;24599:103;;;24692:10;;-1:-1:-1;;;24692:10:0;;;;;;;;;;;24599:103;24775:16;;24750:22;24801:266;24821:14;24817:1;:18;24801:266;;;24852:15;24870:9;24880:1;24870:12;;;;;;;;:::i;:::-;;;;;;;24852:30;;24919:1;-1:-1:-1;;;;;24900:21:0;:7;-1:-1:-1;;;;;24900:21:0;;24896:48;;24930:14;;-1:-1:-1;;;24930:14:0;;;;;;;;;;;24896:48;24959:38;24970:17;24989:7;24959:10;:38::i;:::-;-1:-1:-1;25039:3:0;;24801:266;;;-1:-1:-1;25081:7:0;;:11;25077:554;;-1:-1:-1;;;;;25359:16:0;;4445:42:9;25359:16:0;:52;;;;;25401:9;25390:7;25380;;:17;;;;:::i;:::-;:30;;25359:52;25358:100;;;-1:-1:-1;;;;;;25417:16:0;;4445:42:9;25417:16:0;;;;:40;;;25448:9;25437:7;;:20;;25417:40;25354:164;;;25485:18;;-1:-1:-1;;;25485:18:0;;;;;;;;;;;25354:164;25555:8;;25565:7;;25531:42;;4445::9;;-1:-1:-1;;;;;25555:8:0;;;;25531:15;:42::i;:::-;25604:6;25592:28;25612:7;;25592:28;;;;4604:25:145;;4592:2;4577:18;;4458:177;25592:28:0;;;;;;;;25077:554;25645:11;;25641:79;;25672:37;25682:7;25691:6;25699:9;25672;:37::i;:::-;25755:10;25747:6;25735:70;25767:9;25778:6;25786:7;25795:9;25735:70;;;;;;;;;:::i;:::-;;;;;;;;23409:2403;;;;23131:2681;;;;;;;;;:::o;30642:199::-;-1:-1:-1;;;;;30717:23:0;;30713:50;;30749:14;;-1:-1:-1;;;30749:14:0;;;;;;;;;;;30713:50;30774:8;:20;;-1:-1:-1;;30774:20:0;-1:-1:-1;;;;;30774:20:0;;;;;;;;30809:25;;4373:74:145;;;30809:25:0;;4361:2:145;4346:18;30809:25:0;4227:226:145;31426:125:0;31487:7;:18;;;31521:23;;4604:25:145;;;31521:23:0;;4592:2:145;4577:18;31521:23:0;4458:177:145;4520:448:12;-1:-1:-1;;;;;4709:26:12;-1:-1:-1;;4784:38:12;;;4709:26;4940:1;4900:38;4940:1;;4889:63;4520:448;:::o;31041:198:0:-;31126:4;31112:11;:18;31108:44;;;31139:13;;;;;;;;;;;;;;31108:44;31163:10;:24;;;31203:29;;4604:25:145;;;31203:29:0;;4592:2:145;4577:18;31203:29:0;4458:177:145;29346:153:0;29426:4;29457:14;;;:5;:14;;;;;;;;:24;;;3459:12:44;;:6;:12;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;29449:43:0;3350:145:44;2455:490:14;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;4173:501:44:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:44;;;;;;;;;;-1:-1:-1;;;4299:358:44;;;;;;;:::i;6019:500:10:-;6150:20;;;;6117:4;;-1:-1:-1;;;;;;;6184:16:10;;;6180:312;;6260:6;6248:9;:18;6244:48;;;6275:17;;;;;;;;;;;;;;6244:48;6307:57;6339:13;:16;;;6357:6;6307:31;:57::i;:::-;6180:312;;;6395:86;6428:6;6436:13;:18;;;6456:13;:16;;;6474:6;6395:32;:86::i;:::-;-1:-1:-1;6508:4:10;;6019:500;-1:-1:-1;;;6019:500:10:o;7224:263::-;7302:7;-1:-1:-1;;;;;;;7325:16:10;;;7321:160;;-1:-1:-1;;;;;;7364:25:10;;;7357:32;;7321:160;7427:43;7453:6;7461:8;7427:25;:43::i;:::-;7420:50;;;;2118:794:47;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:47;;2847:58;;;;-1:-1:-1;;;2847:58:47;;26275:2:145;2847:58:47;;;26257:21:145;26314:2;26294:18;;;26287:30;26353:25;26333:18;;;26326:53;26396:18;;2847:58:47;26073:347:145;7523:247:44;7606:25;4955:12;;;:6;:12;;;;;;:22;;;;7662:34;;;;7711:52;;4955:22;;7662:34;;4955:22;;:12;;7711:52;;7606:25;7711:52;7596:174;7523:247;;:::o;2473:149:53:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:53;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:53;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:53;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:53;;;;;;;;-1:-1:-1;2096:9:53;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:53;;;;;;;;-1:-1:-1;2207:1:53;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:53;;2228:55;;;;-1:-1:-1;;;2228:55:53;;26768:2:145;2228:55:53;;;26750:21:145;;;26787:18;;;26780:30;26846:34;26826:18;;;26819:62;26898:18;;2228:55:53;26566:356:145;7671:1379:14;7854:4;7848:11;7920:6;7914:4;7907:20;7985:2;7979:4;7972:16;8050:4;8046:2;8042:13;8036:4;8029:27;8199:34;8193:4;8186:48;8657:4;8651;8645;8639;8636:1;8629:5;8622;8617:45;8577:16;8570:24;8566:1;8559:4;8553:11;8550:18;8547:48;8275:405;8248:659;;8800:10;8794:4;8787:24;8888:4;8882;8875:18;8248:659;8934:1;8928:4;8921:15;8990:4;8983:15;-1:-1:-1;;;;7671:1379:14:o;18299:722::-;18373:14;18478:7;18472:4;18465:21;18613:34;18607:4;18600:48;18960:4;18954;18948;18942;18935:5;18928;18917:48;18855:4;18837:16;18834:26;18745:242;18718:4;18712:11;18687:318;18661:344;;18299:722;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14:332:145:-;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;230:66;223:5;219:78;212:5;209:89;199:117;;312:1;309;302:12;543:154;-1:-1:-1;;;;;622:5:145;618:54;611:5;608:65;598:93;;687:1;684;677:12;702:247;761:6;814:2;802:9;793:7;789:23;785:32;782:52;;;830:1;827;820:12;782:52;869:9;856:23;888:31;913:5;888:31;:::i;954:180::-;1013:6;1066:2;1054:9;1045:7;1041:23;1037:32;1034:52;;;1082:1;1079;1072:12;1034:52;-1:-1:-1;1105:23:145;;954:180;-1:-1:-1;954:180:145:o;1139:250::-;1224:1;1234:113;1248:6;1245:1;1242:13;1234:113;;;1324:11;;;1318:18;1305:11;;;1298:39;1270:2;1263:10;1234:113;;;-1:-1:-1;;1381:1:145;1363:16;;1356:27;1139:250::o;1394:271::-;1436:3;1474:5;1468:12;1501:6;1496:3;1489:19;1517:76;1586:6;1579:4;1574:3;1570:14;1563:4;1556:5;1552:16;1517:76;:::i;:::-;1647:2;1626:15;-1:-1:-1;;1622:29:145;1613:39;;;;1654:4;1609:50;;1394:271;-1:-1:-1;;1394:271:145:o;1670:252::-;1757:5;1751:12;1746:3;1739:25;1721:3;1810:4;1803:5;1799:16;1793:23;1848:4;1841;1836:3;1832:14;1825:28;1869:47;1910:4;1905:3;1901:14;1887:12;1869:47;:::i;1927:797::-;2100:2;2089:9;2082:21;2145:6;2139:13;2134:2;2123:9;2119:18;2112:41;2063:4;2200:2;2192:6;2188:15;2182:22;-1:-1:-1;;;;;2319:2:145;2305:12;2301:21;2296:2;2285:9;2281:18;2274:49;2387:2;2381;2373:6;2369:15;2363:22;2359:31;2354:2;2343:9;2339:18;2332:59;;;2440:2;2432:6;2428:15;2422:22;2481:4;2475:3;2464:9;2460:19;2453:33;2509:63;2567:3;2556:9;2552:19;2536:14;2509:63;:::i;:::-;2495:77;;2627:3;2619:6;2615:16;2609:23;2603:3;2592:9;2588:19;2581:52;2689:3;2681:6;2677:16;2671:23;2664:4;2653:9;2649:20;2642:53;2712:6;2704:14;;;1927:797;;;;:::o;2729:184::-;-1:-1:-1;;;2778:1:145;2771:88;2878:4;2875:1;2868:15;2902:4;2899:1;2892:15;2918:275;2989:2;2983:9;3054:2;3035:13;;-1:-1:-1;;3031:27:145;3019:40;;3089:18;3074:34;;3110:22;;;3071:62;3068:88;;;3136:18;;:::i;:::-;3172:2;3165:22;2918:275;;-1:-1:-1;2918:275:145:o;3198:406::-;3262:5;3296:18;3288:6;3285:30;3282:56;;;3318:18;;:::i;:::-;3356:57;3401:2;3380:15;;-1:-1:-1;;3376:29:145;3407:4;3372:40;3356:57;:::i;:::-;3347:66;;3436:6;3429:5;3422:21;3476:3;3467:6;3462:3;3458:16;3455:25;3452:45;;;3493:1;3490;3483:12;3452:45;3542:6;3537:3;3530:4;3523:5;3519:16;3506:43;3596:1;3589:4;3580:6;3573:5;3569:18;3565:29;3558:40;3198:406;;;;;:::o;3609:220::-;3651:5;3704:3;3697:4;3689:6;3685:17;3681:27;3671:55;;3722:1;3719;3712:12;3671:55;3744:79;3819:3;3810:6;3797:20;3790:4;3782:6;3778:17;3744:79;:::i;3834:388::-;3911:6;3919;3972:2;3960:9;3951:7;3947:23;3943:32;3940:52;;;3988:1;3985;3978:12;3940:52;4024:9;4011:23;4001:33;;4085:2;4074:9;4070:18;4057:32;4112:18;4104:6;4101:30;4098:50;;;4144:1;4141;4134:12;4098:50;4167:49;4208:7;4199:6;4188:9;4184:22;4167:49;:::i;:::-;4157:59;;;3834:388;;;;;:::o;4640:183::-;4700:4;4733:18;4725:6;4722:30;4719:56;;;4755:18;;:::i;:::-;-1:-1:-1;4800:1:145;4796:14;4812:4;4792:25;;4640:183::o;4828:886::-;4880:5;4933:3;4926:4;4918:6;4914:17;4910:27;4900:55;;4951:1;4948;4941:12;4900:55;4987:6;4974:20;5013:4;5037:60;5053:43;5093:2;5053:43;:::i;:::-;5037:60;:::i;:::-;5131:15;;;5217:1;5213:10;;;;5201:23;;5197:32;;;5162:12;;;;5241:15;;;5238:35;;;5269:1;5266;5259:12;5238:35;5305:2;5297:6;5293:15;5317:368;5333:6;5328:3;5325:15;5317:368;;;5419:3;5406:17;5455:18;5442:11;5439:35;5436:125;;;5515:1;5544:2;5540;5533:14;5436:125;5586:56;5638:3;5633:2;5619:11;5611:6;5607:24;5603:33;5586:56;:::i;:::-;5574:69;;-1:-1:-1;5663:12:145;;;;5350;;5317:368;;;-1:-1:-1;5703:5:145;4828:886;-1:-1:-1;;;;;;4828:886:145:o;5719:1147::-;5846:6;5854;5907:2;5895:9;5886:7;5882:23;5878:32;5875:52;;;5923:1;5920;5913:12;5875:52;5963:9;5950:23;5992:18;6033:2;6025:6;6022:14;6019:34;;;6049:1;6046;6039:12;6019:34;6087:6;6076:9;6072:22;6062:32;;6132:7;6125:4;6121:2;6117:13;6113:27;6103:55;;6154:1;6151;6144:12;6103:55;6190:2;6177:16;6212:4;6236:60;6252:43;6292:2;6252:43;:::i;6236:60::-;6330:15;;;6412:1;6408:10;;;;6400:19;;6396:28;;;6361:12;;;;6436:19;;;6433:39;;;6468:1;6465;6458:12;6433:39;6492:11;;;;6512:142;6528:6;6523:3;6520:15;6512:142;;;6594:17;;6582:30;;6545:12;;;;6632;;;;6512:142;;;6673:5;-1:-1:-1;;6716:18:145;;6703:32;;-1:-1:-1;;6747:16:145;;;6744:36;;;6776:1;6773;6766:12;6744:36;;6799:61;6852:7;6841:8;6830:9;6826:24;6799:61;:::i;6871:484::-;6924:3;6962:5;6956:12;6989:6;6984:3;6977:19;7015:4;7044:2;7039:3;7035:12;7028:19;;7081:2;7074:5;7070:14;7102:1;7112:218;7126:6;7123:1;7120:13;7112:218;;;7191:13;;-1:-1:-1;;;;;7187:62:145;7175:75;;7270:12;;;;7305:15;;;;7148:1;7141:9;7112:218;;;-1:-1:-1;7346:3:145;;6871:484;-1:-1:-1;;;;;6871:484:145:o;7360:261::-;7539:2;7528:9;7521:21;7502:4;7559:56;7611:2;7600:9;7596:18;7588:6;7559:56;:::i;7993:388::-;8061:6;8069;8122:2;8110:9;8101:7;8097:23;8093:32;8090:52;;;8138:1;8135;8128:12;8090:52;8177:9;8164:23;8196:31;8221:5;8196:31;:::i;:::-;8246:5;-1:-1:-1;8303:2:145;8288:18;;8275:32;8316:33;8275:32;8316:33;:::i;:::-;8368:7;8358:17;;;7993:388;;;;;:::o;8386:315::-;8454:6;8462;8515:2;8503:9;8494:7;8490:23;8486:32;8483:52;;;8531:1;8528;8521:12;8483:52;8567:9;8554:23;8544:33;;8627:2;8616:9;8612:18;8599:32;8640:31;8665:5;8640:31;:::i;9026:737::-;9080:5;9133:3;9126:4;9118:6;9114:17;9110:27;9100:55;;9151:1;9148;9141:12;9100:55;9187:6;9174:20;9213:4;9237:60;9253:43;9293:2;9253:43;:::i;9237:60::-;9331:15;;;9417:1;9413:10;;;;9401:23;;9397:32;;;9362:12;;;;9441:15;;;9438:35;;;9469:1;9466;9459:12;9438:35;9505:2;9497:6;9493:15;9517:217;9533:6;9528:3;9525:15;9517:217;;;9613:3;9600:17;9630:31;9655:5;9630:31;:::i;:::-;9674:18;;9712:12;;;;9550;;9517:217;;9768:635;9879:6;9887;9895;9948:2;9936:9;9927:7;9923:23;9919:32;9916:52;;;9964:1;9961;9954:12;9916:52;10000:9;9987:23;9977:33;;10061:2;10050:9;10046:18;10033:32;10084:18;10125:2;10117:6;10114:14;10111:34;;;10141:1;10138;10131:12;10111:34;10164:61;10217:7;10208:6;10197:9;10193:22;10164:61;:::i;:::-;10154:71;;10278:2;10267:9;10263:18;10250:32;10234:48;;10307:2;10297:8;10294:16;10291:36;;;10323:1;10320;10313:12;10291:36;;10346:51;10389:7;10378:8;10367:9;10363:24;10346:51;:::i;:::-;10336:61;;;9768:635;;;;;:::o;10904:248::-;10972:6;10980;11033:2;11021:9;11012:7;11008:23;11004:32;11001:52;;;11049:1;11046;11039:12;11001:52;-1:-1:-1;;11072:23:145;;;11142:2;11127:18;;;11114:32;;-1:-1:-1;10904:248:145:o;11157:734::-;11212:5;11260:4;11248:9;11243:3;11239:19;11235:30;11232:50;;;11278:1;11275;11268:12;11232:50;11311:4;11305:11;11355:4;11347:6;11343:17;11379:18;11447:6;11435:10;11432:22;11427:2;11415:10;11412:18;11409:46;11406:72;;;11458:18;;:::i;:::-;11500:10;11494:4;11487:24;11529:6;11520:15;;11572:9;11559:23;11551:6;11544:39;11634:2;11623:9;11619:18;11606:32;11592:46;;11661:2;11653:6;11650:14;11647:34;;;11677:1;11674;11667:12;11647:34;-1:-1:-1;11700:22:145;;11753:4;11745:13;;11741:23;-1:-1:-1;11731:51:145;;11778:1;11775;11768:12;11731:51;11815:69;11880:3;11875:2;11862:16;11857:2;11853;11849:11;11815:69;:::i;:::-;11810:2;11802:6;11798:15;11791:94;;;11157:734;;;;:::o;11896:415::-;11990:6;11998;12051:2;12039:9;12030:7;12026:23;12022:32;12019:52;;;12067:1;12064;12057:12;12019:52;12103:9;12090:23;12080:33;;12164:2;12153:9;12149:18;12136:32;12191:18;12183:6;12180:30;12177:50;;;12223:1;12220;12213:12;12177:50;12246:59;12297:7;12288:6;12277:9;12273:22;12246:59;:::i;12316:1208::-;12489:6;12497;12505;12513;12521;12529;12537;12590:3;12578:9;12569:7;12565:23;12561:33;12558:53;;;12607:1;12604;12597:12;12558:53;12643:9;12630:23;12620:33;;12703:2;12692:9;12688:18;12675:32;12716:31;12741:5;12716:31;:::i;:::-;12766:5;-1:-1:-1;12822:2:145;12807:18;;12794:32;12845:18;12875:14;;;12872:34;;;12902:1;12899;12892:12;12872:34;12925:49;12966:7;12957:6;12946:9;12942:22;12925:49;:::i;:::-;12915:59;;13026:2;13015:9;13011:18;12998:32;12983:47;;13039:33;13064:7;13039:33;:::i;:::-;13091:7;;-1:-1:-1;13145:3:145;13130:19;;13117:33;;-1:-1:-1;13203:3:145;13188:19;;13175:33;;13220:16;;;13217:36;;;13249:1;13246;13239:12;13217:36;13272:61;13325:7;13314:8;13303:9;13299:24;13272:61;:::i;:::-;13262:71;;13386:3;13375:9;13371:19;13358:33;13342:49;;13416:2;13406:8;13403:16;13400:36;;;13432:1;13429;13422:12;13400:36;;13455:63;13510:7;13499:8;13488:9;13484:24;13455:63;:::i;:::-;13445:73;;;12316:1208;;;;;;;;;;:::o;13789:675::-;13892:6;13900;13908;13916;13924;13977:3;13965:9;13956:7;13952:23;13948:33;13945:53;;;13994:1;13991;13984:12;13945:53;14033:9;14020:23;14052:31;14077:5;14052:31;:::i;:::-;14102:5;-1:-1:-1;14159:2:145;14144:18;;14131:32;14172:33;14131:32;14172:33;:::i;:::-;14224:7;-1:-1:-1;14283:2:145;14268:18;;14255:32;14296:33;14255:32;14296:33;:::i;:::-;13789:675;;;;-1:-1:-1;14348:7:145;;14402:2;14387:18;;14374:32;;-1:-1:-1;14453:3:145;14438:19;14425:33;;13789:675;-1:-1:-1;;13789:675:145:o;14469:854::-;14598:6;14606;14614;14667:2;14655:9;14646:7;14642:23;14638:32;14635:52;;;14683:1;14680;14673:12;14635:52;14723:9;14710:23;14752:18;14793:2;14785:6;14782:14;14779:34;;;14809:1;14806;14799:12;14779:34;14847:6;14836:9;14832:22;14822:32;;14892:7;14885:4;14881:2;14877:13;14873:27;14863:55;;14914:1;14911;14904:12;14863:55;14954:2;14941:16;14980:2;14972:6;14969:14;14966:34;;;14996:1;14993;14986:12;14966:34;15051:7;15044:4;15034:6;15031:1;15027:14;15023:2;15019:23;15015:34;15012:47;15009:67;;;15072:1;15069;15062:12;15009:67;15103:4;15095:13;;;;-1:-1:-1;15127:6:145;-1:-1:-1;15171:20:145;;;15158:34;;15204:16;;;15201:36;;;15233:1;15230;15223:12;15201:36;;15256:61;15309:7;15298:8;15287:9;15283:24;15256:61;:::i;15328:437::-;15407:1;15403:12;;;;15450;;;15471:61;;15525:4;15517:6;15513:17;15503:27;;15471:61;15578:2;15570:6;15567:14;15547:18;15544:38;15541:218;;-1:-1:-1;;;15612:1:145;15605:88;15716:4;15713:1;15706:15;15744:4;15741:1;15734:15;15541:218;;15328:437;;;:::o;15770:338::-;15945:2;15934:9;15927:21;15908:4;15965:45;16006:2;15995:9;15991:18;15983:6;15965:45;:::i;:::-;15957:53;;-1:-1:-1;;;;;16050:6:145;16046:55;16041:2;16030:9;16026:18;16019:83;15770:338;;;;;:::o;16113:251::-;16183:6;16236:2;16224:9;16215:7;16211:23;16207:32;16204:52;;;16252:1;16249;16242:12;16204:52;16284:9;16278:16;16303:31;16328:5;16303:31;:::i;16369:184::-;-1:-1:-1;;;16418:1:145;16411:88;16518:4;16515:1;16508:15;16542:4;16539:1;16532:15;16558:184;16628:6;16681:2;16669:9;16660:7;16656:23;16652:32;16649:52;;;16697:1;16694;16687:12;16649:52;-1:-1:-1;16720:16:145;;16558:184;-1:-1:-1;16558:184:145:o;17163:542::-;17416:2;17405:9;17398:21;17379:4;17442:56;17494:2;17483:9;17479:18;17471:6;17442:56;:::i;:::-;17546:9;17538:6;17534:22;17529:2;17518:9;17514:18;17507:50;17574:33;17600:6;17592;17574:33;:::i;:::-;17566:41;;;-1:-1:-1;;;;;17647:6:145;17643:55;17638:2;17627:9;17623:18;17616:83;17163:542;;;;;;:::o;17836:545::-;17938:2;17933:3;17930:11;17927:448;;;17974:1;17999:5;17995:2;17988:17;18044:4;18040:2;18030:19;18114:2;18102:10;18098:19;18095:1;18091:27;18085:4;18081:38;18150:4;18138:10;18135:20;18132:47;;;-1:-1:-1;18173:4:145;18132:47;18228:2;18223:3;18219:12;18216:1;18212:20;18206:4;18202:31;18192:41;;18283:82;18301:2;18294:5;18291:13;18283:82;;;18346:17;;;18327:1;18316:13;18283:82;;;18287:3;;;17836:545;;;:::o;18557:1352::-;18683:3;18677:10;18710:18;18702:6;18699:30;18696:56;;;18732:18;;:::i;:::-;18761:97;18851:6;18811:38;18843:4;18837:11;18811:38;:::i;:::-;18805:4;18761:97;:::i;:::-;18913:4;;18977:2;18966:14;;18994:1;18989:663;;;;19696:1;19713:6;19710:89;;;-1:-1:-1;19765:19:145;;;19759:26;19710:89;-1:-1:-1;;18514:1:145;18510:11;;;18506:24;18502:29;18492:40;18538:1;18534:11;;;18489:57;19812:81;;18959:944;;18989:663;17783:1;17776:14;;;17820:4;17807:18;;-1:-1:-1;;19025:20:145;;;19143:236;19157:7;19154:1;19151:14;19143:236;;;19246:19;;;19240:26;19225:42;;19338:27;;;;19306:1;19294:14;;;;19173:19;;19143:236;;;19147:3;19407:6;19398:7;19395:19;19392:201;;;19468:19;;;19462:26;-1:-1:-1;;19551:1:145;19547:14;;;19563:3;19543:24;19539:37;19535:42;19520:58;19505:74;;19392:201;-1:-1:-1;;;;;19639:1:145;19623:14;;;19619:22;19606:36;;-1:-1:-1;18557:1352:145:o;19914:261::-;20095:2;20084:9;20077:21;20058:4;20115:54;20165:2;20154:9;20150:18;20142:6;20115:54;:::i;20180:184::-;-1:-1:-1;;;20229:1:145;20222:88;20329:4;20326:1;20319:15;20353:4;20350:1;20343:15;20369:135;20408:3;20429:17;;;20426:43;;20449:18;;:::i;:::-;-1:-1:-1;20496:1:145;20485:13;;20369:135::o;21473:168::-;21546:9;;;21577;;21594:15;;;21588:22;;21574:37;21564:71;;21615:18;;:::i;21646:274::-;21686:1;21712;21702:189;;-1:-1:-1;;;21744:1:145;21737:88;21848:4;21845:1;21838:15;21876:4;21873:1;21866:15;21702:189;-1:-1:-1;21905:9:145;;21646:274::o;21925:128::-;21992:9;;;22013:11;;;22010:37;;;22027:18;;:::i;22058:125::-;22123:9;;;22144:10;;;22141:36;;;22157:18;;:::i;23042:277::-;23109:6;23162:2;23150:9;23141:7;23137:23;23133:32;23130:52;;;23178:1;23175;23168:12;23130:52;23210:9;23204:16;23263:5;23256:13;23249:21;23242:5;23239:32;23229:60;;23285:1;23282;23275:12;23650:289;23825:6;23814:9;23807:25;23868:2;23863;23852:9;23848:18;23841:30;23788:4;23888:45;23929:2;23918:9;23914:18;23906:6;23888:45;:::i;24214:573::-;24460:4;-1:-1:-1;;;;;24570:2:145;24562:6;24558:15;24547:9;24540:34;24622:2;24614:6;24610:15;24605:2;24594:9;24590:18;24583:43;;24662:6;24657:2;24646:9;24642:18;24635:34;24705:3;24700:2;24689:9;24685:18;24678:31;24726:55;24776:3;24765:9;24761:19;24753:6;24726:55;:::i;:::-;24718:63;24214:573;-1:-1:-1;;;;;;24214:573:145:o;25031:812::-;25442:25;25437:3;25430:38;25412:3;25497:6;25491:13;25513:75;25581:6;25576:2;25571:3;25567:12;25560:4;25552:6;25548:17;25513:75;:::i;:::-;25652:19;25647:2;25607:16;;;25639:11;;;25632:40;25697:13;;25719:76;25697:13;25781:2;25773:11;;25766:4;25754:17;;25719:76;:::i;:::-;25815:17;25834:2;25811:26;;25031:812;-1:-1:-1;;;;25031:812:145:o;25848:220::-;25997:2;25986:9;25979:21;25960:4;26017:45;26058:2;26047:9;26043:18;26035:6;26017:45;:::i;26425:136::-;26464:3;26492:5;26482:39;;26501:18;;:::i;:::-;-1:-1:-1;;;26537:18:145;;26425:136::o","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","addPoolManager(uint256,address)":"2cf682b0","addToCloneableStrategies(address)":"41bba0b4","allocate(uint256,bytes)":"2ec38188","batchAllocate(uint256[],bytes[])":"c6dff1cf","batchRegisterRecipient(uint256[],bytes[])":"1a20bd88","cancelOwnershipHandover()":"54d1f13d","completeOwnershipHandover(address)":"f04e283e","createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"77da8caf","createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","distribute(uint256,address[],bytes)":"3a5fbd92","fundPool(uint256,uint256)":"5acd6fac","getBaseFee()":"15e812ad","getFeeDenominator()":"f4e1fc41","getPercentFee()":"4edbaadc","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53","getRoleAdmin(bytes32)":"248a9ca3","getStrategy(uint256)":"cfc0cc34","getTreasury()":"3b19e84a","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,address,address,uint256,uint256)":"a6b63eb8","isCloneableStrategy(address)":"ab2ec589","isPoolAdmin(uint256,address)":"ab3febc6","isPoolManager(uint256,address)":"29e40d4b","owner()":"8da5cb5b","ownershipHandoverExpiresAt(address)":"fee81cf4","recoverFunds(address,address)":"24ae6a27","registerRecipient(uint256,bytes)":"075c0e9c","removeFromCloneableStrategies(address)":"031e2fa1","removePoolManager(uint256,address)":"7f5a70bd","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","requestOwnershipHandover()":"25692962","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","updateBaseFee(uint256)":"8e690186","updatePercentFee(uint256)":"f54fc4a0","updatePoolMetadata(uint256,(uint256,string))":"5f9ca138","updateRegistry(address)":"1a5da6c8","updateTreasury(address)":"7f51bb1f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewOwnerIsZeroAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NoHandoverRequest\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"Unauthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"BaseFeePaid\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"baseFee\",\"type\":\"uint256\"}],\"name\":\"BaseFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverCanceled\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"OwnershipHandoverRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"percentFee\",\"type\":\"uint256\"}],\"name\":\"PercentFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"fee\",\"type\":\"uint256\"}],\"name\":\"PoolFunded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"PoolMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registry\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"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\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyApproved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"treasury\",\"type\":\"address\"}],\"name\":\"TreasuryUpdated\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"addPoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"addToCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_datas\",\"type\":\"bytes[]\"}],\"name\":\"batchAllocate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"_poolIds\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes[]\",\"name\":\"_data\",\"type\":\"bytes[]\"}],\"name\":\"batchRegisterRecipient\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"recipientIds\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cancelOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"completeOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"fundPool\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBaseFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getFeeDenominator\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"FEE_DENOMINATOR\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPercentFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"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\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getStrategy\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTreasury\",\"outputs\":[{\"internalType\":\"address payable\",\"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\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"},{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"isCloneableStrategy\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isPoolManager\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"result\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ownershipHandoverExpiresAt\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeFromCloneableStrategies\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_manager\",\"type\":\"address\"}],\"name\":\"removePoolManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"requestOwnershipHandover\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_baseFee\",\"type\":\"uint256\"}],\"name\":\"updateBaseFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_percentFee\",\"type\":\"uint256\"}],\"name\":\"updatePercentFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updatePoolMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registry\",\"type\":\"address\"}],\"name\":\"updateRegistry\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_treasury\",\"type\":\"address\"}],\"name\":\"updateTreasury\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"The contract must be initialized with the 'initialize()' function.\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}],\"NewOwnerIsZeroAddress()\":[{\"details\":\"The `newOwner` cannot be the zero address.\"}],\"NoHandoverRequest()\":[{\"details\":\"The `pendingOwner` does not have a valid handover request.\"}],\"Unauthorized()\":[{\"details\":\"The caller is not authorized to call the function.\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"params\":{\"amount\":\"Amount of the base fee paid\",\"poolId\":\"ID of the pool the base fee was paid for\"}},\"BaseFeeUpdated(uint256)\":{\"params\":{\"baseFee\":\"New base fee amount\"}},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"OwnershipHandoverCanceled(address)\":{\"details\":\"The ownership handover to `pendingOwner` has been canceled.\"},\"OwnershipHandoverRequested(address)\":{\"details\":\"An ownership handover to `pendingOwner` has been requested.\"},\"OwnershipTransferred(address,address)\":{\"details\":\"The ownership is transferred from `oldOwner` to `newOwner`. This event is intentionally kept the same as OpenZeppelin's Ownable to be compatible with indexers and [EIP-173](https://eips.ethereum.org/EIPS/eip-173), despite it not being as lightweight as a single argument event.\"},\"PercentFeeUpdated(uint256)\":{\"params\":{\"percentFee\":\"New percentage for the fee\"}},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"params\":{\"amount\":\"Amount pool was funded with when created\",\"metadata\":\"Pool metadata\",\"poolId\":\"ID of the pool created\",\"profileId\":\"ID of the profile the pool is associated with\",\"strategy\":\"Address of the strategy contract\",\"token\":\"Address of the token pool was funded with when created\"}},\"PoolFunded(uint256,uint256,uint256)\":{\"params\":{\"amount\":\"Amount funded to the pool\",\"fee\":\"Amount of the fee paid to the treasury\",\"poolId\":\"ID of the pool funded\"}},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"params\":{\"metadata\":\"Pool metadata that was updated\",\"poolId\":\"ID of the pool updated\"}},\"RegistryUpdated(address)\":{\"params\":{\"registry\":\"Address of the new registry\"}},\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"StrategyApproved(address)\":{\"params\":{\"strategy\":\"Address of the strategy approved\"}},\"StrategyRemoved(address)\":{\"params\":{\"strategy\":\"Address of the strategy removed\"}},\"TreasuryUpdated(address)\":{\"params\":{\"treasury\":\"Address of the new treasury\"}}},\"kind\":\"dev\",\"methods\":{\"addPoolManager(uint256,address)\":{\"details\":\"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to add\",\"_poolId\":\"ID of the pool\"}},\"addToCloneableStrategies(address)\":{\"details\":\"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"allocate(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().\",\"params\":{\"_data\":\"Encoded data unique to the strategy for that pool\",\"_poolId\":\"ID of the pool\"}},\"batchAllocate(uint256[],bytes[])\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.\",\"params\":{\"_datas\":\"encoded data unique to the strategy for that pool\",\"_poolIds\":\"IDs of the pools\"}},\"batchRegisterRecipient(uint256[],bytes[])\":{\"details\":\"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\",\"params\":{\"_data\":\"An array of encoded data unique to a strategy that registerRecipient() requires.\",\"_poolIds\":\"ID's of the pools\"},\"returns\":{\"recipientIds\":\"The recipient IDs that have been registered\"}},\"cancelOwnershipHandover()\":{\"details\":\"Cancels the two-step ownership handover to the caller, if any.\"},\"completeOwnershipHandover(address)\":{\"details\":\"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"custom:initstrategydata\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'\",\"details\":\"'msg.sender' must be owner or member of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool\",\"_metadata\":\"The metadata of the pool\",\"_profileId\":\"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the strategy contract the pool will use.\",\"_token\":\"The address of the token\"}},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"details\":\"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.\",\"params\":{\"_amount\":\"The amount of the token you want to deposit into the pool on initialization\",\"_initStrategyData\":\"The data to initialize the strategy\",\"_managers\":\"The managers of the pool, and can be added/removed later by the pool admin\",\"_metadata\":\"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\",\"_profileId\":\"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\",\"_strategy\":\"The address of the deployed custom strategy\",\"_token\":\"The address of the token you want to use in your pool\"},\"returns\":{\"poolId\":\"The ID of the pool\"}},\"distribute(uint256,address[],bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.\",\"params\":{\"_data\":\"Encoded data unique to the strategy\",\"_poolId\":\"ID of the pool\",\"_recipientIds\":\"Ids of the recipients of the distribution\"}},\"fundPool(uint256,uint256)\":{\"details\":\"Anyone can fund a pool and call this function.\",\"params\":{\"_amount\":\"The amount to be deposited into the pool\",\"_poolId\":\"ID of the pool\"}},\"getBaseFee()\":{\"returns\":{\"_0\":\"The base fee\"}},\"getFeeDenominator()\":{\"returns\":{\"FEE_DENOMINATOR\":\"The fee denominator is (1e18) which represents 100%\"}},\"getPercentFee()\":{\"returns\":{\"_0\":\"The fee percentage (1e18 = 100%)\"}},\"getPool(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The 'Pool' struct\"}},\"getRegistry()\":{\"returns\":{\"_0\":\"The registry address\"}},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"getStrategy(uint256)\":{\"params\":{\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"The address of the strategy\"}},\"getTreasury()\":{\"returns\":{\"_0\":\"The treasury address\"}},\"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,address,address,uint256,uint256)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer\",\"params\":{\"_baseFee\":\"The base fee\",\"_owner\":\"The owner of allo\",\"_percentFee\":\"The percentage fee\",\"_registry\":\"The address of the registry\",\"_treasury\":\"The address of the treasury\"}},\"isCloneableStrategy(address)\":{\"params\":{\"_strategy\":\"The address of the strategy\"},\"returns\":{\"_0\":\"'true' if the strategy is cloneable, otherwise 'false'\"}},\"isPoolAdmin(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool admin, otherwise 'false'\"}},\"isPoolManager(uint256,address)\":{\"params\":{\"_address\":\"The address to check\",\"_poolId\":\"The ID of the pool\"},\"returns\":{\"_0\":\"'true' if the address is a pool manager, otherwise 'false'\"}},\"owner()\":{\"details\":\"Returns the owner of the contract.\"},\"ownershipHandoverExpiresAt(address)\":{\"details\":\"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`.\"},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be Allo owner\",\"params\":{\"_recipient\":\"The recipient\",\"_token\":\"The token to transfer\"}},\"registerRecipient(uint256,bytes)\":{\"details\":\"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().\",\"params\":{\"_data\":\"Encoded data unique to a strategy that registerRecipient() requires\",\"_poolId\":\"ID of the pool\"},\"returns\":{\"_0\":\"recipientId The recipient ID that has been registered\"}},\"removeFromCloneableStrategies(address)\":{\"details\":\"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\",\"params\":{\"_strategy\":\"The address of the strategy\"}},\"removePoolManager(uint256,address)\":{\"details\":\"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\",\"params\":{\"_manager\":\"The address to remove\",\"_poolId\":\"ID of the pool\"}},\"renounceOwnership()\":{\"details\":\"Allows the owner to renounce their ownership.\"},\"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 `account`. May emit a {RoleRevoked} event.\"},\"requestOwnershipHandover()\":{\"details\":\"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default.\"},\"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\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Allows the owner to transfer the ownership to `newOwner`.\"},\"updateBaseFee(uint256)\":{\"details\":\"Use this to update the base fee. 'msg.sender' must be Allo owner.\",\"params\":{\"_baseFee\":\"The new base fee\"}},\"updatePercentFee(uint256)\":{\"details\":\"Use this to update the fee percentage. 'msg.sender' must be Allo owner.\",\"params\":{\"_percentFee\":\"The new fee\"}},\"updatePoolMetadata(uint256,(uint256,string))\":{\"details\":\"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\",\"params\":{\"_metadata\":\"The new metadata of the pool\",\"_poolId\":\"ID of the pool\"}},\"updateRegistry(address)\":{\"details\":\"Use this to update the registry address. 'msg.sender' must be Allo owner.\",\"params\":{\"_registry\":\"The new registry address\"}},\"updateTreasury(address)\":{\"details\":\"Use this to update the treasury address. 'msg.sender' must be Allo owner.\",\"params\":{\"_treasury\":\"The new treasury address\"}}},\"stateVariables\":{\"_nonces\":{\"details\":\"'msg.sender' -> 'nonce' for cloning strategies\"},\"baseFee\":{\"details\":\"This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address.\"},\"cloneableStrategies\":{\"details\":\"Strategy.address -> bool\"},\"percentFee\":{\"details\":\"How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%\"},\"pools\":{\"details\":\"'Pool.id' -> 'Pool'\"}},\"title\":\"Allo\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"BaseFeePaid(uint256,uint256)\":{\"notice\":\"Emitted when the base fee is paid\"},\"BaseFeeUpdated(uint256)\":{\"notice\":\"Emitted when the base fee is updated\"},\"PercentFeeUpdated(uint256)\":{\"notice\":\"Emitted when the percent fee is updated\"},\"PoolCreated(uint256,bytes32,address,address,uint256,(uint256,string))\":{\"notice\":\"Event emitted when a new pool is created\"},\"PoolFunded(uint256,uint256,uint256)\":{\"notice\":\"Emitted when a pool is funded\"},\"PoolMetadataUpdated(uint256,(uint256,string))\":{\"notice\":\"Emitted when a pools metadata is updated\"},\"RegistryUpdated(address)\":{\"notice\":\"Emitted when the registry address is updated\"},\"StrategyApproved(address)\":{\"notice\":\"Emitted when a strategy is approved and added to the cloneable strategies\"},\"StrategyRemoved(address)\":{\"notice\":\"Emitted when a strategy is removed from the cloneable strategies\"},\"TreasuryUpdated(address)\":{\"notice\":\"Emitted when the treasury address is updated\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"addPoolManager(uint256,address)\":{\"notice\":\"Add a pool manager\"},\"addToCloneableStrategies(address)\":{\"notice\":\"Add a strategy to the allowlist.\"},\"allocate(uint256,bytes)\":{\"notice\":\"Allocate to a recipient or multiple recipients.\"},\"batchAllocate(uint256[],bytes[])\":{\"notice\":\"Allocate to multiple pools\"},\"batchRegisterRecipient(uint256[],bytes[])\":{\"notice\":\"Register multiple recipients to multiple pools.\"},\"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (by cloning a cloneable strategies).\"},\"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])\":{\"notice\":\"Creates a new pool (with a custom strategy)\"},\"distribute(uint256,address[],bytes)\":{\"notice\":\"Distribute to a recipient or multiple recipients.\"},\"fundPool(uint256,uint256)\":{\"notice\":\"Fund a pool.\"},\"getBaseFee()\":{\"notice\":\"Getter for base fee.\"},\"getFeeDenominator()\":{\"notice\":\"Getter for the fee denominator\"},\"getPercentFee()\":{\"notice\":\"Getter for fee percentage.\"},\"getPool(uint256)\":{\"notice\":\"Getter for the 'Pool'.\"},\"getRegistry()\":{\"notice\":\"Getter for registry.\"},\"getStrategy(uint256)\":{\"notice\":\"Getter for the strategy.\"},\"getTreasury()\":{\"notice\":\"Getter for treasury address.\"},\"initialize(address,address,address,uint256,uint256)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isCloneableStrategy(address)\":{\"notice\":\"Getter for if strategy is cloneable.\"},\"isPoolAdmin(uint256,address)\":{\"notice\":\"Checks if the address is a pool admin.\"},\"isPoolManager(uint256,address)\":{\"notice\":\"Checks if the address is a pool manager\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfer the funds recovered to the recipient\"},\"registerRecipient(uint256,bytes)\":{\"notice\":\"Passes _data through to the strategy for that pool.\"},\"removeFromCloneableStrategies(address)\":{\"notice\":\"Remove a strategy from the allowlist\"},\"removePoolManager(uint256,address)\":{\"notice\":\"Remove a pool manager\"},\"updateBaseFee(uint256)\":{\"notice\":\"Updates the base fee.\"},\"updatePercentFee(uint256)\":{\"notice\":\"Updates the fee percentage.\"},\"updatePoolMetadata(uint256,(uint256,string))\":{\"notice\":\"Update pool metadata\"},\"updateRegistry(address)\":{\"notice\":\"Updates the registry address.\"},\"updateTreasury(address)\":{\"notice\":\"Updates the treasury address.\"}},\"notice\":\"This contract is used to create & manage pools as well as manage the protocol.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Allo.sol\":\"Allo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"NewOwnerIsZeroAddress"},{"inputs":[],"type":"error","name":"NoHandoverRequest"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"Unauthorized"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"BaseFeePaid","anonymous":false},{"inputs":[{"internalType":"uint256","name":"baseFee","type":"uint256","indexed":false}],"type":"event","name":"BaseFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverCanceled","anonymous":false},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipHandoverRequested","anonymous":false},{"inputs":[{"internalType":"address","name":"oldOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"percentFee","type":"uint256","indexed":false}],"type":"event","name":"PercentFeeUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"contract IStrategy","name":"strategy","type":"address","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"fee","type":"uint256","indexed":false}],"type":"event","name":"PoolFunded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"registry","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyApproved","anonymous":false},{"inputs":[{"internalType":"address","name":"strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"treasury","type":"address","indexed":false}],"type":"event","name":"TreasuryUpdated","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addPoolManager"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addToCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_datas","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchAllocate"},{"inputs":[{"internalType":"uint256[]","name":"_poolIds","type":"uint256[]"},{"internalType":"bytes[]","name":"_data","type":"bytes[]"}],"stateMutability":"nonpayable","type":"function","name":"batchRegisterRecipient","outputs":[{"internalType":"address[]","name":"recipientIds","type":"address[]"}]},{"inputs":[],"stateMutability":"payable","type":"function","name":"cancelOwnershipHandover"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"completeOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"payable","type":"function","name":"fundPool"},{"inputs":[],"stateMutability":"view","type":"function","name":"getBaseFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"getFeeDenominator","outputs":[{"internalType":"uint256","name":"FEE_DENOMINATOR","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPercentFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getStrategy","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getTreasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_registry","type":"address"},{"internalType":"address payable","name":"_treasury","type":"address"},{"internalType":"uint256","name":"_percentFee","type":"uint256"},{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"isCloneableStrategy","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolAdmin","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_address","type":"address"}],"stateMutability":"view","type":"function","name":"isPoolManager","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}]},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"stateMutability":"view","type":"function","name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeFromCloneableStrategies"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"address","name":"_manager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removePoolManager"},{"inputs":[],"stateMutability":"payable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[],"stateMutability":"payable","type":"function","name":"requestOwnershipHandover"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"payable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"uint256","name":"_baseFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateBaseFee"},{"inputs":[{"internalType":"uint256","name":"_percentFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updatePercentFee"},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updatePoolMetadata"},{"inputs":[{"internalType":"address","name":"_registry","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateRegistry"},{"inputs":[{"internalType":"address payable","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateTreasury"}],"devdoc":{"kind":"dev","methods":{"addPoolManager(uint256,address)":{"details":"Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to add","_poolId":"ID of the pool"}},"addToCloneableStrategies(address)":{"details":"Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"allocate(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate().","params":{"_data":"Encoded data unique to the strategy for that pool","_poolId":"ID of the pool"}},"batchAllocate(uint256[],bytes[])":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of allocate(). Please note that this is not a 'payable' function, so if you want to send funds to the strategy, you must send the funds using 'fundPool()'.","params":{"_datas":"encoded data unique to the strategy for that pool","_poolIds":"IDs of the pools"}},"batchRegisterRecipient(uint256[],bytes[])":{"details":"Returns the 'recipientIds' from the strategy that have been registered from calling this function. Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.","params":{"_data":"An array of encoded data unique to a strategy that registerRecipient() requires.","_poolIds":"ID's of the pools"},"returns":{"recipientIds":"The recipient IDs that have been registered"}},"cancelOwnershipHandover()":{"details":"Cancels the two-step ownership handover to the caller, if any."},"completeOwnershipHandover(address)":{"details":"Allows the owner to complete the two-step ownership handover to `pendingOwner`. Reverts if there is no existing ownership handover requested by `pendingOwner`."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"custom:initstrategydata":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'","details":"'msg.sender' must be owner or member of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool","_metadata":"The metadata of the pool","_profileId":"The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the strategy contract the pool will use.","_token":"The address of the token"}},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"details":"'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must be a member or owner of the profile id passed as '_profileId'.","params":{"_amount":"The amount of the token you want to deposit into the pool on initialization","_initStrategyData":"The data to initialize the strategy","_managers":"The managers of the pool, and can be added/removed later by the pool admin","_metadata":"The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)","_profileId":"The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile","_strategy":"The address of the deployed custom strategy","_token":"The address of the token you want to use in your pool"},"returns":{"poolId":"The ID of the pool"}},"distribute(uint256,address[],bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of 'strategy.distribute()'.","params":{"_data":"Encoded data unique to the strategy","_poolId":"ID of the pool","_recipientIds":"Ids of the recipients of the distribution"}},"fundPool(uint256,uint256)":{"details":"Anyone can fund a pool and call this function.","params":{"_amount":"The amount to be deposited into the pool","_poolId":"ID of the pool"}},"getBaseFee()":{"returns":{"_0":"The base fee"}},"getFeeDenominator()":{"returns":{"FEE_DENOMINATOR":"The fee denominator is (1e18) which represents 100%"}},"getPercentFee()":{"returns":{"_0":"The fee percentage (1e18 = 100%)"}},"getPool(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The 'Pool' struct"}},"getRegistry()":{"returns":{"_0":"The registry address"}},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"getStrategy(uint256)":{"params":{"_poolId":"The ID of the pool"},"returns":{"_0":"The address of the strategy"}},"getTreasury()":{"returns":{"_0":"The treasury address"}},"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,address,address,uint256,uint256)":{"details":"During upgrade -> a higher version should be passed to reinitializer","params":{"_baseFee":"The base fee","_owner":"The owner of allo","_percentFee":"The percentage fee","_registry":"The address of the registry","_treasury":"The address of the treasury"}},"isCloneableStrategy(address)":{"params":{"_strategy":"The address of the strategy"},"returns":{"_0":"'true' if the strategy is cloneable, otherwise 'false'"}},"isPoolAdmin(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool admin, otherwise 'false'"}},"isPoolManager(uint256,address)":{"params":{"_address":"The address to check","_poolId":"The ID of the pool"},"returns":{"_0":"'true' if the address is a pool manager, otherwise 'false'"}},"owner()":{"details":"Returns the owner of the contract."},"ownershipHandoverExpiresAt(address)":{"details":"Returns the expiry timestamp for the two-step ownership handover to `pendingOwner`."},"recoverFunds(address,address)":{"details":"'msg.sender' must be Allo owner","params":{"_recipient":"The recipient","_token":"The token to transfer"}},"registerRecipient(uint256,bytes)":{"details":"The encoded data will be specific to a given strategy requirements, reference the strategy implementation of registerRecipient().","params":{"_data":"Encoded data unique to a strategy that registerRecipient() requires","_poolId":"ID of the pool"},"returns":{"_0":"recipientId The recipient ID that has been registered"}},"removeFromCloneableStrategies(address)":{"details":"Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.","params":{"_strategy":"The address of the strategy"}},"removePoolManager(uint256,address)":{"details":"Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.","params":{"_manager":"The address to remove","_poolId":"ID of the pool"}},"renounceOwnership()":{"details":"Allows the owner to renounce their ownership."},"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 `account`. May emit a {RoleRevoked} event."},"requestOwnershipHandover()":{"details":"Request a two-step ownership handover to the caller. The request will automatically expire in 48 hours (172800 seconds) by default."},"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":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Allows the owner to transfer the ownership to `newOwner`."},"updateBaseFee(uint256)":{"details":"Use this to update the base fee. 'msg.sender' must be Allo owner.","params":{"_baseFee":"The new base fee"}},"updatePercentFee(uint256)":{"details":"Use this to update the fee percentage. 'msg.sender' must be Allo owner.","params":{"_percentFee":"The new fee"}},"updatePoolMetadata(uint256,(uint256,string))":{"details":"'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.","params":{"_metadata":"The new metadata of the pool","_poolId":"ID of the pool"}},"updateRegistry(address)":{"details":"Use this to update the registry address. 'msg.sender' must be Allo owner.","params":{"_registry":"The new registry address"}},"updateTreasury(address)":{"details":"Use this to update the treasury address. 'msg.sender' must be Allo owner.","params":{"_treasury":"The new treasury address"}}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"addPoolManager(uint256,address)":{"notice":"Add a pool manager"},"addToCloneableStrategies(address)":{"notice":"Add a strategy to the allowlist."},"allocate(uint256,bytes)":{"notice":"Allocate to a recipient or multiple recipients."},"batchAllocate(uint256[],bytes[])":{"notice":"Allocate to multiple pools"},"batchRegisterRecipient(uint256[],bytes[])":{"notice":"Register multiple recipients to multiple pools."},"createPool(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (by cloning a cloneable strategies)."},"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":{"notice":"Creates a new pool (with a custom strategy)"},"distribute(uint256,address[],bytes)":{"notice":"Distribute to a recipient or multiple recipients."},"fundPool(uint256,uint256)":{"notice":"Fund a pool."},"getBaseFee()":{"notice":"Getter for base fee."},"getFeeDenominator()":{"notice":"Getter for the fee denominator"},"getPercentFee()":{"notice":"Getter for fee percentage."},"getPool(uint256)":{"notice":"Getter for the 'Pool'."},"getRegistry()":{"notice":"Getter for registry."},"getStrategy(uint256)":{"notice":"Getter for the strategy."},"getTreasury()":{"notice":"Getter for treasury address."},"initialize(address,address,address,uint256,uint256)":{"notice":"Initializes the contract after an upgrade"},"isCloneableStrategy(address)":{"notice":"Getter for if strategy is cloneable."},"isPoolAdmin(uint256,address)":{"notice":"Checks if the address is a pool admin."},"isPoolManager(uint256,address)":{"notice":"Checks if the address is a pool manager"},"recoverFunds(address,address)":{"notice":"Transfer the funds recovered to the recipient"},"registerRecipient(uint256,bytes)":{"notice":"Passes _data through to the strategy for that pool."},"removeFromCloneableStrategies(address)":{"notice":"Remove a strategy from the allowlist"},"removePoolManager(uint256,address)":{"notice":"Remove a pool manager"},"updateBaseFee(uint256)":{"notice":"Updates the base fee."},"updatePercentFee(uint256)":{"notice":"Updates the fee percentage."},"updatePoolMetadata(uint256,(uint256,string))":{"notice":"Update pool metadata"},"updateRegistry(address)":{"notice":"Updates the registry address."},"updateTreasury(address)":{"notice":"Updates the treasury address."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Allo.sol":"Allo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":54008,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":52428,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)"},{"astId":52735,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":53206,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_status","offset":0,"slot":"151","type":"t_uint256"},{"astId":53275,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"__gap","offset":0,"slot":"152","type":"t_array(t_uint256)49_storage"},{"astId":34,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"percentFee","offset":0,"slot":"201","type":"t_uint256"},{"astId":37,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"baseFee","offset":0,"slot":"202","type":"t_uint256"},{"astId":40,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_poolIndex","offset":0,"slot":"203","type":"t_uint256"},{"astId":43,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"treasury","offset":0,"slot":"204","type":"t_address_payable"},{"astId":47,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"registry","offset":0,"slot":"205","type":"t_contract(IRegistry)2802"},{"astId":52,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"_nonces","offset":0,"slot":"206","type":"t_mapping(t_address,t_uint256)"},{"astId":58,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"pools","offset":0,"slot":"207","type":"t_mapping(t_uint256,t_struct(Pool)2319_storage)"},{"astId":63,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"cloneableStrategies","offset":0,"slot":"208","type":"t_mapping(t_address,t_bool)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(IStrategy)2969":{"encoding":"inplace","label":"contract IStrategy","numberOfBytes":"20"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52423_storage"},"t_mapping(t_uint256,t_struct(Pool)2319_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct IAllo.Pool)","numberOfBytes":"32","value":"t_struct(Pool)2319_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(Pool)2319_storage":{"encoding":"inplace","label":"struct IAllo.Pool","numberOfBytes":"224","members":[{"astId":2306,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"profileId","offset":0,"slot":"0","type":"t_bytes32"},{"astId":2309,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"strategy","offset":0,"slot":"1","type":"t_contract(IStrategy)2969"},{"astId":2311,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"token","offset":0,"slot":"2","type":"t_address"},{"astId":2314,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"metadata","offset":0,"slot":"3","type":"t_struct(Metadata)3098_storage"},{"astId":2316,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"managerRole","offset":0,"slot":"5","type":"t_bytes32"},{"astId":2318,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"adminRole","offset":0,"slot":"6","type":"t_bytes32"}]},"t_struct(RoleData)52423_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52420,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52422,"contract":"lib/allo-v2/contracts/core/Allo.sol:Allo","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/Allo.sol","id":1391,"exportedSymbols":{"AccessControlUpgradeable":[52736],"AddressUpgradeable":[53684],"Allo":[1390],"Clone":[3002],"ContextUpgradeable":[53735],"ERC165Upgradeable":[54009],"Errors":[3089],"IAccessControlUpgradeable":[52809],"IAllo":[2610],"IERC165Upgradeable":[54021],"IERC20Upgradeable":[53354],"IRegistry":[2802],"IStrategy":[2969],"Initializable":[53191],"MathUpgradeable":[54887],"Metadata":[3098],"Native":[3106],"Ownable":[4095],"ReentrancyGuardUpgradeable":[53276],"SignedMathUpgradeable":[54992],"StringsUpgradeable":[53964],"Transfer":[3317]},"nodeType":"SourceUnit","src":"42:34082:0","nodes":[{"id":1,"nodeType":"PragmaDirective","src":"42:23:0","nodes":[],"literals":["solidity","0.8",".19"]},{"id":2,"nodeType":"ImportDirective","src":"89:37:0","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/auth/Ownable.sol","file":"solady/src/auth/Ownable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":4096,"symbolAliases":[],"unitAlias":""},{"id":3,"nodeType":"ImportDirective","src":"127:84:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53192,"symbolAliases":[],"unitAlias":""},{"id":4,"nodeType":"ImportDirective","src":"212:88:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53355,"symbolAliases":[],"unitAlias":""},{"id":5,"nodeType":"ImportDirective","src":"301:90:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":52737,"symbolAliases":[],"unitAlias":""},{"id":6,"nodeType":"ImportDirective","src":"392:94:0","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":53277,"symbolAliases":[],"unitAlias":""},{"id":7,"nodeType":"ImportDirective","src":"501:32:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"./interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":2611,"symbolAliases":[],"unitAlias":""},{"id":9,"nodeType":"ImportDirective","src":"557:44:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"./libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":8,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"565:5:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":11,"nodeType":"ImportDirective","src":"602:46:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"./libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":10,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"610:6:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":12,"nodeType":"ImportDirective","src":"649:32:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"./libraries/Native.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3107,"symbolAliases":[],"unitAlias":""},{"id":14,"nodeType":"ImportDirective","src":"682:50:0","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Transfer.sol","file":"./libraries/Transfer.sol","nameLocation":"-1:-1:-1","scope":1391,"sourceUnit":3318,"symbolAliases":[{"foreign":{"id":13,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3317,"src":"690:8:0","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1390,"nodeType":"ContractDefinition","src":"5076:29047:0","nodes":[{"id":34,"nodeType":"VariableDeclaration","src":"5862:26:0","nodes":[],"constant":false,"documentation":{"id":32,"nodeType":"StructuredDocumentation","src":"5344:513:0","text":"@notice Percentage that is used to calculate the fee Allo takes from each pool when funded\n and is deducted when a pool is funded. So if you want to fund a round with 1000 DAI and the fee\n percentage is 1e17 (10%), then 100 DAI will be deducted from the 1000 DAI and the pool will be\n funded with 900 DAI. The fee is then sent to the treasury address.\n @dev How the percentage is represented in our contracts: 1e18 = 100%, 1e17 = 10%, 1e16 = 1%, 1e15 = 0.1%"},"mutability":"mutable","name":"percentFee","nameLocation":"5878:10:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":33,"name":"uint256","nodeType":"ElementaryTypeName","src":"5862:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":37,"nodeType":"VariableDeclaration","src":"6339:24:0","nodes":[],"constant":false,"documentation":{"id":35,"nodeType":"StructuredDocumentation","src":"5895:439:0","text":"@notice Fee Allo charges for all pools on creation\n @dev This is different from the 'percentFee' in that this is a flat fee and not a percentage. So if you want to create a pool\n with a base fee of 100 DAI, then you would pass 100 DAI to the 'createPool()' function and the pool would be created\n with 100 DAI less than the amount you passed to the function. The base fee is sent to the treasury address."},"mutability":"mutable","name":"baseFee","nameLocation":"6356:7:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":36,"name":"uint256","nodeType":"ElementaryTypeName","src":"6339:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":40,"nodeType":"VariableDeclaration","src":"6431:26:0","nodes":[],"constant":false,"documentation":{"id":38,"nodeType":"StructuredDocumentation","src":"6370:56:0","text":"@notice Incremental index to track the pools created"},"mutability":"mutable","name":"_poolIndex","nameLocation":"6447:10:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":39,"name":"uint256","nodeType":"ElementaryTypeName","src":"6431:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":43,"nodeType":"VariableDeclaration","src":"6494:32:0","nodes":[],"constant":false,"documentation":{"id":41,"nodeType":"StructuredDocumentation","src":"6464:25:0","text":"@notice Allo treasury"},"mutability":"mutable","name":"treasury","nameLocation":"6518:8:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":42,"name":"address","nodeType":"ElementaryTypeName","src":"6494:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"private"},{"id":47,"nodeType":"VariableDeclaration","src":"6567:26:0","nodes":[],"constant":false,"documentation":{"id":44,"nodeType":"StructuredDocumentation","src":"6533:29:0","text":"@notice Registry contract"},"mutability":"mutable","name":"registry","nameLocation":"6585:8:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":46,"nodeType":"UserDefinedTypeName","pathNode":{"id":45,"name":"IRegistry","nameLocations":["6567:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6567:9:0"},"referencedDeclaration":2802,"src":"6567:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"private"},{"id":52,"nodeType":"VariableDeclaration","src":"6733:43:0","nodes":[],"constant":false,"documentation":{"id":48,"nodeType":"StructuredDocumentation","src":"6600:128:0","text":"@notice Maps the `msg.sender` to a `nonce` to prevent duplicates\n @dev 'msg.sender' -> 'nonce' for cloning strategies"},"mutability":"mutable","name":"_nonces","nameLocation":"6769:7:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":51,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":49,"name":"address","nodeType":"ElementaryTypeName","src":"6741:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"6733:27:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":50,"name":"uint256","nodeType":"ElementaryTypeName","src":"6752:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":58,"nodeType":"VariableDeclaration","src":"6869:38:0","nodes":[],"constant":false,"documentation":{"id":53,"nodeType":"StructuredDocumentation","src":"6783:81:0","text":"@notice Maps the pool ID to the pool details\n @dev 'Pool.id' -> 'Pool'"},"mutability":"mutable","name":"pools","nameLocation":"6902:5:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool)"},"typeName":{"id":57,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":54,"name":"uint256","nodeType":"ElementaryTypeName","src":"6877:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"6869:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56,"nodeType":"UserDefinedTypeName","pathNode":{"id":55,"name":"Pool","nameLocations":["6888:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"6888:4:0"},"referencedDeclaration":2319,"src":"6888:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}}},"visibility":"private"},{"id":63,"nodeType":"VariableDeclaration","src":"7064:52:0","nodes":[],"constant":false,"documentation":{"id":59,"nodeType":"StructuredDocumentation","src":"6914:145:0","text":"@notice Returns a bool for whether a strategy is cloneable or not using the strategy address as the key\n @dev Strategy.address -> bool"},"mutability":"mutable","name":"cloneableStrategies","nameLocation":"7097:19:0","scope":1390,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":62,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":60,"name":"address","nodeType":"ElementaryTypeName","src":"7072:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7064:24:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":61,"name":"bool","nodeType":"ElementaryTypeName","src":"7083:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"private"},{"id":101,"nodeType":"FunctionDefinition","src":"7626:593:0","nodes":[],"body":{"id":100,"nodeType":"Block","src":"7819:400:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":81,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":66,"src":"7907:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80,"name":"_initializeOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3980,"src":"7890:16:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":82,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7890:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83,"nodeType":"ExpressionStatement","src":"7890:24:0"},{"expression":{"arguments":[{"id":85,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":68,"src":"7984:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":84,"name":"_updateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"7968:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":86,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7968:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":87,"nodeType":"ExpressionStatement","src":"7968:26:0"},{"expression":{"arguments":[{"id":89,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":70,"src":"8064:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":88,"name":"_updateTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"8048:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":90,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8048:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91,"nodeType":"ExpressionStatement","src":"8048:26:0"},{"expression":{"arguments":[{"id":93,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72,"src":"8137:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":92,"name":"_updatePercentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"8119:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":94,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8119:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":95,"nodeType":"ExpressionStatement","src":"8119:30:0"},{"expression":{"arguments":[{"id":97,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74,"src":"8203:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":96,"name":"_updateBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"8188:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":98,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8188:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":99,"nodeType":"ExpressionStatement","src":"8188:24:0"}]},"baseFunctions":[2404],"documentation":{"id":64,"nodeType":"StructuredDocumentation","src":"7257:364:0","text":"@notice Initializes the contract after an upgrade\n @dev During upgrade -> a higher version should be passed to reinitializer\n @param _owner The owner of allo\n @param _registry The address of the registry\n @param _treasury The address of the treasury\n @param _percentFee The percentage fee\n @param _baseFee The base fee"},"functionSelector":"a6b63eb8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"31","id":77,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7816:1:0","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":78,"kind":"modifierInvocation","modifierName":{"id":76,"name":"reinitializer","nameLocations":["7802:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":53126,"src":"7802:13:0"},"nodeType":"ModifierInvocation","src":"7802:16:0"}],"name":"initialize","nameLocation":"7635:10:0","parameters":{"id":75,"nodeType":"ParameterList","parameters":[{"constant":false,"id":66,"mutability":"mutable","name":"_owner","nameLocation":"7663:6:0","nodeType":"VariableDeclaration","scope":101,"src":"7655:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":65,"name":"address","nodeType":"ElementaryTypeName","src":"7655:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":68,"mutability":"mutable","name":"_registry","nameLocation":"7687:9:0","nodeType":"VariableDeclaration","scope":101,"src":"7679:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":67,"name":"address","nodeType":"ElementaryTypeName","src":"7679:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":70,"mutability":"mutable","name":"_treasury","nameLocation":"7722:9:0","nodeType":"VariableDeclaration","scope":101,"src":"7706:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":69,"name":"address","nodeType":"ElementaryTypeName","src":"7706:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":72,"mutability":"mutable","name":"_percentFee","nameLocation":"7749:11:0","nodeType":"VariableDeclaration","scope":101,"src":"7741:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":71,"name":"uint256","nodeType":"ElementaryTypeName","src":"7741:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74,"mutability":"mutable","name":"_baseFee","nameLocation":"7778:8:0","nodeType":"VariableDeclaration","scope":101,"src":"7770:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73,"name":"uint256","nodeType":"ElementaryTypeName","src":"7770:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7645:147:0"},"returnParameters":{"id":79,"nodeType":"ParameterList","parameters":[],"src":"7819:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":112,"nodeType":"ModifierDefinition","src":"8573:100:0","nodes":[],"body":{"id":111,"nodeType":"Block","src":"8615:58:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":107,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":104,"src":"8647:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":106,"name":"_checkOnlyPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":693,"src":"8625:21:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":108,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8625:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":109,"nodeType":"ExpressionStatement","src":"8625:30:0"},{"id":110,"nodeType":"PlaceholderStatement","src":"8665:1:0"}]},"documentation":{"id":102,"nodeType":"StructuredDocumentation","src":"8463:105:0","text":"@notice Reverts UNAUTHORIZED() if the caller is not a pool manager\n @param _poolId The pool id"},"name":"onlyPoolManager","nameLocation":"8582:15:0","parameters":{"id":105,"nodeType":"ParameterList","parameters":[{"constant":false,"id":104,"mutability":"mutable","name":"_poolId","nameLocation":"8606:7:0","nodeType":"VariableDeclaration","scope":112,"src":"8598:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":103,"name":"uint256","nodeType":"ElementaryTypeName","src":"8598:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8597:17:0"},"virtual":false,"visibility":"internal"},{"id":123,"nodeType":"ModifierDefinition","src":"8787:96:0","nodes":[],"body":{"id":122,"nodeType":"Block","src":"8827:56:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":118,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":115,"src":"8857:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":117,"name":"_checkOnlyPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":710,"src":"8837:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$__$","typeString":"function (uint256) view"}},"id":119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8837:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":120,"nodeType":"ExpressionStatement","src":"8837:28:0"},{"id":121,"nodeType":"PlaceholderStatement","src":"8875:1:0"}]},"documentation":{"id":113,"nodeType":"StructuredDocumentation","src":"8679:103:0","text":"@notice Reverts UNAUTHORIZED() if the caller is not a pool admin\n @param _poolId The pool id"},"name":"onlyPoolAdmin","nameLocation":"8796:13:0","parameters":{"id":116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":115,"mutability":"mutable","name":"_poolId","nameLocation":"8818:7:0","nodeType":"VariableDeclaration","scope":123,"src":"8810:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":114,"name":"uint256","nodeType":"ElementaryTypeName","src":"8810:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8809:17:0"},"virtual":false,"visibility":"internal"},{"id":175,"nodeType":"FunctionDefinition","src":"10281:884:0","nodes":[],"body":{"id":174,"nodeType":"Block","src":"10582:583:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":145,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"10687:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10708:1:0","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":147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10700:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":146,"name":"address","nodeType":"ElementaryTypeName","src":"10700:7:0","typeDescriptions":{}}},"id":149,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10700:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10687:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":154,"nodeType":"IfStatement","src":"10683:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":151,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"10719:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":153,"nodeType":"RevertStatement","src":"10712:21:0"}},{"condition":{"arguments":[{"id":156,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"10919:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":155,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"10898:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10898:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":161,"nodeType":"IfStatement","src":"10894:66:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":158,"name":"IS_APPROVED_STRATEGY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3038,"src":"10938:20:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":159,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10938:22:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":160,"nodeType":"RevertStatement","src":"10931:29:0"}},{"expression":{"arguments":[{"id":163,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":126,"src":"11067:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":165,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":128,"src":"11089:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":164,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"11079:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$2969_$","typeString":"type(contract IStrategy)"}},"id":166,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11079:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":167,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":130,"src":"11101:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":168,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":132,"src":"11120:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":169,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":134,"src":"11128:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":170,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":137,"src":"11137:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":171,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":140,"src":"11148:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":162,"name":"_createPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"11055:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,contract IStrategy,bytes memory,address,uint256,struct Metadata memory,address[] memory) returns (uint256)"}},"id":172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11055:103:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":144,"id":173,"nodeType":"Return","src":"11048:110:0"}]},"documentation":{"id":124,"nodeType":"StructuredDocumentation","src":"9025:1251:0","text":"@notice Creates a new pool (with a custom strategy)\n @dev 'msg.sender' must be a member or owner of a profile to create a pool with or without a custom strategy, The encoded data\n will be specific to a given strategy requirements, reference the strategy implementation of 'initialize()'. The strategy\n address passed must not be a cloneable strategy. The strategy address passed must not be the zero address. 'msg.sender' must\n be a member or owner of the profile id passed as '_profileId'.\n @param _profileId The 'profileId' of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\n @param _strategy The address of the deployed custom strategy\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token you want to use in your pool\n @param _amount The amount of the token you want to deposit into the pool on initialization\n @param _metadata The 'Metadata' of the pool, this uses our 'Meatdata.sol' struct (consistent throughout the protocol)\n @param _managers The managers of the pool, and can be added/removed later by the pool admin\n @return poolId The ID of the pool"},"functionSelector":"e1007d4a","implemented":true,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"10290:28:0","parameters":{"id":141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":126,"mutability":"mutable","name":"_profileId","nameLocation":"10336:10:0","nodeType":"VariableDeclaration","scope":175,"src":"10328:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":125,"name":"bytes32","nodeType":"ElementaryTypeName","src":"10328:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":128,"mutability":"mutable","name":"_strategy","nameLocation":"10364:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10356:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":127,"name":"address","nodeType":"ElementaryTypeName","src":"10356:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":130,"mutability":"mutable","name":"_initStrategyData","nameLocation":"10396:17:0","nodeType":"VariableDeclaration","scope":175,"src":"10383:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":129,"name":"bytes","nodeType":"ElementaryTypeName","src":"10383:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":132,"mutability":"mutable","name":"_token","nameLocation":"10431:6:0","nodeType":"VariableDeclaration","scope":175,"src":"10423:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":131,"name":"address","nodeType":"ElementaryTypeName","src":"10423:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":134,"mutability":"mutable","name":"_amount","nameLocation":"10455:7:0","nodeType":"VariableDeclaration","scope":175,"src":"10447:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":133,"name":"uint256","nodeType":"ElementaryTypeName","src":"10447:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":137,"mutability":"mutable","name":"_metadata","nameLocation":"10488:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10472:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":136,"nodeType":"UserDefinedTypeName","pathNode":{"id":135,"name":"Metadata","nameLocations":["10472:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10472:8:0"},"referencedDeclaration":3098,"src":"10472:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":140,"mutability":"mutable","name":"_managers","nameLocation":"10524:9:0","nodeType":"VariableDeclaration","scope":175,"src":"10507:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":138,"name":"address","nodeType":"ElementaryTypeName","src":"10507:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":139,"nodeType":"ArrayTypeName","src":"10507:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"10318:221:0"},"returnParameters":{"id":144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":143,"mutability":"mutable","name":"poolId","nameLocation":"10574:6:0","nodeType":"VariableDeclaration","scope":175,"src":"10566:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":142,"name":"uint256","nodeType":"ElementaryTypeName","src":"10566:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10565:16:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":229,"nodeType":"FunctionDefinition","src":"11971:701:0","nodes":[],"body":{"id":228,"nodeType":"Block","src":"12267:405:0","nodes":[],"statements":[{"condition":{"id":202,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12281:32:0","subExpression":{"arguments":[{"id":200,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":180,"src":"12303:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":199,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"12282:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12282:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":207,"nodeType":"IfStatement","src":"12277:93:0","trueBody":{"id":206,"nodeType":"Block","src":"12315:55:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":203,"name":"NOT_APPROVED_STRATEGY","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3035,"src":"12336:21:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12336:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":205,"nodeType":"RevertStatement","src":"12329:30:0"}]}},{"expression":{"arguments":[{"id":209,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":178,"src":"12451:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":213,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":180,"src":"12503:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12514:21:0","subExpression":{"baseExpression":{"id":214,"name":"_nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52,"src":"12514:7:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":217,"indexExpression":{"expression":{"id":215,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12522:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12526:6:0","memberName":"sender","nodeType":"MemberAccess","src":"12522:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12514:19:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":211,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"12485:5:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12491:11:0","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"12485:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12485:51:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":210,"name":"IStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2969,"src":"12475:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IStrategy_$2969_$","typeString":"type(contract IStrategy)"}},"id":220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12475:62:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":221,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":182,"src":"12551:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":222,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":184,"src":"12582:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":223,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":186,"src":"12602:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":224,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":189,"src":"12623:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":225,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":192,"src":"12646:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":208,"name":"_createPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":925,"src":"12426:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,contract IStrategy,bytes memory,address,uint256,struct Metadata memory,address[] memory) returns (uint256)"}},"id":226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12426:239:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":198,"id":227,"nodeType":"Return","src":"12419:246:0"}]},"documentation":{"id":176,"nodeType":"StructuredDocumentation","src":"11171:795:0","text":"@notice Creates a new pool (by cloning a cloneable strategies).\n @dev 'msg.sender' must be owner or member of the profile id passed as '_profileId'.\n @param _profileId The ID of the registry profile, used to check if 'msg.sender' is a member or owner of the profile\n @param _strategy The address of the strategy contract the pool will use.\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token\n @param _amount The amount of the token\n @param _metadata The metadata of the pool\n @param _managers The managers of the pool\n @custom:initstrategydata The encoded data will be specific to a given strategy requirements,\n reference the strategy implementation of 'initialize()'"},"functionSelector":"77da8caf","implemented":true,"kind":"function","modifiers":[{"id":195,"kind":"modifierInvocation","modifierName":{"id":194,"name":"nonReentrant","nameLocations":["12229:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"12229:12:0"},"nodeType":"ModifierInvocation","src":"12229:12:0"}],"name":"createPool","nameLocation":"11980:10:0","parameters":{"id":193,"nodeType":"ParameterList","parameters":[{"constant":false,"id":178,"mutability":"mutable","name":"_profileId","nameLocation":"12008:10:0","nodeType":"VariableDeclaration","scope":229,"src":"12000:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12000:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":180,"mutability":"mutable","name":"_strategy","nameLocation":"12036:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12028:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":179,"name":"address","nodeType":"ElementaryTypeName","src":"12028:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":182,"mutability":"mutable","name":"_initStrategyData","nameLocation":"12068:17:0","nodeType":"VariableDeclaration","scope":229,"src":"12055:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":181,"name":"bytes","nodeType":"ElementaryTypeName","src":"12055:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":184,"mutability":"mutable","name":"_token","nameLocation":"12103:6:0","nodeType":"VariableDeclaration","scope":229,"src":"12095:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":183,"name":"address","nodeType":"ElementaryTypeName","src":"12095:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":186,"mutability":"mutable","name":"_amount","nameLocation":"12127:7:0","nodeType":"VariableDeclaration","scope":229,"src":"12119:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":185,"name":"uint256","nodeType":"ElementaryTypeName","src":"12119:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":189,"mutability":"mutable","name":"_metadata","nameLocation":"12160:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12144:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":188,"nodeType":"UserDefinedTypeName","pathNode":{"id":187,"name":"Metadata","nameLocations":["12144:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12144:8:0"},"referencedDeclaration":3098,"src":"12144:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":192,"mutability":"mutable","name":"_managers","nameLocation":"12196:9:0","nodeType":"VariableDeclaration","scope":229,"src":"12179:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":190,"name":"address","nodeType":"ElementaryTypeName","src":"12179:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":191,"nodeType":"ArrayTypeName","src":"12179:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"11990:221:0"},"returnParameters":{"id":198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":197,"mutability":"mutable","name":"poolId","nameLocation":"12259:6:0","nodeType":"VariableDeclaration","scope":229,"src":"12251:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":196,"name":"uint256","nodeType":"ElementaryTypeName","src":"12251:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12250:16:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":260,"nodeType":"FunctionDefinition","src":"12894:247:0","nodes":[],"body":{"id":259,"nodeType":"Block","src":"13000:141:0","nodes":[],"statements":[{"assignments":[243],"declarations":[{"constant":false,"id":243,"mutability":"mutable","name":"pool","nameLocation":"13023:4:0","nodeType":"VariableDeclaration","scope":259,"src":"13010:17:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":242,"nodeType":"UserDefinedTypeName","pathNode":{"id":241,"name":"Pool","nameLocations":["13010:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"13010:4:0"},"referencedDeclaration":2319,"src":"13010:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":247,"initialValue":{"baseExpression":{"id":244,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"13030:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":246,"indexExpression":{"id":245,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"13036:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13030:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13010:34:0"},{"expression":{"id":252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":248,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":243,"src":"13054:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool storage pointer"}},"id":250,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"13059:8:0","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2314,"src":"13054:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":251,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"13070:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"13054:25:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":253,"nodeType":"ExpressionStatement","src":"13054:25:0"},{"eventCall":{"arguments":[{"id":255,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"13115:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":256,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":235,"src":"13124:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":254,"name":"PoolMetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2344,"src":"13095:19:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,struct Metadata memory)"}},"id":257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13095:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":258,"nodeType":"EmitStatement","src":"13090:44:0"}]},"baseFunctions":[2413],"documentation":{"id":230,"nodeType":"StructuredDocumentation","src":"12678:211:0","text":"@notice Update pool metadata\n @dev 'msg.sender' must be a pool manager. Emits 'PoolMetadataUpdated()' event.\n @param _poolId ID of the pool\n @param _metadata The new metadata of the pool"},"functionSelector":"5f9ca138","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":238,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":232,"src":"12991:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":239,"kind":"modifierInvocation","modifierName":{"id":237,"name":"onlyPoolManager","nameLocations":["12975:15:0"],"nodeType":"IdentifierPath","referencedDeclaration":112,"src":"12975:15:0"},"nodeType":"ModifierInvocation","src":"12975:24:0"}],"name":"updatePoolMetadata","nameLocation":"12903:18:0","parameters":{"id":236,"nodeType":"ParameterList","parameters":[{"constant":false,"id":232,"mutability":"mutable","name":"_poolId","nameLocation":"12930:7:0","nodeType":"VariableDeclaration","scope":260,"src":"12922:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":231,"name":"uint256","nodeType":"ElementaryTypeName","src":"12922:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":235,"mutability":"mutable","name":"_metadata","nameLocation":"12955:9:0","nodeType":"VariableDeclaration","scope":260,"src":"12939:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":234,"nodeType":"UserDefinedTypeName","pathNode":{"id":233,"name":"Metadata","nameLocations":["12939:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12939:8:0"},"referencedDeclaration":3098,"src":"12939:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"12921:44:0"},"returnParameters":{"id":240,"nodeType":"ParameterList","parameters":[],"src":"13000:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":273,"nodeType":"FunctionDefinition","src":"13330:105:0","nodes":[],"body":{"id":272,"nodeType":"Block","src":"13392:43:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":269,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":263,"src":"13418:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":268,"name":"_updateRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1205,"src":"13402:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":270,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13402:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":271,"nodeType":"ExpressionStatement","src":"13402:26:0"}]},"baseFunctions":[2419],"documentation":{"id":261,"nodeType":"StructuredDocumentation","src":"13147:178:0","text":"@notice Updates the registry address.\n @dev Use this to update the registry address. 'msg.sender' must be Allo owner.\n @param _registry The new registry address"},"functionSelector":"1a5da6c8","implemented":true,"kind":"function","modifiers":[{"id":266,"kind":"modifierInvocation","modifierName":{"id":265,"name":"onlyOwner","nameLocations":["13382:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13382:9:0"},"nodeType":"ModifierInvocation","src":"13382:9:0"}],"name":"updateRegistry","nameLocation":"13339:14:0","parameters":{"id":264,"nodeType":"ParameterList","parameters":[{"constant":false,"id":263,"mutability":"mutable","name":"_registry","nameLocation":"13362:9:0","nodeType":"VariableDeclaration","scope":273,"src":"13354:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":262,"name":"address","nodeType":"ElementaryTypeName","src":"13354:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13353:19:0"},"returnParameters":{"id":267,"nodeType":"ParameterList","parameters":[],"src":"13392:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":286,"nodeType":"FunctionDefinition","src":"13624:113:0","nodes":[],"body":{"id":285,"nodeType":"Block","src":"13694:43:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":282,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":276,"src":"13720:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":281,"name":"_updateTreasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1230,"src":"13704:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_payable_$returns$__$","typeString":"function (address payable)"}},"id":283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13704:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":284,"nodeType":"ExpressionStatement","src":"13704:26:0"}]},"baseFunctions":[2425],"documentation":{"id":274,"nodeType":"StructuredDocumentation","src":"13441:178:0","text":"@notice Updates the treasury address.\n @dev Use this to update the treasury address. 'msg.sender' must be Allo owner.\n @param _treasury The new treasury address"},"functionSelector":"7f51bb1f","implemented":true,"kind":"function","modifiers":[{"id":279,"kind":"modifierInvocation","modifierName":{"id":278,"name":"onlyOwner","nameLocations":["13684:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13684:9:0"},"nodeType":"ModifierInvocation","src":"13684:9:0"}],"name":"updateTreasury","nameLocation":"13633:14:0","parameters":{"id":277,"nodeType":"ParameterList","parameters":[{"constant":false,"id":276,"mutability":"mutable","name":"_treasury","nameLocation":"13664:9:0","nodeType":"VariableDeclaration","scope":286,"src":"13648:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":275,"name":"address","nodeType":"ElementaryTypeName","src":"13648:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"13647:27:0"},"returnParameters":{"id":280,"nodeType":"ParameterList","parameters":[],"src":"13694:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":299,"nodeType":"FunctionDefinition","src":"13911:113:0","nodes":[],"body":{"id":298,"nodeType":"Block","src":"13977:47:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":295,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":289,"src":"14005:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":294,"name":"_updatePercentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1252,"src":"13987:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13987:30:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":297,"nodeType":"ExpressionStatement","src":"13987:30:0"}]},"baseFunctions":[2431],"documentation":{"id":287,"nodeType":"StructuredDocumentation","src":"13743:163:0","text":"@notice Updates the fee percentage.\n @dev Use this to update the fee percentage. 'msg.sender' must be Allo owner.\n @param _percentFee The new fee"},"functionSelector":"f54fc4a0","implemented":true,"kind":"function","modifiers":[{"id":292,"kind":"modifierInvocation","modifierName":{"id":291,"name":"onlyOwner","nameLocations":["13967:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"13967:9:0"},"nodeType":"ModifierInvocation","src":"13967:9:0"}],"name":"updatePercentFee","nameLocation":"13920:16:0","parameters":{"id":290,"nodeType":"ParameterList","parameters":[{"constant":false,"id":289,"mutability":"mutable","name":"_percentFee","nameLocation":"13945:11:0","nodeType":"VariableDeclaration","scope":299,"src":"13937:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":288,"name":"uint256","nodeType":"ElementaryTypeName","src":"13937:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13936:21:0"},"returnParameters":{"id":293,"nodeType":"ParameterList","parameters":[],"src":"13977:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":312,"nodeType":"FunctionDefinition","src":"14188:101:0","nodes":[],"body":{"id":311,"nodeType":"Block","src":"14248:41:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":308,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":302,"src":"14273:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":307,"name":"_updateBaseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1267,"src":"14258:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14258:24:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":310,"nodeType":"ExpressionStatement","src":"14258:24:0"}]},"baseFunctions":[2437],"documentation":{"id":300,"nodeType":"StructuredDocumentation","src":"14030:153:0","text":"@notice Updates the base fee.\n @dev Use this to update the base fee. 'msg.sender' must be Allo owner.\n @param _baseFee The new base fee"},"functionSelector":"8e690186","implemented":true,"kind":"function","modifiers":[{"id":305,"kind":"modifierInvocation","modifierName":{"id":304,"name":"onlyOwner","nameLocations":["14238:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14238:9:0"},"nodeType":"ModifierInvocation","src":"14238:9:0"}],"name":"updateBaseFee","nameLocation":"14197:13:0","parameters":{"id":303,"nodeType":"ParameterList","parameters":[{"constant":false,"id":302,"mutability":"mutable","name":"_baseFee","nameLocation":"14219:8:0","nodeType":"VariableDeclaration","scope":312,"src":"14211:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":301,"name":"uint256","nodeType":"ElementaryTypeName","src":"14211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14210:18:0"},"returnParameters":{"id":306,"nodeType":"ParameterList","parameters":[],"src":"14248:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":341,"nodeType":"FunctionDefinition","src":"14481:229:0","nodes":[],"body":{"id":340,"nodeType":"Block","src":"14553:157:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":320,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14567:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":323,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14588:1:0","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":322,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14580:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":321,"name":"address","nodeType":"ElementaryTypeName","src":"14580:7:0","typeDescriptions":{}}},"id":324,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14580:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14567:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":329,"nodeType":"IfStatement","src":"14563:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":326,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"14599:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":327,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14599:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":328,"nodeType":"RevertStatement","src":"14592:21:0"}},{"expression":{"id":334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":330,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"14624:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":332,"indexExpression":{"id":331,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14644:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14624:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":333,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14657:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"14624:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":335,"nodeType":"ExpressionStatement","src":"14624:37:0"},{"eventCall":{"arguments":[{"id":337,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":315,"src":"14693:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":336,"name":"StrategyApproved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2385,"src":"14676:16:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14676:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":339,"nodeType":"EmitStatement","src":"14671:32:0"}]},"baseFunctions":[2443],"documentation":{"id":313,"nodeType":"StructuredDocumentation","src":"14295:181:0","text":"@notice Add a strategy to the allowlist.\n @dev Emits the 'StrategyApproved()' event. 'msg.sender' must be Allo owner.\n @param _strategy The address of the strategy"},"functionSelector":"41bba0b4","implemented":true,"kind":"function","modifiers":[{"id":318,"kind":"modifierInvocation","modifierName":{"id":317,"name":"onlyOwner","nameLocations":["14543:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14543:9:0"},"nodeType":"ModifierInvocation","src":"14543:9:0"}],"name":"addToCloneableStrategies","nameLocation":"14490:24:0","parameters":{"id":316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":315,"mutability":"mutable","name":"_strategy","nameLocation":"14523:9:0","nodeType":"VariableDeclaration","scope":341,"src":"14515:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":314,"name":"address","nodeType":"ElementaryTypeName","src":"14515:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14514:19:0"},"returnParameters":{"id":319,"nodeType":"ParameterList","parameters":[],"src":"14553:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":360,"nodeType":"FunctionDefinition","src":"14900:288:0","nodes":[],"body":{"id":359,"nodeType":"Block","src":"14977:211:0","nodes":[],"statements":[{"expression":{"id":353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":349,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"15059:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":351,"indexExpression":{"id":350,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"15079:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15059:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"15092:5:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"15059:38:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":354,"nodeType":"ExpressionStatement","src":"15059:38:0"},{"eventCall":{"arguments":[{"id":356,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":344,"src":"15171:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":355,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2390,"src":"15155:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15155:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":358,"nodeType":"EmitStatement","src":"15150:31:0"}]},"baseFunctions":[2449],"documentation":{"id":342,"nodeType":"StructuredDocumentation","src":"14716:179:0","text":"@notice Remove a strategy from the allowlist\n @dev Emits 'StrategyRemoved()' event. 'msg.sender must be Allo owner.\n @param _strategy The address of the strategy"},"functionSelector":"031e2fa1","implemented":true,"kind":"function","modifiers":[{"id":347,"kind":"modifierInvocation","modifierName":{"id":346,"name":"onlyOwner","nameLocations":["14967:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"14967:9:0"},"nodeType":"ModifierInvocation","src":"14967:9:0"}],"name":"removeFromCloneableStrategies","nameLocation":"14909:29:0","parameters":{"id":345,"nodeType":"ParameterList","parameters":[{"constant":false,"id":344,"mutability":"mutable","name":"_strategy","nameLocation":"14947:9:0","nodeType":"VariableDeclaration","scope":360,"src":"14939:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":343,"name":"address","nodeType":"ElementaryTypeName","src":"14939:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14938:19:0"},"returnParameters":{"id":348,"nodeType":"ParameterList","parameters":[],"src":"14977:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":390,"nodeType":"FunctionDefinition","src":"15387:358:0","nodes":[],"body":{"id":389,"nodeType":"Block","src":"15478:267:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":371,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"15568:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15588:1:0","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":373,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15580:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":372,"name":"address","nodeType":"ElementaryTypeName","src":"15580:7:0","typeDescriptions":{}}},"id":375,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15580:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15568:22:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":380,"nodeType":"IfStatement","src":"15564:49:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":377,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"15599:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15599:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":379,"nodeType":"RevertStatement","src":"15592:21:0"}},{"expression":{"arguments":[{"expression":{"baseExpression":{"id":382,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"15701:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":384,"indexExpression":{"id":383,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"15707:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15701:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15716:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"15701:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":386,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":365,"src":"15729:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":381,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"15690:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15690:48:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":388,"nodeType":"ExpressionStatement","src":"15690:48:0"}]},"baseFunctions":[2457],"documentation":{"id":361,"nodeType":"StructuredDocumentation","src":"15194:188:0","text":"@notice Add a pool manager\n @dev Emits 'RoleGranted()' event. 'msg.sender' must be a pool admin.\n @param _poolId ID of the pool\n @param _manager The address to add"},"functionSelector":"2cf682b0","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":368,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":363,"src":"15469:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":369,"kind":"modifierInvocation","modifierName":{"id":367,"name":"onlyPoolAdmin","nameLocations":["15455:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":123,"src":"15455:13:0"},"nodeType":"ModifierInvocation","src":"15455:22:0"}],"name":"addPoolManager","nameLocation":"15396:14:0","parameters":{"id":366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":363,"mutability":"mutable","name":"_poolId","nameLocation":"15419:7:0","nodeType":"VariableDeclaration","scope":390,"src":"15411:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":362,"name":"uint256","nodeType":"ElementaryTypeName","src":"15411:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":365,"mutability":"mutable","name":"_manager","nameLocation":"15436:8:0","nodeType":"VariableDeclaration","scope":390,"src":"15428:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":364,"name":"address","nodeType":"ElementaryTypeName","src":"15428:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15410:35:0"},"returnParameters":{"id":370,"nodeType":"ParameterList","parameters":[],"src":"15478:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":410,"nodeType":"FunctionDefinition","src":"15950:160:0","nodes":[],"body":{"id":409,"nodeType":"Block","src":"16044:66:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":402,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"16066:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":404,"indexExpression":{"id":403,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"16072:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16066:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":405,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16081:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"16066:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":406,"name":"_manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":395,"src":"16094:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":401,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"16054:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":407,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16054:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":408,"nodeType":"ExpressionStatement","src":"16054:49:0"}]},"baseFunctions":[2465],"documentation":{"id":391,"nodeType":"StructuredDocumentation","src":"15751:194:0","text":"@notice Remove a pool manager\n @dev Emits 'RoleRevoked()' event. 'msg.sender' must be a pool admin.\n @param _poolId ID of the pool\n @param _manager The address to remove"},"functionSelector":"7f5a70bd","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":398,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":393,"src":"16035:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":399,"kind":"modifierInvocation","modifierName":{"id":397,"name":"onlyPoolAdmin","nameLocations":["16021:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":123,"src":"16021:13:0"},"nodeType":"ModifierInvocation","src":"16021:22:0"}],"name":"removePoolManager","nameLocation":"15959:17:0","parameters":{"id":396,"nodeType":"ParameterList","parameters":[{"constant":false,"id":393,"mutability":"mutable","name":"_poolId","nameLocation":"15985:7:0","nodeType":"VariableDeclaration","scope":410,"src":"15977:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":392,"name":"uint256","nodeType":"ElementaryTypeName","src":"15977:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":395,"mutability":"mutable","name":"_manager","nameLocation":"16002:8:0","nodeType":"VariableDeclaration","scope":410,"src":"15994:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":394,"name":"address","nodeType":"ElementaryTypeName","src":"15994:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15976:35:0"},"returnParameters":{"id":400,"nodeType":"ParameterList","parameters":[],"src":"16044:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":448,"nodeType":"FunctionDefinition","src":"16308:430:0","nodes":[],"body":{"id":447,"nodeType":"Block","src":"16385:353:0","nodes":[],"statements":[{"assignments":[421],"declarations":[{"constant":false,"id":421,"mutability":"mutable","name":"amount","nameLocation":"16514:6:0","nodeType":"VariableDeclaration","scope":447,"src":"16506:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":420,"name":"uint256","nodeType":"ElementaryTypeName","src":"16506:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":440,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":422,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16523:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":423,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"16533:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16523:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":436,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16610:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16602:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":434,"name":"address","nodeType":"ElementaryTypeName","src":"16602:7:0","typeDescriptions":{}}},"id":437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16602:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":431,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16584:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":430,"name":"IERC20Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53354,"src":"16566:17:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IERC20Upgradeable_$53354_$","typeString":"type(contract IERC20Upgradeable)"}},"id":432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16566:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Upgradeable_$53354","typeString":"contract IERC20Upgradeable"}},"id":433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16592:9:0","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":53311,"src":"16566:35:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16566:50:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"16523:93:0","trueExpression":{"expression":{"arguments":[{"id":427,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16550:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":426,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16542:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":425,"name":"address","nodeType":"ElementaryTypeName","src":"16542:7:0","typeDescriptions":{}}},"id":428,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16542:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16556:7:0","memberName":"balance","nodeType":"MemberAccess","src":"16542:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16506:110:0"},{"expression":{"arguments":[{"id":442,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":413,"src":"16704:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":443,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":415,"src":"16712:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":444,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":421,"src":"16724:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":441,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"16688:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":445,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16688:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":446,"nodeType":"ExpressionStatement","src":"16688:43:0"}]},"baseFunctions":[2473],"documentation":{"id":411,"nodeType":"StructuredDocumentation","src":"16116:187:0","text":"@notice Transfer the funds recovered to the recipient\n @dev 'msg.sender' must be Allo owner\n @param _token The token to transfer\n @param _recipient The recipient"},"functionSelector":"24ae6a27","implemented":true,"kind":"function","modifiers":[{"id":418,"kind":"modifierInvocation","modifierName":{"id":417,"name":"onlyOwner","nameLocations":["16375:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":4094,"src":"16375:9:0"},"nodeType":"ModifierInvocation","src":"16375:9:0"}],"name":"recoverFunds","nameLocation":"16317:12:0","parameters":{"id":416,"nodeType":"ParameterList","parameters":[{"constant":false,"id":413,"mutability":"mutable","name":"_token","nameLocation":"16338:6:0","nodeType":"VariableDeclaration","scope":448,"src":"16330:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":412,"name":"address","nodeType":"ElementaryTypeName","src":"16330:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":415,"mutability":"mutable","name":"_recipient","nameLocation":"16354:10:0","nodeType":"VariableDeclaration","scope":448,"src":"16346:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":414,"name":"address","nodeType":"ElementaryTypeName","src":"16346:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16329:36:0"},"returnParameters":{"id":419,"nodeType":"ParameterList","parameters":[],"src":"16385:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":474,"nodeType":"FunctionDefinition","src":"17298:276:0","nodes":[],"body":{"id":473,"nodeType":"Block","src":"17410:164:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":468,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":453,"src":"17549:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":469,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17556:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17560:6:0","memberName":"sender","nodeType":"MemberAccess","src":"17556:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":460,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"17489:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":462,"indexExpression":{"id":461,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":451,"src":"17495:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17489:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":463,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17504:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17489:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17513:17:0","memberName":"registerRecipient","nodeType":"MemberAccess","referencedDeclaration":2949,"src":"17489:41:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":465,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17538:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17542:5:0","memberName":"value","nodeType":"MemberAccess","src":"17538:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"17489:59:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$value","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17489:78:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":459,"id":472,"nodeType":"Return","src":"17482:85:0"}]},"baseFunctions":[2483],"documentation":{"id":449,"nodeType":"StructuredDocumentation","src":"16877:416:0","text":"@notice Passes _data through to the strategy for that pool.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of registerRecipient().\n @param _poolId ID of the pool\n @param _data Encoded data unique to a strategy that registerRecipient() requires\n @return recipientId The recipient ID that has been registered"},"functionSelector":"075c0e9c","implemented":true,"kind":"function","modifiers":[{"id":456,"kind":"modifierInvocation","modifierName":{"id":455,"name":"nonReentrant","nameLocations":["17379:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"17379:12:0"},"nodeType":"ModifierInvocation","src":"17379:12:0"}],"name":"registerRecipient","nameLocation":"17307:17:0","parameters":{"id":454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":451,"mutability":"mutable","name":"_poolId","nameLocation":"17333:7:0","nodeType":"VariableDeclaration","scope":474,"src":"17325:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":450,"name":"uint256","nodeType":"ElementaryTypeName","src":"17325:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":453,"mutability":"mutable","name":"_data","nameLocation":"17355:5:0","nodeType":"VariableDeclaration","scope":474,"src":"17342:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":452,"name":"bytes","nodeType":"ElementaryTypeName","src":"17342:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"17324:37:0"},"returnParameters":{"id":459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":458,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":474,"src":"17401:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":457,"name":"address","nodeType":"ElementaryTypeName","src":"17401:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17400:9:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":543,"nodeType":"FunctionDefinition","src":"18212:747:0","nodes":[],"body":{"id":542,"nodeType":"Block","src":"18383:576:0","nodes":[],"statements":[{"assignments":[490],"declarations":[{"constant":false,"id":490,"mutability":"mutable","name":"poolIdLength","nameLocation":"18401:12:0","nodeType":"VariableDeclaration","scope":542,"src":"18393:20:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":489,"name":"uint256","nodeType":"ElementaryTypeName","src":"18393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":493,"initialValue":{"expression":{"id":491,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"18416:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":492,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18425:6:0","memberName":"length","nodeType":"MemberAccess","src":"18416:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18393:38:0"},{"expression":{"id":500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":494,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18441:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":498,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18470:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":497,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"18456:13:0","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":495,"name":"address","nodeType":"ElementaryTypeName","src":"18460:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":496,"nodeType":"ArrayTypeName","src":"18460:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18456:27:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"18441:42:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":501,"nodeType":"ExpressionStatement","src":"18441:42:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":502,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18498:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":503,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18514:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18520:6:0","memberName":"length","nodeType":"MemberAccess","src":"18514:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18498:28:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":509,"nodeType":"IfStatement","src":"18494:51:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":506,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"18535:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18535:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":508,"nodeType":"RevertStatement","src":"18528:17:0"}},{"body":{"id":538,"nodeType":"Block","src":"18693:169:0","statements":[{"expression":{"id":532,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":516,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18707:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":518,"indexExpression":{"id":517,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18720:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18707:15:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":526,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":481,"src":"18771:5:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":528,"indexExpression":{"id":527,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18777:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18771:8:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":529,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18781:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18785:6:0","memberName":"sender","nodeType":"MemberAccess","src":"18781:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":519,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"18725:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":523,"indexExpression":{"baseExpression":{"id":520,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":478,"src":"18731:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":522,"indexExpression":{"id":521,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18740:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18731:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18725:18:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":524,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18744:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"18725:27:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18753:17:0","memberName":"registerRecipient","nodeType":"MemberAccess","referencedDeclaration":2949,"src":"18725:45:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$_t_address_$","typeString":"function (bytes memory,address) payable external returns (address)"}},"id":531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18725:67:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18707:85:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":533,"nodeType":"ExpressionStatement","src":"18707:85:0"},{"id":537,"nodeType":"UncheckedBlock","src":"18806:46:0","statements":[{"expression":{"id":535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"18834:3:0","subExpression":{"id":534,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18836:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":536,"nodeType":"ExpressionStatement","src":"18834:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":513,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":511,"src":"18674:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":514,"name":"poolIdLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":490,"src":"18678:12:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18674:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":539,"initializationExpression":{"assignments":[511],"declarations":[{"constant":false,"id":511,"mutability":"mutable","name":"i","nameLocation":"18671:1:0","nodeType":"VariableDeclaration","scope":539,"src":"18663:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":510,"name":"uint256","nodeType":"ElementaryTypeName","src":"18663:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":512,"nodeType":"VariableDeclarationStatement","src":"18663:9:0"},"nodeType":"ForStatement","src":"18658:204:0"},{"expression":{"id":540,"name":"recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":487,"src":"18940:12:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"functionReturnParameters":488,"id":541,"nodeType":"Return","src":"18933:19:0"}]},"baseFunctions":[2496],"documentation":{"id":475,"nodeType":"StructuredDocumentation","src":"17580:627:0","text":"@notice Register multiple recipients to multiple pools.\n @dev Returns the 'recipientIds' from the strategy that have been registered from calling this function.\n Encoded data unique to a strategy that registerRecipient() requires. Encoded '_data' length must match\n '_poolIds' length or this will revert with MISMATCH(). Other requirements will be determined by the strategy.\n @param _poolIds ID's of the pools\n @param _data An array of encoded data unique to a strategy that registerRecipient() requires.\n @return recipientIds The recipient IDs that have been registered"},"functionSelector":"1a20bd88","implemented":true,"kind":"function","modifiers":[{"id":484,"kind":"modifierInvocation","modifierName":{"id":483,"name":"nonReentrant","nameLocations":["18318:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"18318:12:0"},"nodeType":"ModifierInvocation","src":"18318:12:0"}],"name":"batchRegisterRecipient","nameLocation":"18221:22:0","parameters":{"id":482,"nodeType":"ParameterList","parameters":[{"constant":false,"id":478,"mutability":"mutable","name":"_poolIds","nameLocation":"18261:8:0","nodeType":"VariableDeclaration","scope":543,"src":"18244:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":476,"name":"uint256","nodeType":"ElementaryTypeName","src":"18244:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":477,"nodeType":"ArrayTypeName","src":"18244:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":481,"mutability":"mutable","name":"_data","nameLocation":"18286:5:0","nodeType":"VariableDeclaration","scope":543,"src":"18271:20:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":479,"name":"bytes","nodeType":"ElementaryTypeName","src":"18271:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":480,"nodeType":"ArrayTypeName","src":"18271:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"18243:49:0"},"returnParameters":{"id":488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":487,"mutability":"mutable","name":"recipientIds","nameLocation":"18365:12:0","nodeType":"VariableDeclaration","scope":543,"src":"18348:29:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":485,"name":"address","nodeType":"ElementaryTypeName","src":"18348:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":486,"nodeType":"ArrayTypeName","src":"18348:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"18347:31:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":588,"nodeType":"FunctionDefinition","src":"19156:439:0","nodes":[],"body":{"id":587,"nodeType":"Block","src":"19238:357:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":553,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19318:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":554,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19329:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19318:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":559,"nodeType":"IfStatement","src":"19314:43:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":556,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"19339:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":557,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19339:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":558,"nodeType":"RevertStatement","src":"19332:25:0"}},{"assignments":[562],"declarations":[{"constant":false,"id":562,"mutability":"mutable","name":"pool","nameLocation":"19380:4:0","nodeType":"VariableDeclaration","scope":587,"src":"19368:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":561,"nodeType":"UserDefinedTypeName","pathNode":{"id":560,"name":"Pool","nameLocations":["19368:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"19368:4:0"},"referencedDeclaration":2319,"src":"19368:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":566,"initialValue":{"baseExpression":{"id":563,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"19387:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":565,"indexExpression":{"id":564,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"19393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19387:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19368:33:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":567,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"19415:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":568,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19420:5:0","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"19415:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":569,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"19429:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19415:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":574,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":571,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19439:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":572,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19450:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":573,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19454:5:0","memberName":"value","nodeType":"MemberAccess","src":"19450:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19439:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19415:44:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":579,"nodeType":"IfStatement","src":"19411:75:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":576,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"19468:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19468:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":578,"nodeType":"RevertStatement","src":"19461:25:0"}},{"expression":{"arguments":[{"id":581,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":548,"src":"19556:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":582,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":546,"src":"19565:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":583,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":562,"src":"19574:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19579:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"19574:13:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":580,"name":"_fundPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"19546:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IStrategy_$2969_$returns$__$","typeString":"function (uint256,uint256,contract IStrategy)"}},"id":585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19546:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":586,"nodeType":"ExpressionStatement","src":"19546:42:0"}]},"baseFunctions":[2504],"documentation":{"id":544,"nodeType":"StructuredDocumentation","src":"18965:186:0","text":"@notice Fund a pool.\n @dev Anyone can fund a pool and call this function.\n @param _poolId ID of the pool\n @param _amount The amount to be deposited into the pool"},"functionSelector":"5acd6fac","implemented":true,"kind":"function","modifiers":[{"id":551,"kind":"modifierInvocation","modifierName":{"id":550,"name":"nonReentrant","nameLocations":["19225:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"19225:12:0"},"nodeType":"ModifierInvocation","src":"19225:12:0"}],"name":"fundPool","nameLocation":"19165:8:0","parameters":{"id":549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":546,"mutability":"mutable","name":"_poolId","nameLocation":"19182:7:0","nodeType":"VariableDeclaration","scope":588,"src":"19174:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":545,"name":"uint256","nodeType":"ElementaryTypeName","src":"19174:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":548,"mutability":"mutable","name":"_amount","nameLocation":"19199:7:0","nodeType":"VariableDeclaration","scope":588,"src":"19191:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":547,"name":"uint256","nodeType":"ElementaryTypeName","src":"19191:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"19173:34:0"},"returnParameters":{"id":552,"nodeType":"ParameterList","parameters":[],"src":"19238:0:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":604,"nodeType":"FunctionDefinition","src":"19921:127:0","nodes":[],"body":{"id":603,"nodeType":"Block","src":"20006:42:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":599,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":591,"src":"20026:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":600,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":593,"src":"20035:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":598,"name":"_allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"20016:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20016:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":602,"nodeType":"ExpressionStatement","src":"20016:25:0"}]},"baseFunctions":[2512],"documentation":{"id":589,"nodeType":"StructuredDocumentation","src":"19601:315:0","text":"@notice Allocate to a recipient or multiple recipients.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of allocate().\n @param _poolId ID of the pool\n @param _data Encoded data unique to the strategy for that pool"},"functionSelector":"2ec38188","implemented":true,"kind":"function","modifiers":[{"id":596,"kind":"modifierInvocation","modifierName":{"id":595,"name":"nonReentrant","nameLocations":["19993:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"19993:12:0"},"nodeType":"ModifierInvocation","src":"19993:12:0"}],"name":"allocate","nameLocation":"19930:8:0","parameters":{"id":594,"nodeType":"ParameterList","parameters":[{"constant":false,"id":591,"mutability":"mutable","name":"_poolId","nameLocation":"19947:7:0","nodeType":"VariableDeclaration","scope":604,"src":"19939:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":590,"name":"uint256","nodeType":"ElementaryTypeName","src":"19939:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":593,"mutability":"mutable","name":"_data","nameLocation":"19969:5:0","nodeType":"VariableDeclaration","scope":604,"src":"19956:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":592,"name":"bytes","nodeType":"ElementaryTypeName","src":"19956:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"19938:37:0"},"returnParameters":{"id":597,"nodeType":"ParameterList","parameters":[],"src":"20006:0:0"},"scope":1390,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":651,"nodeType":"FunctionDefinition","src":"20511:559:0","nodes":[],"body":{"id":650,"nodeType":"Block","src":"20608:462:0","nodes":[],"statements":[{"assignments":[617],"declarations":[{"constant":false,"id":617,"mutability":"mutable","name":"numPools","nameLocation":"20626:8:0","nodeType":"VariableDeclaration","scope":650,"src":"20618:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":616,"name":"uint256","nodeType":"ElementaryTypeName","src":"20618:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":620,"initialValue":{"expression":{"id":618,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"20637:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20646:6:0","memberName":"length","nodeType":"MemberAccess","src":"20637:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20618:34:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":621,"name":"numPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"20772:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":622,"name":"_datas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"20784:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20791:6:0","memberName":"length","nodeType":"MemberAccess","src":"20784:13:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20772:25:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":628,"nodeType":"IfStatement","src":"20768:48:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":625,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"20806:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20806:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":627,"nodeType":"RevertStatement","src":"20799:17:0"}},{"body":{"id":648,"nodeType":"Block","src":"20947:117:0","statements":[{"expression":{"arguments":[{"baseExpression":{"id":636,"name":"_poolIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":608,"src":"20971:8:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[] calldata"}},"id":638,"indexExpression":{"id":637,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20980:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20971:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"id":639,"name":"_datas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":611,"src":"20984:6:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes memory[] memory"}},"id":641,"indexExpression":{"id":640,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20991:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20984:9:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":635,"name":"_allocate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":947,"src":"20961:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory)"}},"id":642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20961:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":643,"nodeType":"ExpressionStatement","src":"20961:33:0"},{"id":647,"nodeType":"UncheckedBlock","src":"21008:46:0","statements":[{"expression":{"id":645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"21036:3:0","subExpression":{"id":644,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"21038:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":646,"nodeType":"ExpressionStatement","src":"21036:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":632,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":630,"src":"20932:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":633,"name":"numPools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":617,"src":"20936:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20932:12:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":649,"initializationExpression":{"assignments":[630],"declarations":[{"constant":false,"id":630,"mutability":"mutable","name":"i","nameLocation":"20929:1:0","nodeType":"VariableDeclaration","scope":649,"src":"20921:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":629,"name":"uint256","nodeType":"ElementaryTypeName","src":"20921:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":631,"nodeType":"VariableDeclarationStatement","src":"20921:9:0"},"nodeType":"ForStatement","src":"20916:148:0"}]},"baseFunctions":[2522],"documentation":{"id":605,"nodeType":"StructuredDocumentation","src":"20054:452:0","text":"@notice Allocate to multiple pools\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of allocate(). Please note that this is not a 'payable' function, so if you\n want to send funds to the strategy, you must send the funds using 'fundPool()'.\n @param _poolIds IDs of the pools\n @param _datas encoded data unique to the strategy for that pool"},"functionSelector":"c6dff1cf","implemented":true,"kind":"function","modifiers":[{"id":614,"kind":"modifierInvocation","modifierName":{"id":613,"name":"nonReentrant","nameLocations":["20595:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"20595:12:0"},"nodeType":"ModifierInvocation","src":"20595:12:0"}],"name":"batchAllocate","nameLocation":"20520:13:0","parameters":{"id":612,"nodeType":"ParameterList","parameters":[{"constant":false,"id":608,"mutability":"mutable","name":"_poolIds","nameLocation":"20553:8:0","nodeType":"VariableDeclaration","scope":651,"src":"20534:27:0","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_calldata_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":606,"name":"uint256","nodeType":"ElementaryTypeName","src":"20534:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":607,"nodeType":"ArrayTypeName","src":"20534:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"},{"constant":false,"id":611,"mutability":"mutable","name":"_datas","nameLocation":"20578:6:0","nodeType":"VariableDeclaration","scope":651,"src":"20563:21:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":609,"name":"bytes","nodeType":"ElementaryTypeName","src":"20563:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":610,"nodeType":"ArrayTypeName","src":"20563:7:0","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"20533:52:0"},"returnParameters":{"id":615,"nodeType":"ParameterList","parameters":[],"src":"20608:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":676,"nodeType":"FunctionDefinition","src":"21468:196:0","nodes":[],"body":{"id":675,"nodeType":"Block","src":"21579:85:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":669,"name":"_recipientIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":657,"src":"21624:13:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},{"id":670,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":659,"src":"21639:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":671,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21646:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21650:6:0","memberName":"sender","nodeType":"MemberAccess","src":"21646:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":664,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"21589:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":666,"indexExpression":{"id":665,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":654,"src":"21595:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21589:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":667,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21604:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"21589:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21613:10:0","memberName":"distribute","nodeType":"MemberAccess","referencedDeclaration":2968,"src":"21589:34:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (address[] memory,bytes memory,address) external"}},"id":673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21589:68:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":674,"nodeType":"ExpressionStatement","src":"21589:68:0"}]},"baseFunctions":[2533],"documentation":{"id":652,"nodeType":"StructuredDocumentation","src":"21076:387:0","text":"@notice Distribute to a recipient or multiple recipients.\n @dev The encoded data will be specific to a given strategy requirements, reference the strategy\n implementation of 'strategy.distribute()'.\n @param _poolId ID of the pool\n @param _recipientIds Ids of the recipients of the distribution\n @param _data Encoded data unique to the strategy"},"functionSelector":"3a5fbd92","implemented":true,"kind":"function","modifiers":[{"id":662,"kind":"modifierInvocation","modifierName":{"id":661,"name":"nonReentrant","nameLocations":["21566:12:0"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"21566:12:0"},"nodeType":"ModifierInvocation","src":"21566:12:0"}],"name":"distribute","nameLocation":"21477:10:0","parameters":{"id":660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":654,"mutability":"mutable","name":"_poolId","nameLocation":"21496:7:0","nodeType":"VariableDeclaration","scope":676,"src":"21488:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":653,"name":"uint256","nodeType":"ElementaryTypeName","src":"21488:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":657,"mutability":"mutable","name":"_recipientIds","nameLocation":"21522:13:0","nodeType":"VariableDeclaration","scope":676,"src":"21505:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":655,"name":"address","nodeType":"ElementaryTypeName","src":"21505:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":656,"nodeType":"ArrayTypeName","src":"21505:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":659,"mutability":"mutable","name":"_data","nameLocation":"21550:5:0","nodeType":"VariableDeclaration","scope":676,"src":"21537:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":658,"name":"bytes","nodeType":"ElementaryTypeName","src":"21537:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"21487:69:0"},"returnParameters":{"id":663,"nodeType":"ParameterList","parameters":[],"src":"21579:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":693,"nodeType":"FunctionDefinition","src":"21910:142:0","nodes":[],"body":{"id":692,"nodeType":"Block","src":"21972:80:0","nodes":[],"statements":[{"condition":{"id":687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"21986:36:0","subExpression":{"arguments":[{"id":683,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":679,"src":"22002:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":684,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22011:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22015:6:0","memberName":"sender","nodeType":"MemberAccess","src":"22011:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":682,"name":"_isPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"21987:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":686,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21987:35:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":691,"nodeType":"IfStatement","src":"21982:63:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":688,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"22031:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":689,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22031:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":690,"nodeType":"RevertStatement","src":"22024:21:0"}}]},"documentation":{"id":677,"nodeType":"StructuredDocumentation","src":"21806:99:0","text":"@notice Internal function to check is caller is pool manager\n @param _poolId The pool id"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyPoolManager","nameLocation":"21919:21:0","parameters":{"id":680,"nodeType":"ParameterList","parameters":[{"constant":false,"id":679,"mutability":"mutable","name":"_poolId","nameLocation":"21949:7:0","nodeType":"VariableDeclaration","scope":693,"src":"21941:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":678,"name":"uint256","nodeType":"ElementaryTypeName","src":"21941:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21940:17:0"},"returnParameters":{"id":681,"nodeType":"ParameterList","parameters":[],"src":"21972:0:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":710,"nodeType":"FunctionDefinition","src":"22160:138:0","nodes":[],"body":{"id":709,"nodeType":"Block","src":"22220:78:0","nodes":[],"statements":[{"condition":{"id":704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22234:34:0","subExpression":{"arguments":[{"id":700,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":696,"src":"22248:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":701,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"22257:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":702,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22261:6:0","memberName":"sender","nodeType":"MemberAccess","src":"22257:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":699,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"22235:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22235:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":708,"nodeType":"IfStatement","src":"22230:61:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":705,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"22277:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22277:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":707,"nodeType":"RevertStatement","src":"22270:21:0"}}]},"documentation":{"id":694,"nodeType":"StructuredDocumentation","src":"22058:97:0","text":"@notice Internal function to check is caller is pool admin\n @param _poolId The pool id"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyPoolAdmin","nameLocation":"22169:19:0","parameters":{"id":697,"nodeType":"ParameterList","parameters":[{"constant":false,"id":696,"mutability":"mutable","name":"_poolId","nameLocation":"22197:7:0","nodeType":"VariableDeclaration","scope":710,"src":"22189:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":695,"name":"uint256","nodeType":"ElementaryTypeName","src":"22189:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22188:17:0"},"returnParameters":{"id":698,"nodeType":"ParameterList","parameters":[],"src":"22220:0:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":925,"nodeType":"FunctionDefinition","src":"23131:2681:0","nodes":[],"body":{"id":924,"nodeType":"Block","src":"23409:2403:0","nodes":[],"statements":[{"condition":{"id":739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"23423:58:0","subExpression":{"arguments":[{"id":735,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"23458:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":736,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23470:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23474:6:0","memberName":"sender","nodeType":"MemberAccess","src":"23470:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":733,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"23424:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23433:24:0","memberName":"isOwnerOrMemberOfProfile","nodeType":"MemberAccess","referencedDeclaration":2704,"src":"23424:33:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view external returns (bool)"}},"id":738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23424:57:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":743,"nodeType":"IfStatement","src":"23419:85:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":740,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"23490:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23490:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":742,"nodeType":"RevertStatement","src":"23483:21:0"}},{"expression":{"id":747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":744,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23515:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":746,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"23524:12:0","subExpression":{"id":745,"name":"_poolIndex","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":40,"src":"23526:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23515:21:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":748,"nodeType":"ExpressionStatement","src":"23515:21:0"},{"assignments":[750],"declarations":[{"constant":false,"id":750,"mutability":"mutable","name":"POOL_MANAGER_ROLE","nameLocation":"23683:17:0","nodeType":"VariableDeclaration","scope":924,"src":"23675:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":749,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23675:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":755,"initialValue":{"arguments":[{"id":753,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23711:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":752,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"23703:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":751,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23703:7:0","typeDescriptions":{}}},"id":754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23703:15:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23675:43:0"},{"assignments":[757],"declarations":[{"constant":false,"id":757,"mutability":"mutable","name":"POOL_ADMIN_ROLE","nameLocation":"23736:15:0","nodeType":"VariableDeclaration","scope":924,"src":"23728:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":756,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23728:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":765,"initialValue":{"arguments":[{"arguments":[{"id":761,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"23781:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"hexValue":"61646d696e","id":762,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"23789:7:0","typeDescriptions":{"typeIdentifier":"t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8","typeString":"literal_string \"admin\""},"value":"admin"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_stringliteral_f23ec0bb4210edd5cba85afd05127efcd2fc6a781bfed49188da1081670b22d8","typeString":"literal_string \"admin\""}],"expression":{"id":759,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"23764:3:0","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":760,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"23768:12:0","memberName":"encodePacked","nodeType":"MemberAccess","src":"23764:16:0","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23764:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":758,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"23754:9:0","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":764,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23754:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"23728:70:0"},{"assignments":[768],"declarations":[{"constant":false,"id":768,"mutability":"mutable","name":"pool","nameLocation":"23857:4:0","nodeType":"VariableDeclaration","scope":924,"src":"23845:16:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":767,"nodeType":"UserDefinedTypeName","pathNode":{"id":766,"name":"Pool","nameLocations":["23845:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"23845:4:0"},"referencedDeclaration":2319,"src":"23845:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":777,"initialValue":{"arguments":[{"id":770,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"23894:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":771,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"23928:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":772,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"23961:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":773,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"23991:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":774,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24024:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":775,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24066:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":769,"name":"Pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2319,"src":"23864:4:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Pool_$2319_storage_ptr_$","typeString":"type(struct IAllo.Pool storage pointer)"}},"id":776,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["23883:9:0","23918:8:0","23951:8:0","23984:5:0","24011:11:0","24055:9:0"],"names":["profileId","strategy","metadata","token","managerRole","adminRole"],"nodeType":"FunctionCall","src":"23864:228:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"23845:247:0"},{"expression":{"id":782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":778,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"24159:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":780,"indexExpression":{"id":779,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24165:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24159:13:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":781,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":768,"src":"24175:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"src":"24159:20:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":783,"nodeType":"ExpressionStatement","src":"24159:20:0"},{"expression":{"arguments":[{"id":785,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24250:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":786,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"24267:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24271:6:0","memberName":"sender","nodeType":"MemberAccess","src":"24267:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":784,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"24239:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24239:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":789,"nodeType":"ExpressionStatement","src":"24239:39:0"},{"expression":{"arguments":[{"id":791,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24351:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":792,"name":"POOL_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":757,"src":"24370:15:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":790,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52667,"src":"24337:13:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24337:49:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":794,"nodeType":"ExpressionStatement","src":"24337:49:0"},{"expression":{"arguments":[{"id":798,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24562:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":799,"name":"_initStrategyData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":718,"src":"24570:17:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"id":795,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24541:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24551:10:0","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":2939,"src":"24541:20:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (uint256,bytes memory) external"}},"id":800,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24541:47:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":801,"nodeType":"ExpressionStatement","src":"24541:47:0"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":818,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":806,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":802,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24603:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24613:9:0","memberName":"getPoolId","nodeType":"MemberAccess","referencedDeclaration":2876,"src":"24603:19:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24603:21:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":805,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"24628:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24603:31:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":809,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"24646:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":810,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24656:7:0","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":2870,"src":"24646:17:0","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24646:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}],"id":808,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24638:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":807,"name":"address","nodeType":"ElementaryTypeName","src":"24638:7:0","typeDescriptions":{}}},"id":812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24638:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":815,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"24678:4:0","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}],"id":814,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24670:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":813,"name":"address","nodeType":"ElementaryTypeName","src":"24670:7:0","typeDescriptions":{}}},"id":816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24670:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24638:45:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"24603:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":822,"nodeType":"IfStatement","src":"24599:103:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":819,"name":"MISMATCH","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3011,"src":"24692:8:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24692:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":821,"nodeType":"RevertStatement","src":"24685:17:0"}},{"assignments":[824],"declarations":[{"constant":false,"id":824,"mutability":"mutable","name":"managersLength","nameLocation":"24758:14:0","nodeType":"VariableDeclaration","scope":924,"src":"24750:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":823,"name":"uint256","nodeType":"ElementaryTypeName","src":"24750:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":827,"initialValue":{"expression":{"id":825,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"24775:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":826,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24785:6:0","memberName":"length","nodeType":"MemberAccess","src":"24775:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"24750:41:0"},{"body":{"id":859,"nodeType":"Block","src":"24838:229:0","statements":[{"assignments":[835],"declarations":[{"constant":false,"id":835,"mutability":"mutable","name":"manager","nameLocation":"24860:7:0","nodeType":"VariableDeclaration","scope":859,"src":"24852:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":834,"name":"address","nodeType":"ElementaryTypeName","src":"24852:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":839,"initialValue":{"baseExpression":{"id":836,"name":"_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":728,"src":"24870:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":838,"indexExpression":{"id":837,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"24880:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24870:12:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"24852:30:0"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":840,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"24900:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24919:1:0","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":842,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"24911:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":841,"name":"address","nodeType":"ElementaryTypeName","src":"24911:7:0","typeDescriptions":{}}},"id":844,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24911:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"24900:21:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":849,"nodeType":"IfStatement","src":"24896:48:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":846,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"24930:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24930:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":848,"nodeType":"RevertStatement","src":"24923:21:0"}},{"expression":{"arguments":[{"id":851,"name":"POOL_MANAGER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":750,"src":"24970:17:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":852,"name":"manager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":835,"src":"24989:7:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":850,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"24959:10:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":853,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24959:38:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":854,"nodeType":"ExpressionStatement","src":"24959:38:0"},{"id":858,"nodeType":"UncheckedBlock","src":"25011:46:0","statements":[{"expression":{"id":856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"25039:3:0","subExpression":{"id":855,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"25041:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":857,"nodeType":"ExpressionStatement","src":"25039:3:0"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":829,"src":"24817:1:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":832,"name":"managersLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":824,"src":"24821:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24817:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":860,"initializationExpression":{"assignments":[829],"declarations":[{"constant":false,"id":829,"mutability":"mutable","name":"i","nameLocation":"24814:1:0","nodeType":"VariableDeclaration","scope":860,"src":"24806:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":828,"name":"uint256","nodeType":"ElementaryTypeName","src":"24806:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":830,"nodeType":"VariableDeclarationStatement","src":"24806:9:0"},"nodeType":"ForStatement","src":"24801:266:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":861,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25081:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":862,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25091:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25081:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":903,"nodeType":"IfStatement","src":"25077:554:0","trueBody":{"id":902,"nodeType":"Block","src":"25094:537:0","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":885,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":874,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":866,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":864,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25359:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":865,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25369:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25359:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":872,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":867,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25380:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":868,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25390:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25380:17:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":870,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25401:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":871,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25405:5:0","memberName":"value","nodeType":"MemberAccess","src":"25401:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25380:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":873,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25379:32:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25359:52:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":875,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25358:54:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":883,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":878,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":876,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25417:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":877,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25427:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"25417:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":879,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25437:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":880,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25448:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":881,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25452:5:0","memberName":"value","nodeType":"MemberAccess","src":"25448:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"25437:20:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25417:40:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":884,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"25416:42:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"25358:100:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":890,"nodeType":"IfStatement","src":"25354:164:0","trueBody":{"id":889,"nodeType":"Block","src":"25460:58:0","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":886,"name":"NOT_ENOUGH_FUNDS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3014,"src":"25485:16:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25485:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":888,"nodeType":"RevertStatement","src":"25478:25:0"}]}},{"expression":{"arguments":[{"id":892,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"25547:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":893,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"25555:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":894,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25565:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":891,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"25531:15:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25531:42:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":896,"nodeType":"ExpressionStatement","src":"25531:42:0"},{"eventCall":{"arguments":[{"id":898,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25604:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":899,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"25612:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":897,"name":"BaseFeePaid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2360,"src":"25592:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":900,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25592:28:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":901,"nodeType":"EmitStatement","src":"25587:33:0"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":904,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25645:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":905,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"25655:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"25645:11:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":914,"nodeType":"IfStatement","src":"25641:79:0","trueBody":{"id":913,"nodeType":"Block","src":"25658:62:0","statements":[{"expression":{"arguments":[{"id":908,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25682:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":909,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25691:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":910,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"25699:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":907,"name":"_fundPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1122,"src":"25672:9:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_uint256_$_t_contract$_IStrategy_$2969_$returns$__$","typeString":"function (uint256,uint256,contract IStrategy)"}},"id":911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25672:37:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":912,"nodeType":"ExpressionStatement","src":"25672:37:0"}]}},{"eventCall":{"arguments":[{"id":916,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":731,"src":"25747:6:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":917,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":713,"src":"25755:10:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":918,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":716,"src":"25767:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},{"id":919,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":720,"src":"25778:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":920,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":722,"src":"25786:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":921,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":725,"src":"25795:9:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":915,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2336,"src":"25735:11:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_bytes32_$_t_contract$_IStrategy_$2969_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,bytes32,contract IStrategy,address,uint256,struct Metadata memory)"}},"id":922,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25735:70:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":923,"nodeType":"EmitStatement","src":"25730:75:0"}]},"documentation":{"id":711,"nodeType":"StructuredDocumentation","src":"22304:822:0","text":"@notice Creates a new pool.\n @dev This is an internal function that is called by the 'createPool()' & 'createPoolWithCustomStrategy()' functions\n It is used to create a new pool and is called by both functions. The 'msg.sender' must be a member or owner of\n a profile to create a pool.\n @param _profileId The ID of the profile of for pool creator in the registry\n @param _strategy The address of strategy\n @param _initStrategyData The data to initialize the strategy\n @param _token The address of the token that the pool is denominated in\n @param _amount The amount of the token to be deposited into the pool\n @param _metadata The 'Metadata' of the pool\n @param _managers The managers of the pool\n @return poolId The ID of the pool"},"implemented":true,"kind":"function","modifiers":[],"name":"_createPool","nameLocation":"23140:11:0","parameters":{"id":729,"nodeType":"ParameterList","parameters":[{"constant":false,"id":713,"mutability":"mutable","name":"_profileId","nameLocation":"23169:10:0","nodeType":"VariableDeclaration","scope":925,"src":"23161:18:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":712,"name":"bytes32","nodeType":"ElementaryTypeName","src":"23161:7:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":716,"mutability":"mutable","name":"_strategy","nameLocation":"23199:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23189:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":715,"nodeType":"UserDefinedTypeName","pathNode":{"id":714,"name":"IStrategy","nameLocations":["23189:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"23189:9:0"},"referencedDeclaration":2969,"src":"23189:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"},{"constant":false,"id":718,"mutability":"mutable","name":"_initStrategyData","nameLocation":"23231:17:0","nodeType":"VariableDeclaration","scope":925,"src":"23218:30:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":717,"name":"bytes","nodeType":"ElementaryTypeName","src":"23218:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":720,"mutability":"mutable","name":"_token","nameLocation":"23266:6:0","nodeType":"VariableDeclaration","scope":925,"src":"23258:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":719,"name":"address","nodeType":"ElementaryTypeName","src":"23258:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":722,"mutability":"mutable","name":"_amount","nameLocation":"23290:7:0","nodeType":"VariableDeclaration","scope":925,"src":"23282:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":721,"name":"uint256","nodeType":"ElementaryTypeName","src":"23282:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":725,"mutability":"mutable","name":"_metadata","nameLocation":"23323:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23307:25:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":724,"nodeType":"UserDefinedTypeName","pathNode":{"id":723,"name":"Metadata","nameLocations":["23307:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"23307:8:0"},"referencedDeclaration":3098,"src":"23307:8:0","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":728,"mutability":"mutable","name":"_managers","nameLocation":"23359:9:0","nodeType":"VariableDeclaration","scope":925,"src":"23342:26:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":726,"name":"address","nodeType":"ElementaryTypeName","src":"23342:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":727,"nodeType":"ArrayTypeName","src":"23342:9:0","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"23151:223:0"},"returnParameters":{"id":732,"nodeType":"ParameterList","parameters":[{"constant":false,"id":731,"mutability":"mutable","name":"poolId","nameLocation":"23401:6:0","nodeType":"VariableDeclaration","scope":925,"src":"23393:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":730,"name":"uint256","nodeType":"ElementaryTypeName","src":"23393:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"23392:16:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":947,"nodeType":"FunctionDefinition","src":"26159:151:0","nodes":[],"body":{"id":946,"nodeType":"Block","src":"26224:86:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":941,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":930,"src":"26285:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"expression":{"id":942,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26292:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26296:6:0","memberName":"sender","nodeType":"MemberAccess","src":"26292:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"expression":{"baseExpression":{"id":933,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"26234:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":935,"indexExpression":{"id":934,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":928,"src":"26240:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26234:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26249:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"26234:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26258:8:0","memberName":"allocate","nodeType":"MemberAccess","referencedDeclaration":2957,"src":"26234:32:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes memory,address) payable external"}},"id":940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["value"],"nodeType":"FunctionCallOptions","options":[{"expression":{"id":938,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"26274:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26278:5:0","memberName":"value","nodeType":"MemberAccess","src":"26274:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"src":"26234:50:0","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes_memory_ptr_$_t_address_$returns$__$value","typeString":"function (bytes memory,address) payable external"}},"id":944,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26234:69:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":945,"nodeType":"ExpressionStatement","src":"26234:69:0"}]},"documentation":{"id":926,"nodeType":"StructuredDocumentation","src":"25818:336:0","text":"@notice Allocate to recipient(s).\n @dev Passes '_data' & 'msg.sender' through to the strategy for that pool.\n This is an internal function that is called by the 'allocate()' & 'batchAllocate()' functions.\n @param _poolId ID of the pool\n @param _data Encoded data unique to the strategy for that pool"},"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"26168:9:0","parameters":{"id":931,"nodeType":"ParameterList","parameters":[{"constant":false,"id":928,"mutability":"mutable","name":"_poolId","nameLocation":"26186:7:0","nodeType":"VariableDeclaration","scope":947,"src":"26178:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":927,"name":"uint256","nodeType":"ElementaryTypeName","src":"26178:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":930,"mutability":"mutable","name":"_data","nameLocation":"26208:5:0","nodeType":"VariableDeclaration","scope":947,"src":"26195:18:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":929,"name":"bytes","nodeType":"ElementaryTypeName","src":"26195:5:0","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"26177:37:0"},"returnParameters":{"id":932,"nodeType":"ParameterList","parameters":[],"src":"26224:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1122,"nodeType":"FunctionDefinition","src":"26634:1879:0","nodes":[],"body":{"id":1121,"nodeType":"Block","src":"26717:1796:0","nodes":[],"statements":[{"assignments":[959],"declarations":[{"constant":false,"id":959,"mutability":"mutable","name":"feeAmount","nameLocation":"26735:9:0","nodeType":"VariableDeclaration","scope":1121,"src":"26727:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":958,"name":"uint256","nodeType":"ElementaryTypeName","src":"26727:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":960,"nodeType":"VariableDeclarationStatement","src":"26727:17:0"},{"assignments":[962],"declarations":[{"constant":false,"id":962,"mutability":"mutable","name":"amountAfterFee","nameLocation":"26762:14:0","nodeType":"VariableDeclaration","scope":1121,"src":"26754:22:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":961,"name":"uint256","nodeType":"ElementaryTypeName","src":"26754:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":964,"initialValue":{"id":963,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"26779:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"26754:32:0"},{"assignments":[967],"declarations":[{"constant":false,"id":967,"mutability":"mutable","name":"pool","nameLocation":"26810:4:0","nodeType":"VariableDeclaration","scope":1121,"src":"26797:17:0","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":966,"nodeType":"UserDefinedTypeName","pathNode":{"id":965,"name":"Pool","nameLocations":["26797:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"26797:4:0"},"referencedDeclaration":2319,"src":"26797:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":971,"initialValue":{"baseExpression":{"id":968,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"26817:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":970,"indexExpression":{"id":969,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"26823:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26817:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"nodeType":"VariableDeclarationStatement","src":"26797:34:0"},{"assignments":[973],"declarations":[{"constant":false,"id":973,"mutability":"mutable","name":"_token","nameLocation":"26849:6:0","nodeType":"VariableDeclaration","scope":1121,"src":"26841:14:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":972,"name":"address","nodeType":"ElementaryTypeName","src":"26841:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":976,"initialValue":{"expression":{"id":974,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":967,"src":"26858:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool storage pointer"}},"id":975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26863:5:0","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"26858:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"26841:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":977,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"26883:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":978,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26896:1:0","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26883:14:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1050,"nodeType":"IfStatement","src":"26879:808:0","trueBody":{"id":1049,"nodeType":"Block","src":"26899:788:0","statements":[{"expression":{"id":988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":980,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"26913:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":981,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"26926:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":982,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"26936:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26926:20:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":984,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"26925:22:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":985,"name":"getFeeDenominator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1276,"src":"26950:17:0","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26950:19:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26925:44:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26913:56:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":989,"nodeType":"ExpressionStatement","src":"26913:56:0"},{"expression":{"id":992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":990,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"26983:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":991,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27001:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26983:27:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":993,"nodeType":"ExpressionStatement","src":"26983:27:0"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":998,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":994,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27029:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":995,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"27041:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27029:26:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":997,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":950,"src":"27059:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27029:37:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1002,"nodeType":"IfStatement","src":"27025:59:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":999,"name":"INVALID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3008,"src":"27075:7:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1000,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27075:9:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1001,"nodeType":"RevertStatement","src":"27068:16:0"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1005,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1003,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27103:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1004,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"27113:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27103:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1047,"nodeType":"Block","src":"27254:423:0","statements":[{"assignments":[1018],"declarations":[{"constant":false,"id":1018,"mutability":"mutable","name":"balanceBeforeFee","nameLocation":"27280:16:0","nodeType":"VariableDeclaration","scope":1047,"src":"27272:24:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1017,"name":"uint256","nodeType":"ElementaryTypeName","src":"27272:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1023,"initialValue":{"arguments":[{"id":1020,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27311:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1021,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27319:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1019,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27299:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27299:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27272:56:0"},{"expression":{"arguments":[{"id":1025,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27366:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1027,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27394:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1028,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27398:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27394:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1029,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27410:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1030,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27428:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1026,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27374:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1031,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27388:4:0","27406:2:0","27420:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27374:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1024,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27346:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1032,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27346:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1033,"nodeType":"ExpressionStatement","src":"27346:94:0"},{"assignments":[1035],"declarations":[{"constant":false,"id":1035,"mutability":"mutable","name":"balanceAfterFee","nameLocation":"27466:15:0","nodeType":"VariableDeclaration","scope":1047,"src":"27458:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1034,"name":"uint256","nodeType":"ElementaryTypeName","src":"27458:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1040,"initialValue":{"arguments":[{"id":1037,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27496:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1038,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27504:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1036,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27484:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27484:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27458:55:0"},{"expression":{"id":1045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1041,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27616:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1044,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1042,"name":"balanceAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1035,"src":"27628:15:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1043,"name":"balanceBeforeFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1018,"src":"27646:16:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27628:34:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27616:46:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1046,"nodeType":"ExpressionStatement","src":"27616:46:0"}]},"id":1048,"nodeType":"IfStatement","src":"27099:578:0","trueBody":{"id":1016,"nodeType":"Block","src":"27121:127:0","statements":[{"expression":{"arguments":[{"id":1007,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27159:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1009,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27187:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27191:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27187:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1011,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"27203:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},{"id":1012,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"27221:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1008,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27167:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27181:4:0","27199:2:0","27213:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27167:65:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1006,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27139:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27139:94:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1015,"nodeType":"ExpressionStatement","src":"27139:94:0"}]}}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1051,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27701:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":1052,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"27711:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"27701:16:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":1107,"nodeType":"Block","src":"27889:501:0","statements":[{"assignments":[1069],"declarations":[{"constant":false,"id":1069,"mutability":"mutable","name":"balanceBeforeFundingPool","nameLocation":"27911:24:0","nodeType":"VariableDeclaration","scope":1107,"src":"27903:32:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1068,"name":"uint256","nodeType":"ElementaryTypeName","src":"27903:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1077,"initialValue":{"arguments":[{"id":1071,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27950:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1074,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"27966:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1073,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27958:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1072,"name":"address","nodeType":"ElementaryTypeName","src":"27958:7:0","typeDescriptions":{}}},"id":1075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27958:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1070,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"27938:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27938:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27903:74:0"},{"expression":{"arguments":[{"id":1079,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"28028:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1081,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"28056:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1082,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28060:6:0","memberName":"sender","nodeType":"MemberAccess","src":"28056:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1085,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28080:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28072:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1083,"name":"address","nodeType":"ElementaryTypeName","src":"28072:7:0","typeDescriptions":{}}},"id":1086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28072:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1087,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28100:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1080,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"28036:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["28050:4:0","28068:2:0","28092:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"28036:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1078,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27991:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27991:139:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1090,"nodeType":"ExpressionStatement","src":"27991:139:0"},{"assignments":[1092],"declarations":[{"constant":false,"id":1092,"mutability":"mutable","name":"balanceAfterFundingPool","nameLocation":"28152:23:0","nodeType":"VariableDeclaration","scope":1107,"src":"28144:31:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1091,"name":"uint256","nodeType":"ElementaryTypeName","src":"28144:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1100,"initialValue":{"arguments":[{"id":1094,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"28190:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1097,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28206:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1096,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28198:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1095,"name":"address","nodeType":"ElementaryTypeName","src":"28198:7:0","typeDescriptions":{}}},"id":1098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28198:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1093,"name":"_getBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3316,"src":"28178:11:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":1099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28178:39:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28144:73:0"},{"expression":{"id":1105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1101,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28312:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1104,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1102,"name":"balanceAfterFundingPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1092,"src":"28329:23:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":1103,"name":"balanceBeforeFundingPool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1069,"src":"28355:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28329:50:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28312:67:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1106,"nodeType":"ExpressionStatement","src":"28312:67:0"}]},"id":1108,"nodeType":"IfStatement","src":"27697:693:0","trueBody":{"id":1067,"nodeType":"Block","src":"27719:164:0","statements":[{"expression":{"arguments":[{"id":1055,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":973,"src":"27770:6:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"id":1057,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"27798:3:0","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27802:6:0","memberName":"sender","nodeType":"MemberAccess","src":"27798:10:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1061,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"27822:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"27814:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1059,"name":"address","nodeType":"ElementaryTypeName","src":"27814:7:0","typeDescriptions":{}}},"id":1062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27814:18:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":1063,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"27842:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1056,"name":"TransferData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3124,"src":"27778:12:0","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_TransferData_$3124_storage_ptr_$","typeString":"type(struct Transfer.TransferData storage pointer)"}},"id":1064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["27792:4:0","27810:2:0","27834:6:0"],"names":["from","to","amount"],"nodeType":"FunctionCall","src":"27778:80:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_TransferData_$3124_memory_ptr","typeString":"struct Transfer.TransferData memory"}],"id":1054,"name":"_transferAmountFrom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3255,"src":"27733:19:0","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_struct$_TransferData_$3124_memory_ptr_$returns$_t_bool_$","typeString":"function (address,struct Transfer.TransferData memory) returns (bool)"}},"id":1065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27733:139:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1066,"nodeType":"ExpressionStatement","src":"27733:139:0"}]}},{"expression":{"arguments":[{"id":1112,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28429:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":1109,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":955,"src":"28400:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"id":1111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28410:18:0","memberName":"increasePoolAmount","nodeType":"MemberAccess","referencedDeclaration":2908,"src":"28400:28:0","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256) external"}},"id":1113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28400:44:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1114,"nodeType":"ExpressionStatement","src":"28400:44:0"},{"eventCall":{"arguments":[{"id":1116,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":952,"src":"28471:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1117,"name":"amountAfterFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":962,"src":"28480:14:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1118,"name":"feeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":959,"src":"28496:9:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1115,"name":"PoolFunded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2353,"src":"28460:10:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256)"}},"id":1119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28460:46:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1120,"nodeType":"EmitStatement","src":"28455:51:0"}]},"documentation":{"id":948,"nodeType":"StructuredDocumentation","src":"26316:313:0","text":"@notice Fund a pool.\n @dev Deducts the fee and transfers the amount to the distribution strategy.\n Emits a 'PoolFunded' event.\n @param _amount The amount to transfer\n @param _poolId The 'poolId' for the pool you are funding\n @param _strategy The address of the strategy"},"implemented":true,"kind":"function","modifiers":[],"name":"_fundPool","nameLocation":"26643:9:0","parameters":{"id":956,"nodeType":"ParameterList","parameters":[{"constant":false,"id":950,"mutability":"mutable","name":"_amount","nameLocation":"26661:7:0","nodeType":"VariableDeclaration","scope":1122,"src":"26653:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":949,"name":"uint256","nodeType":"ElementaryTypeName","src":"26653:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":952,"mutability":"mutable","name":"_poolId","nameLocation":"26678:7:0","nodeType":"VariableDeclaration","scope":1122,"src":"26670:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":951,"name":"uint256","nodeType":"ElementaryTypeName","src":"26670:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":955,"mutability":"mutable","name":"_strategy","nameLocation":"26697:9:0","nodeType":"VariableDeclaration","scope":1122,"src":"26687:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"},"typeName":{"id":954,"nodeType":"UserDefinedTypeName","pathNode":{"id":953,"name":"IStrategy","nameLocations":["26687:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2969,"src":"26687:9:0"},"referencedDeclaration":2969,"src":"26687:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}},"visibility":"internal"}],"src":"26652:55:0"},"returnParameters":{"id":957,"nodeType":"ParameterList","parameters":[],"src":"26717:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1135,"nodeType":"FunctionDefinition","src":"28898:132:0","nodes":[],"body":{"id":1134,"nodeType":"Block","src":"28976:54:0","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1130,"name":"cloneableStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":63,"src":"28993:19:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":1132,"indexExpression":{"id":1131,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1125,"src":"29013:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28993:30:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1129,"id":1133,"nodeType":"Return","src":"28986:37:0"}]},"documentation":{"id":1123,"nodeType":"StructuredDocumentation","src":"28519:374:0","text":"@notice Checks if the strategy is an approved cloneable strategy.\n @dev Internal function used by createPoolwithCustomStrategy and createPool to\n determine if a strategy is in the cloneable strategy allow list.\n @param _strategy The address of the strategy\n @return This will return 'true' if the strategy is cloneable, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isCloneableStrategy","nameLocation":"28907:20:0","parameters":{"id":1126,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1125,"mutability":"mutable","name":"_strategy","nameLocation":"28936:9:0","nodeType":"VariableDeclaration","scope":1135,"src":"28928:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1124,"name":"address","nodeType":"ElementaryTypeName","src":"28928:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"28927:19:0"},"returnParameters":{"id":1129,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1128,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1135,"src":"28970:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1127,"name":"bool","nodeType":"ElementaryTypeName","src":"28970:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"28969:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1154,"nodeType":"FunctionDefinition","src":"29346:153:0","nodes":[],"body":{"id":1153,"nodeType":"Block","src":"29432:67:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1146,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"29457:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1148,"indexExpression":{"id":1147,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1138,"src":"29463:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29457:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1149,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29472:9:0","memberName":"adminRole","nodeType":"MemberAccess","referencedDeclaration":2318,"src":"29457:24:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1150,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1140,"src":"29483:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1145,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"29449:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29449:43:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1144,"id":1152,"nodeType":"Return","src":"29442:50:0"}]},"documentation":{"id":1136,"nodeType":"StructuredDocumentation","src":"29036:305:0","text":"@notice Checks if the address is a pool admin\n @dev Internal function used to determine if an address is a pool admin\n @param _poolId The ID of the pool\n @param _address The address to check\n @return This will return 'true' if the address is a pool admin, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isPoolAdmin","nameLocation":"29355:12:0","parameters":{"id":1141,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1138,"mutability":"mutable","name":"_poolId","nameLocation":"29376:7:0","nodeType":"VariableDeclaration","scope":1154,"src":"29368:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1137,"name":"uint256","nodeType":"ElementaryTypeName","src":"29368:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1140,"mutability":"mutable","name":"_address","nameLocation":"29393:8:0","nodeType":"VariableDeclaration","scope":1154,"src":"29385:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1139,"name":"address","nodeType":"ElementaryTypeName","src":"29385:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29367:35:0"},"returnParameters":{"id":1144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1154,"src":"29426:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1142,"name":"bool","nodeType":"ElementaryTypeName","src":"29426:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29425:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1178,"nodeType":"FunctionDefinition","src":"29821:192:0","nodes":[],"body":{"id":1177,"nodeType":"Block","src":"29909:104:0","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"expression":{"baseExpression":{"id":1165,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"29934:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1167,"indexExpression":{"id":1166,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"29940:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29934:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29949:11:0","memberName":"managerRole","nodeType":"MemberAccess","referencedDeclaration":2316,"src":"29934:26:0","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1169,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"29962:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1164,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"29926:7:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29926:45:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1172,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1157,"src":"29988:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1173,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1159,"src":"29997:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1171,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"29975:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29975:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"29926:80:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1163,"id":1176,"nodeType":"Return","src":"29919:87:0"}]},"documentation":{"id":1155,"nodeType":"StructuredDocumentation","src":"29505:311:0","text":"@notice Checks if the address is a pool manager\n @dev Internal function used to determine if an address is a pool manager\n @param _poolId The ID of the pool\n @param _address The address to check\n @return This will return 'true' if the address is a pool manager, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isPoolManager","nameLocation":"29830:14:0","parameters":{"id":1160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1157,"mutability":"mutable","name":"_poolId","nameLocation":"29853:7:0","nodeType":"VariableDeclaration","scope":1178,"src":"29845:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1156,"name":"uint256","nodeType":"ElementaryTypeName","src":"29845:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1159,"mutability":"mutable","name":"_address","nameLocation":"29870:8:0","nodeType":"VariableDeclaration","scope":1178,"src":"29862:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1158,"name":"address","nodeType":"ElementaryTypeName","src":"29862:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"29844:35:0"},"returnParameters":{"id":1163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1162,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1178,"src":"29903:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1161,"name":"bool","nodeType":"ElementaryTypeName","src":"29903:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"29902:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":1205,"nodeType":"FunctionDefinition","src":"30226:203:0","nodes":[],"body":{"id":1204,"nodeType":"Block","src":"30279:150:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1184,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30293:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1187,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30314:1:0","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":1186,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30306:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1185,"name":"address","nodeType":"ElementaryTypeName","src":"30306:7:0","typeDescriptions":{}}},"id":1188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30306:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30293:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1193,"nodeType":"IfStatement","src":"30289:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1190,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"30325:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30325:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1192,"nodeType":"RevertStatement","src":"30318:21:0"}},{"expression":{"id":1198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1194,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"30350:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1196,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30371:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1195,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"30361:9:0","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":1197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30361:20:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"30350:31:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":1199,"nodeType":"ExpressionStatement","src":"30350:31:0"},{"eventCall":{"arguments":[{"id":1201,"name":"_registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1181,"src":"30412:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1200,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2380,"src":"30396:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30396:26:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1203,"nodeType":"EmitStatement","src":"30391:31:0"}]},"documentation":{"id":1179,"nodeType":"StructuredDocumentation","src":"30019:202:0","text":"@notice Updates the registry address\n @dev Internal function used to update the registry address.\n Emits a RegistryUpdated event.\n @param _registry The new registry address"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateRegistry","nameLocation":"30235:15:0","parameters":{"id":1182,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1181,"mutability":"mutable","name":"_registry","nameLocation":"30259:9:0","nodeType":"VariableDeclaration","scope":1205,"src":"30251:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1180,"name":"address","nodeType":"ElementaryTypeName","src":"30251:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"30250:19:0"},"returnParameters":{"id":1183,"nodeType":"ParameterList","parameters":[],"src":"30279:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1230,"nodeType":"FunctionDefinition","src":"30642:199:0","nodes":[],"body":{"id":1229,"nodeType":"Block","src":"30703:138:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1216,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1211,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"30717:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1214,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30738:1:0","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":1213,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"30730:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1212,"name":"address","nodeType":"ElementaryTypeName","src":"30730:7:0","typeDescriptions":{}}},"id":1215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30730:10:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"30717:23:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1220,"nodeType":"IfStatement","src":"30713:50:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1217,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"30749:12:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30749:14:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1219,"nodeType":"RevertStatement","src":"30742:21:0"}},{"expression":{"id":1223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1221,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"30774:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1222,"name":"_treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1208,"src":"30785:9:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"30774:20:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":1224,"nodeType":"ExpressionStatement","src":"30774:20:0"},{"eventCall":{"arguments":[{"id":1226,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"30825:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":1225,"name":"TreasuryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2365,"src":"30809:15:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":1227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30809:25:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1228,"nodeType":"EmitStatement","src":"30804:30:0"}]},"documentation":{"id":1206,"nodeType":"StructuredDocumentation","src":"30435:202:0","text":"@notice Updates the treasury address\n @dev Internal function used to update the treasury address.\n Emits a TreasuryUpdated event.\n @param _treasury The new treasury address"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateTreasury","nameLocation":"30651:15:0","parameters":{"id":1209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1208,"mutability":"mutable","name":"_treasury","nameLocation":"30683:9:0","nodeType":"VariableDeclaration","scope":1230,"src":"30667:25:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1207,"name":"address","nodeType":"ElementaryTypeName","src":"30667:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"30666:27:0"},"returnParameters":{"id":1210,"nodeType":"ParameterList","parameters":[],"src":"30703:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1252,"nodeType":"FunctionDefinition","src":"31041:198:0","nodes":[],"body":{"id":1251,"nodeType":"Block","src":"31098:141:0","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1236,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"31112:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"31653138","id":1237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31126:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"src":"31112:18:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1242,"nodeType":"IfStatement","src":"31108:44:0","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1239,"name":"INVALID_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3041,"src":"31139:11:0","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31139:13:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1241,"nodeType":"RevertStatement","src":"31132:20:0"}},{"expression":{"id":1245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1243,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"31163:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1244,"name":"_percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1233,"src":"31176:11:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31163:24:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1246,"nodeType":"ExpressionStatement","src":"31163:24:0"},{"eventCall":{"arguments":[{"id":1248,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"31221:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1247,"name":"PercentFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2370,"src":"31203:17:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31203:29:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1250,"nodeType":"EmitStatement","src":"31198:34:0"}]},"documentation":{"id":1231,"nodeType":"StructuredDocumentation","src":"30847:189:0","text":"@notice Updates the fee percentage\n @dev Internal function used to update the percentage fee.\n Emits a PercentFeeUpdated event.\n @param _percentFee The new fee"},"implemented":true,"kind":"function","modifiers":[],"name":"_updatePercentFee","nameLocation":"31050:17:0","parameters":{"id":1234,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1233,"mutability":"mutable","name":"_percentFee","nameLocation":"31076:11:0","nodeType":"VariableDeclaration","scope":1252,"src":"31068:19:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1232,"name":"uint256","nodeType":"ElementaryTypeName","src":"31068:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31067:21:0"},"returnParameters":{"id":1235,"nodeType":"ParameterList","parameters":[],"src":"31098:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1267,"nodeType":"FunctionDefinition","src":"31426:125:0","nodes":[],"body":{"id":1266,"nodeType":"Block","src":"31477:74:0","nodes":[],"statements":[{"expression":{"id":1260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1258,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"31487:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1259,"name":"_baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1255,"src":"31497:8:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31487:18:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1261,"nodeType":"ExpressionStatement","src":"31487:18:0"},{"eventCall":{"arguments":[{"id":1263,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"31536:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":1262,"name":"BaseFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2375,"src":"31521:14:0","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":1264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31521:23:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1265,"nodeType":"EmitStatement","src":"31516:28:0"}]},"documentation":{"id":1253,"nodeType":"StructuredDocumentation","src":"31245:176:0","text":"@notice Updates the base fee\n @dev Internal function used to update the base fee.\n Emits a BaseFeeUpdated event.\n @param _baseFee The new base fee"},"implemented":true,"kind":"function","modifiers":[],"name":"_updateBaseFee","nameLocation":"31435:14:0","parameters":{"id":1256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1255,"mutability":"mutable","name":"_baseFee","nameLocation":"31458:8:0","nodeType":"VariableDeclaration","scope":1267,"src":"31450:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1254,"name":"uint256","nodeType":"ElementaryTypeName","src":"31450:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31449:18:0"},"returnParameters":{"id":1257,"nodeType":"ParameterList","parameters":[],"src":"31477:0:0"},"scope":1390,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":1276,"nodeType":"FunctionDefinition","src":"31788:103:0","nodes":[],"body":{"id":1275,"nodeType":"Block","src":"31863:28:0","nodes":[],"statements":[{"expression":{"hexValue":"31653138","id":1273,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31880:4:0","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"value":"1e18"},"functionReturnParameters":1272,"id":1274,"nodeType":"Return","src":"31873:11:0"}]},"baseFunctions":[2609],"documentation":{"id":1268,"nodeType":"StructuredDocumentation","src":"31657:126:0","text":"@notice Getter for the fee denominator\n @return FEE_DENOMINATOR The fee denominator is (1e18) which represents 100%"},"functionSelector":"f4e1fc41","implemented":true,"kind":"function","modifiers":[],"name":"getFeeDenominator","nameLocation":"31797:17:0","parameters":{"id":1269,"nodeType":"ParameterList","parameters":[],"src":"31814:2:0"},"returnParameters":{"id":1272,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1271,"mutability":"mutable","name":"FEE_DENOMINATOR","nameLocation":"31846:15:0","nodeType":"VariableDeclaration","scope":1276,"src":"31838:23:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1270,"name":"uint256","nodeType":"ElementaryTypeName","src":"31838:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"31837:25:0"},"scope":1390,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":1292,"nodeType":"FunctionDefinition","src":"32112:140:0","nodes":[],"body":{"id":1291,"nodeType":"Block","src":"32197:55:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1287,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1279,"src":"32227:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1288,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1281,"src":"32236:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1286,"name":"_isPoolAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1154,"src":"32214:12:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32214:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1285,"id":1290,"nodeType":"Return","src":"32207:38:0"}]},"baseFunctions":[2543],"documentation":{"id":1277,"nodeType":"StructuredDocumentation","src":"31897:210:0","text":"@notice Checks if the address is a pool admin.\n @param _poolId The ID of the pool\n @param _address The address to check\n @return 'true' if the address is a pool admin, otherwise 'false'"},"functionSelector":"ab3febc6","implemented":true,"kind":"function","modifiers":[],"name":"isPoolAdmin","nameLocation":"32121:11:0","parameters":{"id":1282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1279,"mutability":"mutable","name":"_poolId","nameLocation":"32141:7:0","nodeType":"VariableDeclaration","scope":1292,"src":"32133:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1278,"name":"uint256","nodeType":"ElementaryTypeName","src":"32133:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1281,"mutability":"mutable","name":"_address","nameLocation":"32158:8:0","nodeType":"VariableDeclaration","scope":1292,"src":"32150:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1280,"name":"address","nodeType":"ElementaryTypeName","src":"32150:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32132:35:0"},"returnParameters":{"id":1285,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1292,"src":"32191:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1283,"name":"bool","nodeType":"ElementaryTypeName","src":"32191:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32190:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1308,"nodeType":"FunctionDefinition","src":"32476:144:0","nodes":[],"body":{"id":1307,"nodeType":"Block","src":"32563:57:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1303,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1295,"src":"32595:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1304,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1297,"src":"32604:8:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1302,"name":"_isPoolManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1178,"src":"32580:14:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_bool_$","typeString":"function (uint256,address) view returns (bool)"}},"id":1305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32580:33:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1301,"id":1306,"nodeType":"Return","src":"32573:40:0"}]},"baseFunctions":[2553],"documentation":{"id":1293,"nodeType":"StructuredDocumentation","src":"32258:213:0","text":"@notice Checks if the address is a pool manager\n @param _poolId The ID of the pool\n @param _address The address to check\n @return 'true' if the address is a pool manager, otherwise 'false'"},"functionSelector":"29e40d4b","implemented":true,"kind":"function","modifiers":[],"name":"isPoolManager","nameLocation":"32485:13:0","parameters":{"id":1298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1295,"mutability":"mutable","name":"_poolId","nameLocation":"32507:7:0","nodeType":"VariableDeclaration","scope":1308,"src":"32499:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1294,"name":"uint256","nodeType":"ElementaryTypeName","src":"32499:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1297,"mutability":"mutable","name":"_address","nameLocation":"32524:8:0","nodeType":"VariableDeclaration","scope":1308,"src":"32516:16:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1296,"name":"address","nodeType":"ElementaryTypeName","src":"32516:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32498:35:0"},"returnParameters":{"id":1301,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1300,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1308,"src":"32557:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1299,"name":"bool","nodeType":"ElementaryTypeName","src":"32557:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"32556:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1325,"nodeType":"FunctionDefinition","src":"32753:126:0","nodes":[],"body":{"id":1324,"nodeType":"Block","src":"32823:56:0","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"baseExpression":{"id":1318,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"32848:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1320,"indexExpression":{"id":1319,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1311,"src":"32854:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"32848:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"id":1321,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"32863:8:0","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"32848:23:0","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":1317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32840:7:0","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1316,"name":"address","nodeType":"ElementaryTypeName","src":"32840:7:0","typeDescriptions":{}}},"id":1322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32840:32:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1315,"id":1323,"nodeType":"Return","src":"32833:39:0"}]},"baseFunctions":[2569],"documentation":{"id":1309,"nodeType":"StructuredDocumentation","src":"32626:122:0","text":"@notice Getter for the strategy.\n @param _poolId The ID of the pool\n @return The address of the strategy"},"functionSelector":"cfc0cc34","implemented":true,"kind":"function","modifiers":[],"name":"getStrategy","nameLocation":"32762:11:0","parameters":{"id":1312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1311,"mutability":"mutable","name":"_poolId","nameLocation":"32782:7:0","nodeType":"VariableDeclaration","scope":1325,"src":"32774:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1310,"name":"uint256","nodeType":"ElementaryTypeName","src":"32774:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32773:17:0"},"returnParameters":{"id":1315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1314,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1325,"src":"32814:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1313,"name":"address","nodeType":"ElementaryTypeName","src":"32814:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"32813:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1334,"nodeType":"FunctionDefinition","src":"32977:91:0","nodes":[],"body":{"id":1333,"nodeType":"Block","src":"33034:34:0","nodes":[],"statements":[{"expression":{"id":1331,"name":"percentFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":34,"src":"33051:10:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1330,"id":1332,"nodeType":"Return","src":"33044:17:0"}]},"baseFunctions":[2575],"documentation":{"id":1326,"nodeType":"StructuredDocumentation","src":"32885:87:0","text":"@notice Getter for fee percentage.\n @return The fee percentage (1e18 = 100%)"},"functionSelector":"4edbaadc","implemented":true,"kind":"function","modifiers":[],"name":"getPercentFee","nameLocation":"32986:13:0","parameters":{"id":1327,"nodeType":"ParameterList","parameters":[],"src":"32999:2:0"},"returnParameters":{"id":1330,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1329,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1334,"src":"33025:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1328,"name":"uint256","nodeType":"ElementaryTypeName","src":"33025:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33024:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1343,"nodeType":"FunctionDefinition","src":"33140:85:0","nodes":[],"body":{"id":1342,"nodeType":"Block","src":"33194:31:0","nodes":[],"statements":[{"expression":{"id":1340,"name":"baseFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37,"src":"33211:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":1339,"id":1341,"nodeType":"Return","src":"33204:14:0"}]},"baseFunctions":[2581],"documentation":{"id":1335,"nodeType":"StructuredDocumentation","src":"33074:61:0","text":"@notice Getter for base fee.\n @return The base fee"},"functionSelector":"15e812ad","implemented":true,"kind":"function","modifiers":[],"name":"getBaseFee","nameLocation":"33149:10:0","parameters":{"id":1336,"nodeType":"ParameterList","parameters":[],"src":"33159:2:0"},"returnParameters":{"id":1339,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1338,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1343,"src":"33185:7:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1337,"name":"uint256","nodeType":"ElementaryTypeName","src":"33185:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"33184:9:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1352,"nodeType":"FunctionDefinition","src":"33313:95:0","nodes":[],"body":{"id":1351,"nodeType":"Block","src":"33376:32:0","nodes":[],"statements":[{"expression":{"id":1349,"name":"treasury","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":43,"src":"33393:8:0","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"functionReturnParameters":1348,"id":1350,"nodeType":"Return","src":"33386:15:0"}]},"baseFunctions":[2587],"documentation":{"id":1344,"nodeType":"StructuredDocumentation","src":"33231:77:0","text":"@notice Getter for treasury address.\n @return The treasury address"},"functionSelector":"3b19e84a","implemented":true,"kind":"function","modifiers":[],"name":"getTreasury","nameLocation":"33322:11:0","parameters":{"id":1345,"nodeType":"ParameterList","parameters":[],"src":"33333:2:0"},"returnParameters":{"id":1348,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1347,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1352,"src":"33359:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":1346,"name":"address","nodeType":"ElementaryTypeName","src":"33359:15:0","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"33358:17:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1362,"nodeType":"FunctionDefinition","src":"33488:89:0","nodes":[],"body":{"id":1361,"nodeType":"Block","src":"33545:32:0","nodes":[],"statements":[{"expression":{"id":1359,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47,"src":"33562:8:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"functionReturnParameters":1358,"id":1360,"nodeType":"Return","src":"33555:15:0"}]},"baseFunctions":[2594],"documentation":{"id":1353,"nodeType":"StructuredDocumentation","src":"33414:69:0","text":"@notice Getter for registry.\n @return The registry address"},"functionSelector":"5ab1bd53","implemented":true,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"33497:11:0","parameters":{"id":1354,"nodeType":"ParameterList","parameters":[],"src":"33508:2:0"},"returnParameters":{"id":1358,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1357,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1362,"src":"33534:9:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":1356,"nodeType":"UserDefinedTypeName","pathNode":{"id":1355,"name":"IRegistry","nameLocations":["33534:9:0"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"33534:9:0"},"referencedDeclaration":2802,"src":"33534:9:0","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"}],"src":"33533:11:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1375,"nodeType":"FunctionDefinition","src":"33760:132:0","nodes":[],"body":{"id":1374,"nodeType":"Block","src":"33837:55:0","nodes":[],"statements":[{"expression":{"arguments":[{"id":1371,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1365,"src":"33875:9:0","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":1370,"name":"_isCloneableStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1135,"src":"33854:20:0","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":1372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33854:31:0","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1369,"id":1373,"nodeType":"Return","src":"33847:38:0"}]},"baseFunctions":[2561],"documentation":{"id":1363,"nodeType":"StructuredDocumentation","src":"33583:172:0","text":"@notice Getter for if strategy is cloneable.\n @param _strategy The address of the strategy\n @return 'true' if the strategy is cloneable, otherwise 'false'"},"functionSelector":"ab2ec589","implemented":true,"kind":"function","modifiers":[],"name":"isCloneableStrategy","nameLocation":"33769:19:0","parameters":{"id":1366,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1365,"mutability":"mutable","name":"_strategy","nameLocation":"33797:9:0","nodeType":"VariableDeclaration","scope":1375,"src":"33789:17:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1364,"name":"address","nodeType":"ElementaryTypeName","src":"33789:7:0","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"33788:19:0"},"returnParameters":{"id":1369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1375,"src":"33831:4:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1367,"name":"bool","nodeType":"ElementaryTypeName","src":"33831:4:0","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"33830:6:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1389,"nodeType":"FunctionDefinition","src":"34013:108:0","nodes":[],"body":{"id":1388,"nodeType":"Block","src":"34083:38:0","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1384,"name":"pools","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58,"src":"34100:5:0","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Pool_$2319_storage_$","typeString":"mapping(uint256 => struct IAllo.Pool storage ref)"}},"id":1386,"indexExpression":{"id":1385,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1378,"src":"34106:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"34100:14:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage","typeString":"struct IAllo.Pool storage ref"}},"functionReturnParameters":1383,"id":1387,"nodeType":"Return","src":"34093:21:0"}]},"baseFunctions":[2603],"documentation":{"id":1376,"nodeType":"StructuredDocumentation","src":"33898:110:0","text":"@notice Getter for the 'Pool'.\n @param _poolId The ID of the pool\n @return The 'Pool' struct"},"functionSelector":"068bcd8d","implemented":true,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"34022:7:0","parameters":{"id":1379,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1378,"mutability":"mutable","name":"_poolId","nameLocation":"34038:7:0","nodeType":"VariableDeclaration","scope":1389,"src":"34030:15:0","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1377,"name":"uint256","nodeType":"ElementaryTypeName","src":"34030:7:0","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34029:17:0"},"returnParameters":{"id":1383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1382,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1389,"src":"34070:11:0","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":1381,"nodeType":"UserDefinedTypeName","pathNode":{"id":1380,"name":"Pool","nameLocations":["34070:4:0"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"34070:4:0"},"referencedDeclaration":2319,"src":"34070:4:0","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"34069:13:0"},"scope":1390,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":16,"name":"IAllo","nameLocations":["5097:5:0"],"nodeType":"IdentifierPath","referencedDeclaration":2610,"src":"5097:5:0"},"id":17,"nodeType":"InheritanceSpecifier","src":"5097:5:0"},{"baseName":{"id":18,"name":"Native","nameLocations":["5108:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"5108:6:0"},"id":19,"nodeType":"InheritanceSpecifier","src":"5108:6:0"},{"baseName":{"id":20,"name":"Transfer","nameLocations":["5120:8:0"],"nodeType":"IdentifierPath","referencedDeclaration":3317,"src":"5120:8:0"},"id":21,"nodeType":"InheritanceSpecifier","src":"5120:8:0"},{"baseName":{"id":22,"name":"Initializable","nameLocations":["5134:13:0"],"nodeType":"IdentifierPath","referencedDeclaration":53191,"src":"5134:13:0"},"id":23,"nodeType":"InheritanceSpecifier","src":"5134:13:0"},{"baseName":{"id":24,"name":"Ownable","nameLocations":["5153:7:0"],"nodeType":"IdentifierPath","referencedDeclaration":4095,"src":"5153:7:0"},"id":25,"nodeType":"InheritanceSpecifier","src":"5153:7:0"},{"baseName":{"id":26,"name":"AccessControlUpgradeable","nameLocations":["5166:24:0"],"nodeType":"IdentifierPath","referencedDeclaration":52736,"src":"5166:24:0"},"id":27,"nodeType":"InheritanceSpecifier","src":"5166:24:0"},{"baseName":{"id":28,"name":"ReentrancyGuardUpgradeable","nameLocations":["5196:26:0"],"nodeType":"IdentifierPath","referencedDeclaration":53276,"src":"5196:26:0"},"id":29,"nodeType":"InheritanceSpecifier","src":"5196:26:0"},{"baseName":{"id":30,"name":"Errors","nameLocations":["5228:6:0"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"5228:6:0"},"id":31,"nodeType":"InheritanceSpecifier","src":"5228:6:0"}],"canonicalName":"Allo","contractDependencies":[],"contractKind":"contract","documentation":{"id":15,"nodeType":"StructuredDocumentation","src":"4725:351:0","text":"@title Allo\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice This contract is used to create & manage pools as well as manage the protocol.\n @dev The contract must be initialized with the 'initialize()' function."},"fullyImplemented":true,"linearizedBaseContracts":[1390,3089,53276,52736,54009,54021,52809,53735,4095,53191,3317,3106,2610],"name":"Allo","nameLocation":"5085:4:0","scope":1391,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,3929,3932,3935]}],"license":"AGPL-3.0-only"},"id":0} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategy.sol/CVStrategy.json b/pkg/contracts/out/CVStrategy.sol/CVStrategy.json index f4e7ceeb4..e0f02a996 100644 --- a/pkg/contracts/out/CVStrategy.sol/CVStrategy.json +++ b/pkg/contracts/out/CVStrategy.sol/CVStrategy.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_allo","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"D","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_STAKED_PROPOSALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_minThresholdPoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"calculateThreshold","inputs":[{"name":"_requestedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"canExecuteProposal","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canBeExecuted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deactivatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUnstake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"distribute","inputs":[{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAllo"}],"stateMutability":"view"},{"type":"function","name":"getMaxAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMaxConviction","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMetadata","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getPayouts","inputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IStrategy.PayoutSummary[]","components":[{"name":"recipientAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"getPoolAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPoolId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposal","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"submitter","type":"address","internalType":"address"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"voterStakedPoints","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalStakedAmount","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalVoterStake","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRecipientStatus","inputs":[{"name":"_recipientId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IStrategy.Status"}],"stateMutability":"view"},{"type":"function","name":"getStrategyId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTotalVoterStakePct","inputs":[{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increasePoolAmount","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isPoolActive","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidAllocator","inputs":[{"name":"_allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxRatio","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointConfig","inputs":[],"outputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"proposalCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.ProposalType"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"submitter","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"recipientId","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"registryCommunity","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract RegistryCommunity"}],"stateMutability":"view"},{"type":"function","name":"setDecay","inputs":[{"name":"_decay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxRatio","inputs":[{"name":"_maxRatio","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinThresholdPoints","inputs":[{"name":"minThresholdPoints_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPoolActive","inputs":[{"name":"_active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRegistryCommunity","inputs":[{"name":"_registryCommunity","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWeight","inputs":[{"name":"_weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportProposal","inputs":[{"name":"","type":"tuple[]","internalType":"struct StrategyStruct.ProposalSupport[]","components":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"deltaSupport","type":"int256","internalType":"int256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalEffectiveActivePoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalPointsActivated","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalStaked","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalVoterStakePct","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateProposalConviction","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"voterStakedProposals","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"weight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Allocated","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DecayUpdated","inputs":[{"name":"decay","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"beneficiary","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"recipientAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"InitializedCV","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"tuple","indexed":false,"internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"anonymous":false},{"type":"event","name":"MaxRatioUpdated","inputs":[{"name":"maxRatio","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinThresholdPointsUpdated","inputs":[{"name":"before","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PointsDeactivated","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolActive","inputs":[{"name":"active","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PoolAmountIncreased","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerDecreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensUnStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToDecrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerIncreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Registered","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupportAdded","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalStakedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"convictionLast","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WeightUpdated","inputs":[{"name":"weight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"AmountOverMaxRatio","inputs":[]},{"type":"error","name":"CantIncreaseFixedSystem","inputs":[]},{"type":"error","name":"ConvictionUnderMinimumThreshold","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"MaxPointsReached","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NotEnoughPointsToSupport","inputs":[{"name":"pointsSupport","type":"uint256","internalType":"uint256"},{"name":"pointsBalance","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[]},{"type":"error","name":"OnlyCommunityAllowed","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"PoolAmountNotEnough","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_requestedAmount","type":"uint256","internalType":"uint256"},{"name":"_poolAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PoolIdCannotBeZero","inputs":[]},{"type":"error","name":"PoolIsEmpty","inputs":[]},{"type":"error","name":"ProposalDataIsEmpty","inputs":[]},{"type":"error","name":"ProposalIdCannotBeZero","inputs":[]},{"type":"error","name":"ProposalNotActive","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalNotInList","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalSupportDuplicated","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SupportUnderflow","inputs":[{"name":"_support","type":"uint256","internalType":"uint256"},{"name":"_delta","type":"int256","internalType":"int256"},{"name":"_result","type":"int256","internalType":"int256"}]},{"type":"error","name":"TokenCannotBeZero","inputs":[]},{"type":"error","name":"TokenNotAllowed","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"UserCannotBeZero","inputs":[]},{"type":"error","name":"UserIsInactive","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x60c0604052600060065560006009553480156200001b57600080fd5b5060405162004ab338038062004ab38339810160408190526200003e91620000a6565b604080518082018252600a8152694356537472617465677960b01b6020808301919091526001600160a01b038416608052915183926200008191839101620000d8565b60408051601f19818403018152919052805160209091012060a0525062000128915050565b600060208284031215620000b957600080fd5b81516001600160a01b0381168114620000d157600080fd5b9392505050565b600060208083528351808285015260005b818110156200010757858101830151858201604001528201620000e9565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a0516149506200016360003960006105de0152600081816104720152818161188f015281816119220152611bab01526149506000f3fe60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea264697066735822122095f45b3d858d2c1b24417a89374324ce6b225f0f32105f76d76a49cf45ea744a64736f6c63430008130033","sourceMap":"2822:37282:126:-:0;;;6387:1;6354:34;;6504:1;6467:38;;7496:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5210:135:11;;;;;;;;;;;-1:-1:-1;;;5210:135:11;;;;;;;;-1:-1:-1;;;;;5268:19:11;;;;5320:17;;7544:5:126;;5320:17:11;;5210:135;;5320:17;;:::i;:::-;;;;-1:-1:-1;;5320:17:11;;;;;;;;;5310:28;;5320:17;5310:28;;;;5297:41;;-1:-1:-1;2822:37282:126;;-1:-1:-1;;2822:37282:126;14:290:143;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:143;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:143:o;309:548::-;421:4;450:2;479;468:9;461:21;511:6;505:13;554:6;549:2;538:9;534:18;527:34;579:1;589:140;603:6;600:1;597:13;589:140;;;698:14;;;694:23;;688:30;664:17;;;683:2;660:26;653:66;618:10;;589:140;;;593:3;778:1;773:2;764:6;753:9;749:22;745:31;738:42;848:2;841;837:7;832:2;824:6;820:15;816:29;805:9;801:45;797:54;789:62;;;;309:548;;;;:::o;:::-;2822:37282:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea264697066735822122095f45b3d858d2c1b24417a89374324ce6b225f0f32105f76d76a49cf45ea744a64736f6c63430008130033","sourceMap":"2822:37282:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7028:60;;;;;;;;;;-1:-1:-1;7028:60:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9003:202;;;;;;;;;;-1:-1:-1;9003:202:126;;;;;:::i;:::-;;:::i;:::-;;;2891:14:143;;2884:22;2866:41;;2854:2;2839:18;9003:202:126;2726:187:143;39640:219:126;;;;;;;;;;-1:-1:-1;39640:219:126;;;;;:::i;:::-;;:::i;10705:325:11:-;;;;;;;;;;-1:-1:-1;10705:325:11;;;;;:::i;:::-;;:::i;17263:99:126:-;;;;;;;;;;-1:-1:-1;17334:11:126;:21;17263:99;;;7277:25:143;;;7265:2;7250:18;17263:99:126;7131:177:143;6354:34:126;;;;;;;;;;;;;;;;5806:36;;;;;;;;;;;;5834:8;5806:36;;39330:155;;;;;;;;;;-1:-1:-1;39330:155:126;;;;;:::i;:::-;;:::i;6785:86:11:-;;;;;;;;;;-1:-1:-1;6860:4:11;6785:86;;;-1:-1:-1;;;;;7491:55:143;;;7473:74;;7461:2;7446:18;6785:86:11;7313:240:143;38531:520:126;;;;;;;;;;-1:-1:-1;38531:520:126;;;;;:::i;:::-;;:::i;12595:81::-;;;;;;;;;;;;;:::i;9429:344:11:-;;;;;;:::i;:::-;;:::i;39865:237:126:-;;;;;;;;;;-1:-1:-1;39865:237:126;;;;;:::i;:::-;;:::i;6784:45::-;;;;;;;;;;-1:-1:-1;6784:45:126;;;;;;;;;;;;;;;;;;:::i;14137:681::-;;;;;;;;;;-1:-1:-1;14137:681:126;;;;;:::i;:::-;;:::i;32689:1145::-;;;;;;;;;;-1:-1:-1;32689:1145:126;;;;;:::i;:::-;;:::i;6678:47::-;;;;;;;;;;-1:-1:-1;6678:47:126;;;;;;;;;;;;;;;:::i;6953:92:11:-;;;;;;;;;;-1:-1:-1;7032:6:11;;6953:92;;6095:49:126;;;;;;;;;;;;6142:2;6095:49;;7135:100:11;;;;;;;;;;-1:-1:-1;7218:10:11;7135:100;;7326:108;;;;;;;;;;-1:-1:-1;7417:10:11;;7326:108;;12395:145;;;;;;;;;;-1:-1:-1;12395:145:11;;;;;:::i;:::-;;:::i;6272:20:126:-;;;;;;;;;;;;;;;;34415:1482;;;;;;;;;;-1:-1:-1;34415:1482:126;;;;;:::i;:::-;;:::i;7144:53::-;;;;;;;;;;-1:-1:-1;7144:53:126;;;;;:::i;:::-;;;;;;;;;;;;;;6919:42;;;;;;;;;;-1:-1:-1;6919:42:126;;;;-1:-1:-1;;;;;6919:42:126;;;12682:128;;;;;;;;;;-1:-1:-1;12682:128:126;;;;;:::i;:::-;;:::i;39187:137::-;;;;;;;;;;-1:-1:-1;39187:137:126;;;;;:::i;:::-;;:::i;6298:23::-;;;;;;;;;;;;;;;;13173:958;;;;;;;;;;-1:-1:-1;13173:958:126;;;;;:::i;:::-;;:::i;6467:38::-;;;;;;;;;;;;;;;;12336:253;;;;;;;;;;;;;:::i;6394:26::-;;;;;;;;;;;;;;;;20535:735;;;;;;;;;;-1:-1:-1;20535:735:126;;;;;:::i;:::-;;:::i;7235:57::-;;;;;;;;;;-1:-1:-1;7235:57:126;;;;;:::i;:::-;;:::i;39057:124::-;;;;;;;;;;-1:-1:-1;39057:124:126;;;;;:::i;:::-;;:::i;4412:75:9:-;;;;;;;;;;;;4445:42;4412:75;;6327:21:126;;;;;;;;;;;;;;;;6835:51;;;;;;;;;;-1:-1:-1;6835:51:126;;;;;;25319:198;;;;;;;;;;-1:-1:-1;25319:198:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6426:35::-;;;;;;;;;;;;;;;;21909:288;;;;;;;;;;-1:-1:-1;21909:288:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22892:86::-;;;;;;;;;;-1:-1:-1;22892:86:126;;;;;:::i;:::-;;:::i;26114:127::-;;;;;;;;;;-1:-1:-1;26114:127:126;;;;;:::i;:::-;-1:-1:-1;;;;;26208:26:126;26182:7;26208:26;;;:18;:26;;;;;;;26114:127;17368:110;;;;;;;;;;-1:-1:-1;17460:11:126;;;;;;;17368:110;;24275:1038;;;;;;;;;;-1:-1:-1;24275:1038:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;37102:112::-;;;;;;;;;;-1:-1:-1;37187:20:126;;37102:112;;25900:145;;;;;;;;;;-1:-1:-1;25900:145:126;;;;;:::i;:::-;25977:7;26003:22;;;:9;:22;;;;;:35;;;;25900:145;7566:101:11;;;;;;;;;;-1:-1:-1;7622:4:11;14479:10;;;7566:101;;25718:176:126;;;;;;;;;;-1:-1:-1;25718:176:126;;;;;:::i;:::-;;:::i;17594:226::-;;;;;;;;;;-1:-1:-1;17594:226:126;;;;;:::i;:::-;;:::i;7823:146:11:-;;;;;;;;;;-1:-1:-1;7823:146:11;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7574:1028:126:-;;;;;;;;;;-1:-1:-1;7574:1028:126;;;;;:::i;:::-;;:::i;10092:220:11:-;;;;;;:::i;:::-;;:::i;8816:197::-;;;;;;;;;;-1:-1:-1;8816:197:11;;;;;:::i;:::-;;:::i;39491:143:126:-;;;;;;;;;;-1:-1:-1;39491:143:126;;;;;:::i;:::-;;:::i;7028:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7028:60:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9003:202::-;9088:4;9111:47;;;9126:32;9111:47;;:87;;-1:-1:-1;952:25:83;937:40;;;;9162:36:126;9104:94;9003:202;-1:-1:-1;;9003:202:126:o;39640:219::-;39723:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39745:17:126::1;:57:::0;;-1:-1:-1;;39745:57:126::1;-1:-1:-1::0;;;;;39745:57:126;::::1;::::0;;::::1;::::0;;;39817:35:::1;::::0;7473:74:143;;;39817:35:126::1;::::0;7461:2:143;7446:18;39817:35:126::1;;;;;;;;39640:219:::0;;:::o;10705:325:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10924:42:::2;10936:13;10951:5;10958:7;10924:11;:42::i;:::-;10705:325:::0;;;:::o;39330:155:126:-;39395:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39417:8:126::1;:20:::0;;;39452:26:::1;::::0;7277:25:143;;;39452:26:126::1;::::0;7265:2:143;7250:18;39452:26:126::1;7131:177:143::0;38531:520:126;38601:7;38663:21;;;:9;:21;;;;;38699:19;;:33;;38695:100;;38755:29;;-1:-1:-1;;;38755:29:126;;;;;7277:25:143;;;7250:18;;38755:29:126;;;;;;;;38695:100;38836:36;38809:23;;;;;;:63;;;;;;;;:::i;:::-;;38805:130;;38895:29;;-1:-1:-1;;;38895:29:126;;;;;7277:25:143;;;7250:18;;38895:29:126;7131:177:143;38805:130:126;38945:59;38972:8;38982;:21;;;38945:26;:59::i;:::-;39021:23;;;;38531:520;-1:-1:-1;;38531:520:126:o;12595:81::-;12640:29;12658:10;12640:17;:29::i;:::-;12595:81::o;9429:344:11:-;9584:19;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;9683:34:::2;9702:5;9709:7;9683:18;:34::i;:::-;9669:48:::0;9429:344;-1:-1:-1;;;9429:344:11:o;39865:237:126:-;39950:10;5954:30:11;5976:7;5954:21;:30::i;:::-;40003:19:126::1;::::0;39977:67:::1;::::0;;16754:25:143;;;16810:2;16795:18;;16788:34;;;39977:67:126::1;::::0;16727:18:143;39977:67:126::1;;;;;;;-1:-1:-1::0;40054:19:126::1;:41:::0;39865:237::o;14137:681::-;14221:7;14240:23;:21;:23::i;:::-;14319:24;14376:36;14361:11;;;;;;;:51;;;;;;;;:::i;:::-;;:103;;;-1:-1:-1;14431:33:126;14416:11;;;;;;;:48;;;;;;;;:::i;:::-;;14361:103;14357:298;;;-1:-1:-1;14528:16:126;14357:298;;;14595:49;14618:7;14627:16;14595:22;:49::i;:::-;14576:68;;14357:298;14688:16;14664:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;14719:59:126;;;-1:-1:-1;;;;;17375:55:143;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14719:59:126;;17345:2:143;17330:18;14719:59:126;;;;;;;14795:16;14137:681;-1:-1:-1;;;14137:681:126:o;32689:1145::-;32823:7;32846:9;32858:11;32846:23;;33184:17;33204:27;5834:8;33219:3;33210:5;;:12;;33209:18;;;;:::i;:::-;33229:1;33204:4;:27::i;:::-;33184:47;;33824:3;5977:34;33801:5;;5834:8;33797:9;;;;:::i;:::-;33772:19;33782:9;-1:-1:-1;;;33772:19:126;:::i;:::-;33754:14;5834:8;33754:10;:14;:::i;:::-;:38;;;;:::i;:::-;33753:54;;;;:::i;:::-;33727:21;33739:9;33727;:21;:::i;:::-;33726:82;;;;:::i;:::-;33725:94;;;;:::i;:::-;33724:103;;;32689:1145;-1:-1:-1;;;;;;32689:1145:126:o;12395:145:11:-;12481:4;12504:29;12522:10;12504:17;:29::i;34415:1482:126:-;34490:18;34658:1;34644:10;;:15;34640:66;;34682:13;;;;;;;;;;;;;;34640:66;35146:33;35162:16;35146:15;:33::i;:::-;35142:91;;;35202:20;;-1:-1:-1;;;35202:20:126;;;;;;;;;;;35142:91;35455:10;;35381:13;;35425:26;:16;35444:7;35425:26;:::i;:::-;35424:41;;;;:::i;:::-;5834:8;35398;;35409:7;35398:18;;;;:::i;:::-;35397:24;;;;:::i;:::-;:68;;;;:::i;:::-;35381:84;;35618:2;35576:28;37187:20;;;37102:112;35576:28;35566:5;;35562:9;;5834:8;35562:9;:::i;:::-;5834:8;35549:2;35531:13;35539:5;;35531:13;:::i;:::-;35530:21;;5834:8;35517:3;35507:6;;:13;;35506:19;;;;:::i;:::-;35505:47;;;;:::i;:::-;35504:53;;;;:::i;:::-;35503:69;;;;:::i;:::-;35502:102;;;;:::i;:::-;35488:132;;35475:145;;35836:19;;35823:10;:32;:67;;35871:19;;35823:67;;;-1:-1:-1;35858:10:126;35810:80;-1:-1:-1;34415:1482:126:o;12682:128::-;12744:23;:21;:23::i;:::-;12777:26;12795:7;12777:17;:26::i;:::-;12682:128;:::o;39187:137::-;39246:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39268:5:126::1;:14:::0;;;39297:20:::1;::::0;7277:25:143;;;39297:20:126::1;::::0;7265:2:143;7250:18;39297:20:126::1;7131:177:143::0;13173:958:126;13255:7;13319:23;:21;:23::i;:::-;13352:24;13409:36;13394:11;;;;;;;:51;;;;;;;;:::i;:::-;;13390:441;;13503:14;13480:38;13461:57;;13390:441;;;13554:33;13539:11;;;;;;;:48;;;;;;;;:::i;:::-;;13535:296;;13622:44;13642:7;13651:14;13622:19;:44::i;13535:296::-;13702:36;13687:11;;;;;;;:51;;;;;;;;:::i;:::-;;13683:148;;13773:47;13796:7;13805:14;13773:22;:47::i;:::-;13754:66;;13683:148;13859:17;;:69;;-1:-1:-1;;;13859:69:126;;-1:-1:-1;;;;;18552:15:143;;;13859:69:126;;;18534:34:143;13922:4:126;18584:18:143;;;18577:43;13840:16:126;;13859:17;;:45;;18446:18:143;;13859:69:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13840:88;;13942:11;13938:82;;;13993:16;13969:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;13938:82:126;14034:57;;;-1:-1:-1;;;;;17375:55:143;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14034:57:126;;17345:2:143;17330:18;14034:57:126;;;;;;;-1:-1:-1;14108:16:126;13173:958;-1:-1:-1;;;13173:958:126:o;12336:253::-;12418:17;;:65;;;;;12398:10;12418:65;;;18534:34:143;;;12477:4:126;18584:18:143;;;18577:43;12398:10:126;-1:-1:-1;;;;;12418:17:126;;:42;;18446:18:143;;12418:65:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12517:17:126;;:65;;-1:-1:-1;;;12517:65:126;;-1:-1:-1;;;;;18552:15:143;;;12517:65:126;;;18534:34:143;12576:4:126;18584:18:143;;;18577:43;12517:17:126;;;;-1:-1:-1;12517:42:126;;-1:-1:-1;18446:18:143;;12517:65:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12493:20;;:89;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12336:253:126:o;20535:735::-;20604:18;20677:21;;;:9;:21;;;;;20887;;;;20604:18;;;;20843:66;;20677:21;;20843:33;:66::i;:::-;20783:126;;;;20924:14;20942:1;20924:19;:39;;;;-1:-1:-1;20947:16:126;;20924:39;20920:110;;;20996:8;:23;;;20979:40;;20920:110;21039:17;21059:44;21078:8;:24;;;21059:18;:44::i;:::-;21236:27;;;;;20535:735;-1:-1:-1;;;;;20535:735:126:o;7235:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39057:124::-;39120:7;39167:5;;5834:8;39163:9;;;;:::i;:::-;39148:10;5834:8;39148:6;:10;:::i;:::-;39147:26;;;;:::i;25319:198::-;-1:-1:-1;;;;;;;;;;;;;;;;;25411:40:126;25454:9;:22;25464:11;25454:22;;;;;;;;;;;25411:65;;25493:8;:17;;25486:24;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25319:198;;;:::o;21909:288::-;21995:22;22079:16;;-1:-1:-1;;;22079:16:126;;;;;;;;;;;22892:86;22948:23;22963:7;22948:14;:23::i;24275:1038::-;24377:17;24408:19;24441:22;24477:23;24514:20;24548:44;24606:17;24637:22;24673:17;24704:25;24754:40;24797:9;:22;24807:11;24797:22;;;;;;;;;;;24754:65;;24842:8;:24;;;24870:1;24842:29;:80;;24878:44;24897:8;:24;;;24878:18;:44::i;:::-;24842:80;;;24874:1;24842:80;24830:92;;24953:8;:18;;;;;;;;;;-1:-1:-1;;;;;24953:18:126;24985:8;:20;;;;;;;;;;-1:-1:-1;;;;;24985:20:126;25019:8;:23;;;;;;;;;;-1:-1:-1;;;;;25019:23:126;25056:8;:24;;;25094:8;:21;;;25129:8;:23;;;;;;;;;;;;25166:8;:18;;;25198:8;:23;;;25235:9;25258:8;:26;;:38;25285:10;-1:-1:-1;;;;;25258:38:126;-1:-1:-1;;;;;25258:38:126;;;;;;;;;;;;;24932:374;;;;;;;;;;;;;;;;;;;;;24275:1038;;;;;;;;;;;:::o;25718:176::-;25809:7;26374:22;;;:9;:22;;;;;;;;-1:-1:-1;;;;;26374:48:126;;;;:40;;:48;;;;;;25835:52;26247:182;17594:226;17737:16;;-1:-1:-1;;;17737:16:126;;;;;;;;;;;7823:146:11;7904:6;7929:33;7949:12;7929:19;:33::i;7574:1028:126:-;7650:28;7670:7;7650:19;:28::i;:::-;7688:41;7743:5;7732:52;;;;;;;;;;;;:::i;:::-;8139:20;;7688:96;;-1:-1:-1;;;;;;8139:34:126;8135:94;;8196:22;;-1:-1:-1;;;8196:22:126;;;;;;;;;;;8135:94;8277:20;;8239:17;:59;;-1:-1:-1;;8239:59:126;-1:-1:-1;;;;;8239:59:126;;;;;;;;;8316:8;;;;8308:5;:16;8345:11;;;;8334:8;:22;8375:9;;;;8366:6;:18;8409:15;;;;8394:12;:30;;-1:-1:-1;;8394:30:126;-1:-1:-1;8409:15:126;8394:30;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8448:14:126;;;;8434:11;:28;;-1:-1:-1;;8434:28:126;;8448:14;8434:28;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8486:14:126;;;;8472:28;:11;:28;8532:21;;;;8510:19;:43;8569:26;;;;;;8583:7;;8486:2;;8569:26;:::i;:::-;;;;;;;;7640:962;7574:1028;;:::o;10092:220:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10240:25:::2;10250:5;10257:7;10240:9;:25::i;:::-;10092:220:::0;;:::o;8816:197::-;5660:16;:14;:16::i;:::-;8956:7:::1;8942:10;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8973:33:11::1;::::0;-1:-1:-1;8998:7:11;8973:24:::1;:33::i;39491:143:126:-:0;39552:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39574:6:126::1;:16:::0;;;39605:22:::1;::::0;7277:25:143;;;39605:22:126::1;::::0;7265:2:143;7250:18;39605:22:126::1;7131:177:143::0;13122:142:11;13218:6;;13199:35;;;;;;;;22607:25:143;;;;-1:-1:-1;;;;;22668:55:143;;;22648:18;;;22641:83;13199:4:11;:18;;;;22580::143;;13199:35:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13194:63;;13243:14;;-1:-1:-1;;;13243:14:11;;;;;;;;;;;12814:111;12868:10;-1:-1:-1;;;;;12890:4:11;12868:27;;12864:54;;12904:14;;-1:-1:-1;;;12904:14:11;;;;;;;;;;;13771:105;13832:6;;13842:1;13832:11;13828:41;;13852:17;;;;;;;;;;;;;;18773:1756:126;18968:1;18952:5;:12;:17;18948:76;;18992:21;;;;;;;;;;;;;;18948:76;19034:18;19066:5;19055:28;;;;;;;;;;;;:::i;:::-;19034:49;;19098:10;19112:1;19098:15;19094:77;;19136:24;;;;;;;;;;;;;;19094:77;19180:40;19223:21;;;:9;:21;;;;;19275:35;19259:12;;;;:51;;;;;;;;:::i;:::-;;19255:1208;;19330:19;;:33;;19326:108;;19390:29;;-1:-1:-1;;;19390:29:126;;;;;7277:25:143;;;7250:18;;19390:29:126;7131:177:143;19326:108:126;19479:10;;19452:8;:24;;;:37;19448:152;;;19548:24;;;;19574:10;;19516:69;;;;;;;;22937:25:143;;;22978:18;;;22971:34;;;;23021:18;;;23014:34;22910:18;;19516:69:126;22735:319:143;19448:152:126;19645:36;19618:23;;;;;;:63;;;;;;;;:::i;:::-;;19614:138;;19708:29;;-1:-1:-1;;;19708:29:126;;;;;7277:25:143;;;7250:18;;19708:29:126;7131:177:143;19614:138:126;19766:22;19791:36;19816:10;19791:24;:36::i;:::-;19766:61;;19841:17;19861:44;19880:8;:24;;;19861:18;:44::i;:::-;19841:64;;19941:9;19924:14;:26;:58;;;;;19981:1;19954:8;:24;;;:28;19924:58;19920:137;;;20009:33;;;;;;;;;;;;;;19920:137;20109:6;;20096:20;;;;;20071:22;;-1:-1:-1;;;;;20096:4:126;:12;;;;:20;;;;7277:25:143;;;7265:2;7250:18;;7131:177;20096:20:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20096:20:126;;;;;;;;;;;;:::i;:::-;20071:45;;20145:8;:24;;;20131:10;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;20207:10:126;;;;20219:20;;;;;20241:24;;;20191:75;;20207:10;-1:-1:-1;;;;;20219:20:126;;20191:15;:75::i;:::-;20297:23;;;:64;;-1:-1:-1;;20297:64:126;20323:38;20297:64;;;;;;20405:20;;;20297:64;20427:24;;;20381:71;;;25025:25:143;;;-1:-1:-1;;;;;20405:20:126;;;25081:2:143;25066:18;;25059:83;25158:18;;25151:34;20381:71:126;;25013:2:143;24998:18;20381:71:126;;;;;;;19312:1151;;;19255:1208;18859:1670;;18773:1756;;;:::o;37404:396::-;37523:18;37543:19;37566:56;37600:9;37611:10;37566:33;:56::i;:::-;37522:100;;;;37636:10;37650:1;37636:15;:35;;;;-1:-1:-1;37655:16:126;;37636:35;37632:72;;;37687:7;;37404:396;;:::o;37632:72::-;37713:19;;;:33;37756:24;;;;:37;;;;-1:-1:-1;37404:396:126:o;12816:351::-;12903:17;;:66;;-1:-1:-1;;;12903:66:126;;-1:-1:-1;;;;;18552:15:143;;;12903:66:126;;;18534:34:143;12963:4:126;18584:18:143;;;18577:43;12903:17:126;;;;:42;;18446:18:143;;12903:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12879:20;;:90;;;;;;;:::i;:::-;;;;-1:-1:-1;;12979:17:126;;:68;;;;;-1:-1:-1;;;;;18552:15:143;;;12979:68:126;;;18534:34:143;13041:4:126;18584:18:143;;;18577:43;12979:17:126;;;;:44;;18446:18:143;;12979:68:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13102:17;13111:7;13102:8;:17::i;:::-;13134:26;;-1:-1:-1;;;;;7491:55:143;;7473:74;;13134:26:126;;7461:2:143;7446:18;13134:26:126;;;;;;;;12816:351;:::o;10385:1945::-;10477:7;10556:45;10615:5;10604:50;;;;;;;;;;;;:::i;:::-;10769:15;;10556:98;;-1:-1:-1;10769:15:126;:20;10765:78;;10812:20;;;;;;;;;;;;;;10765:78;10935:35;10919:12;;;;:51;;;;;;;;:::i;:::-;;10915:721;;10986:39;11004:8;:20;;;10986:17;:39::i;:::-;11091:23;;;;-1:-1:-1;;;;;11091:37:126;11087:102;;11155:19;;;;;;;;;;;;;;11087:102;11202:17;11222:4;-1:-1:-1;;;;;11222:12:126;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11222:22:126;;11245:6;;11222:30;;;;;;;;;;;;;7277:25:143;;7265:2;7250:18;;7131:177;11222:30:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11222:30:126;;;;;;;;;;;;:::i;:::-;:36;;;11202:56;;11303:9;-1:-1:-1;;;;;11276:36:126;:8;:23;;;-1:-1:-1;;;;;11276:36:126;;11272:234;;11474:17;;;;;;;;;;;;;;11272:234;11523:41;11539:8;:24;;;11523:15;:41::i;:::-;11519:107;;;11591:20;;-1:-1:-1;;;11591:20:126;;;;;;;;;;;11519:107;10972:664;10915:721;11645:18;11668:15;;11666:17;;;;;:::i;:::-;;;;;-1:-1:-1;11693:33:126;11729:21;;;:9;:21;;;;;;;;11761:25;;;11796:11;;;:21;;-1:-1:-1;;;;;11796:21:126;;;-1:-1:-1;;11796:21:126;;;;;;;11843:20;;;;11827:13;;;:36;;;;;;;;;;;;;;11892:23;;;;11873:16;;;:42;;;;;;;;;;;11945:24;;;;-1:-1:-1;11925:17:126;;;:44;;;;12030:16;;;:55;;-1:-1:-1;;12030:55:126;;;;;;12109:12;12095:11;;;:26;-1:-1:-1;12131:16:126;;:20;;;;12210:17;;;;12197:30;;:10;;;:30;;;;;;;11666:17;;-1:-1:-1;11729:21:126;;12197:30;;;;;;;;:::i;:::-;-1:-1:-1;;12259:6:126;;12243:35;;;16754:25:143;;;16810:2;16795:18;;16788:34;;;12243:35:126;;-1:-1:-1;16727:18:143;12243:35:126;;;;;;;-1:-1:-1;12311:10:126;10385:1945;-1:-1:-1;;;;10385:1945:126:o;9759:162::-;9841:17;;-1:-1:-1;;;;;9841:17:126;9819:10;:40;9815:100;;9882:22;;;;;;;;;;;;;;16455:802;16620:17;;:31;;;-1:-1:-1;;;16620:31:126;;;;16553:7;;16590:2;;-1:-1:-1;;;;;16620:17:126;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16606:56:126;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16606:58:126;;;;;;;;-1:-1:-1;;16606:58:126;;;;;;;;;;;;:::i;:::-;;;16602:208;;16763:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;16602:208;;;16714:17;;;-1:-1:-1;16602:208:126;16819:49;;;;;;;;;;;;;;;;;;16851:16;16819:11;:49::i;:::-;16902:17;;:48;;-1:-1:-1;;;16902:48:126;;-1:-1:-1;;;;;7491:55:143;;;16902:48:126;;;7473:74:143;16878:21:126;;16953:16;;16902:17;;;:39;;7446:18:143;;16902:48:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;;;;:::i;:::-;16878:91;;16979:43;;;;;;;;;;;;;;;;;;17008:13;16979:11;:43::i;:::-;17032:22;17057:40;17083:13;17089:7;17083:2;:13;:::i;:::-;17067:29;;:13;:29;:::i;:::-;17057:9;:40::i;:::-;17134:17;;:66;;-1:-1:-1;;;17134:66:126;;-1:-1:-1;;;;;18552:15:143;;;17134:66:126;;;18534:34:143;17194:4:126;18584:18:143;;;18577:43;17032:65:126;;-1:-1:-1;17107:24:126;;17032:65;;17134:17;;:42;;18446:18:143;;17134:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:83;;;;:::i;:::-;17107:110;16455:802;-1:-1:-1;;;;;;;16455:802:126:o;36649:447::-;36710:15;-1:-1:-1;;;36745:2:126;:12;36737:53;;;;-1:-1:-1;;;36737:53:126;;30927:2:143;36737:53:126;;;30909:21:143;30966:2;30946:18;;;30939:30;31005;30985:18;;;30978:58;31053:18;;36737:53:126;30725:352:143;36737:53:126;-1:-1:-1;;;;36812:2:126;36836;36875:215;36882:5;;36875:215;;36907:1;36911;36907:5;36916:1;36907:10;36903:177;;36941:10;36946:1;36949;36941:4;:10::i;:::-;36937:14;-1:-1:-1;36975:1:126;36969:7;36875:215;;36903:177;37025:16;37030:7;37039:1;37025:4;:16::i;:::-;37015:26;-1:-1:-1;37059:6:126;37064:1;37059:6;;:::i;:::-;;;36875:215;;;36727:369;;36649:447;;;;:::o;22695:191::-;22774:4;-1:-1:-1;;;;;22840:24:126;;;:39;;22875:4;22840:39;;;22867:5;22833:46;22695:191;-1:-1:-1;;22695:191:126:o;26777:174::-;26851:19;26924:20;5834:8;26924:16;:20;:::i;:::-;26910:10;;26899:8;;:21;;;;:::i;:::-;:45;;;26777:174;-1:-1:-1;;26777:174:126:o;14956:615::-;15049:7;15068:24;15095:14;15068:41;;15119:51;;;;;;;;;;;;;;;;;;15153:16;15119:11;:51::i;:::-;15202:17;;:66;;-1:-1:-1;;;15202:66:126;;-1:-1:-1;;;;;18552:15:143;;;15202:66:126;;;18534:34:143;15262:4:126;18584:18:143;;;18577:43;15180:19:126;;15202:17;;:42;;18446:18:143;;15202:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15180:88;;15278:39;;;;;;;;;;;;;;;;;;15305:11;15278;:39::i;:::-;15364:11;:21;15331:30;15345:16;15331:11;:30;:::i;:::-;:54;15327:139;;;15420:11;:21;:35;;15444:11;;15420:35;:::i;:::-;15401:54;;15327:139;15475:55;;;;;;;;;;;;;;;;;;15513:16;15475:11;:55::i;:::-;-1:-1:-1;15548:16:126;14956:615;-1:-1:-1;;;14956:615:126:o;15577:730::-;15713:17;;:48;;-1:-1:-1;;;15713:48:126;;-1:-1:-1;;;;;7491:55:143;;;15713:48:126;;;7473:74:143;15673:7:126;;;;15764:14;;15713:17;;;;:39;;7446:18:143;;15713:48:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;:::i;:::-;15837:17;;:31;;;-1:-1:-1;;;15837:31:126;;;;15692:86;;-1:-1:-1;15807:2:126;;-1:-1:-1;;;;;15837:17:126;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15823:56:126;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15823:58:126;;;;;;;;-1:-1:-1;;15823:58:126;;;;;;;;;;;;:::i;:::-;;;15819:208;;15980:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;15819:208;;;15931:17;;;-1:-1:-1;15819:208:126;16036:22;16061:37;16084:13;16090:7;16084:2;:13;:::i;:::-;16071:26;;:10;:26;:::i;16061:37::-;16132:17;;:66;;-1:-1:-1;;;16132:66:126;;-1:-1:-1;;;;;18552:15:143;;;16132:66:126;;;18534:34:143;16192:4:126;18584:18:143;;;18577:43;16036:62:126;;-1:-1:-1;16108:21:126;;16132:17;;;;:42;;18446:18:143;;16132:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16108:90;-1:-1:-1;16209:24:126;16236:30;16108:90;16236:14;:30;:::i;:::-;16209:57;15577:730;-1:-1:-1;;;;;;;;15577:730:126:o;37806:719::-;37959:18;37979:19;38028:12;38014:26;;38080:11;38057:9;:19;;;:34;;38050:42;;;;:::i;:::-;38129:11;38106:9;:19;;;:34;38102:173;;-1:-1:-1;38230:1:126;;-1:-1:-1;38230:1:126;38222:13;;38102:173;38341:177;38388:9;:19;;;38374:11;:33;;;;:::i;:::-;38460:9;:24;;;38498:10;38341:19;:177::i;:::-;38328:190;;37806:719;;;;;;:::o;14116:118:11:-;14173:10;:20;;-1:-1:-1;;14173:20:11;;;;;;;;;;14208:19;;2866:41:143;;;14208:19:11;;2854:2:143;2839:18;14208:19:11;2726:187:143;21560:220:126;21643:6;-1:-1:-1;;;;;21711:26:126;;;:62;;21758:15;21711:62;;;21740:15;21704:69;21560:220;-1:-1:-1;;21560:220:126:o;8269:350:11:-;5660:16;:14;:16::i;:::-;8428:6:::1;::::0;:11;8424:45:::1;;8448:21;;;;;;;;;;;;;;8424:45;8556:7;8567:1;8556:12:::0;8552:34:::1;;8577:9;;;;;;;;;;;;;;8552:34;8596:6;:16:::0;8269:350::o;17966:551:126:-;18050:28;18070:7;18050:19;:28::i;:::-;18165:17;;:69;;-1:-1:-1;;;18165:69:126;;-1:-1:-1;;;;;18552:15:143;;;18165:69:126;;;18534:34:143;18228:4:126;18584:18:143;;;18577:43;18134:28:126;;18165:17;;:45;;18446:18:143;;18165:69:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18134:100;;18249:23;18244:78;;18295:16;;;;;;;;;;;;;;18244:78;18331:42;18387:5;18376:53;;;;;;;;;;;;:::i;:::-;18331:98;;18439:37;18464:7;18473:2;18439:24;:37::i;:::-;18486:24;18498:7;18507:2;18486:11;:24::i;:::-;18040:477;;17966:551;;:::o;22473:127::-;22565:28;;7277:25:143;;;22565:28:126;;7265:2:143;7250:18;22565:28:126;7131:177:143;6721:269:10;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;22984:729:126:-;-1:-1:-1;;;;;23118:29:126;;23086;23118;;;:20;:29;;;;;;;;23086:61;;;;;;;;;;;;;;;;;;;23118:29;;23086:61;;;23118:29;23086:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23162:9;23157:550;23181:12;:19;23177:1;:23;23157:550;;;23221:18;23242:12;23255:1;23242:15;;;;;;;;:::i;:::-;;;;;;;23221:36;;23271:40;23314:9;:21;23324:10;23314:21;;;;;;;;;;;23271:64;;23353:26;23368:10;23353:14;:26::i;:::-;23349:348;;;-1:-1:-1;;;;;23422:35:126;;23399:20;23422:35;;;:26;;;:35;;;;;;;23475:39;;;;23532:21;;;:37;;23422:35;;;;23532:37;;23422:35;;23532:37;:::i;:::-;;;;;;;;23602:12;23587:11;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;23632:50:126;;-1:-1:-1;23659:8:126;23669:12;23632:26;:50::i;:::-;23381:316;23349:348;23207:500;;23202:3;;;;;:::i;:::-;;;;23157:550;;9927:132;-1:-1:-1;;;;;10000:22:126;;9996:56;;10031:21;;;;;;;;;;;;;;5630:121:35;5685:59;5740:2;5701:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5701:42:35;;;;;;;;;;;;;;;;;;;;5685:15;:59::i;6548:139::-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:35;;;;;;;;;;;;;;;;;;;;6612:15;:68::i;6530:1642:86:-;6578:7;6601:1;6606;6601:6;6597:45;;-1:-1:-1;6630:1:86;;6530:1642;-1:-1:-1;6530:1642:86:o;6597:45::-;7321:14;7355:1;7344:7;7349:1;7344:4;:7::i;:::-;:12;;7338:1;:19;;7321:36;;7816:1;7805:6;7801:1;:10;;;;;:::i;:::-;;7792:6;:19;7791:26;;7782:35;;7865:1;7854:6;7850:1;:10;;;;;:::i;:::-;;7841:6;:19;7840:26;;7831:35;;7914:1;7903:6;7899:1;:10;;;;;:::i;:::-;;7890:6;:19;7889:26;;7880:35;;7963:1;7952:6;7948:1;:10;;;;;:::i;:::-;;7939:6;:19;7938:26;;7929:35;;8012:1;8001:6;7997:1;:10;;;;;:::i;:::-;;7988:6;:19;7987:26;;7978:35;;8061:1;8050:6;8046:1;:10;;;;;:::i;:::-;;8037:6;:19;8036:26;;8027:35;;8110:1;8099:6;8095:1;:10;;;;;:::i;:::-;;8086:6;:19;8085:26;;8076:35;;8132:23;8136:6;8148;8144:1;:10;;;;;:::i;:::-;;8132:3;:23::i;36158:269:126:-;36219:15;-1:-1:-1;;;36254:2:126;:13;;36246:66;;;;-1:-1:-1;;;36246:66:126;;33373:2:143;36246:66:126;;;33355:21:143;33412:2;33392:18;;;33385:30;33451:34;33431:18;;;33424:62;33522:10;33502:18;;;33495:38;33550:19;;36246:66:126;33171:404:143;36246:66:126;-1:-1:-1;;;36330:2:126;:12;36322:53;;;;-1:-1:-1;;;36322:53:126;;33782:2:143;36322:53:126;;;33764:21:143;33821:2;33801:18;;;33794:30;33860;33840:18;;;33833:58;33908:18;;36322:53:126;33580:352:143;36322:53:126;36417:3;5977:34;36394:7;36399:2;36394;:7;:::i;:::-;36393:19;;;;:::i;:::-;36392:28;;;36158:269;-1:-1:-1;;;36158:269:126:o;9376:377::-;-1:-1:-1;;;;;9449:21:126;;9445:77;;9493:18;;;;;;;;;;;;;;9445:77;9543:17;;-1:-1:-1;;;;;9543:17:126;9531:100;;9598:22;;-1:-1:-1;;;9598:22:126;;;;;;;;;;;9531:100;9645:17;;:35;;;;;-1:-1:-1;;;;;7491:55:143;;;9645:35:126;;;7473:74:143;9645:17:126;;;;:26;;7446:18:143;;9645:35:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9640:93;;9703:19;;;;;;;;;;;;;;26957:1548;27097:22;27138:9;27133:630;27157:16;:23;27153:1;:27;27133:630;;;27260:16;27277:1;27260:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27294:1;27260:35;27256:187;27420:8;27256:187;27456:18;27477:16;27494:1;27477:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27456:51;;27526:26;27541:10;27526:14;:26::i;:::-;27521:167;;27579:29;;-1:-1:-1;;;27579:29:126;;;;;7277:25:143;;;7250:18;;27579:29:126;7131:177:143;27521:167:126;27720:16;27737:1;27720:19;;;;;;;;:::i;:::-;;;;;;;:32;;;27701:51;;;;;:::i;:::-;;;27187:576;27133:630;27182:3;;;;:::i;:::-;;;;27133:630;;;-1:-1:-1;;;;;;26208:26:126;;27859:29;26208:26;;;:18;:26;;;;;;27891:60;;27935:15;27891:11;:60::i;:::-;28062:17;;:66;;-1:-1:-1;;;28062:66:126;;-1:-1:-1;;;;;18552:15:143;;;28062:66:126;;;18534:34:143;28122:4:126;18584:18:143;;;18577:43;27859:92:126;;-1:-1:-1;28033:26:126;;28062:17;;;;:42;;18446:18:143;;28062:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28033:95;;28318:18;28294:21;:42;28290:147;;;28359:67;;;;;;;;16754:25:143;;;16795:18;;;16788:34;;;16727:18;;28359:67:126;16580:248:143;28290:147:126;-1:-1:-1;;;;;;28447:27:126;;;;;;;:18;:27;;;;;:51;;;;-1:-1:-1;;26957:1548:126:o;28511:3479::-;28626:29;28670:9;28665:3319;28689:16;:23;28685:1;:27;28665:3319;;;28733:18;28754:16;28771:1;28754:19;;;;;;;;:::i;:::-;;;;;;;:30;;;28733:51;;28857:12;:19;28880:1;28857:24;28853:920;;28916:16;;;28930:1;28916:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28916:16:126;28901:31;;28968:10;28950:12;28963:1;28950:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;28853:920;;;29027:10;29068:9;29063:318;29087:12;:19;29083:1;:23;29063:318;;;29183:10;29164:12;29177:1;29164:15;;;;;;;;:::i;:::-;;;;;;;:29;29160:203;;29266:40;;;;;;;;16754:25:143;;;16795:18;;;16788:34;;;29229:4:126;;-1:-1:-1;16727:18:143;;29266:40:126;16580:248:143;29160:203:126;29108:3;;;;:::i;:::-;;;;29063:318;;;;29403:5;29398:361;;29432:21;29470:12;:19;29492:1;29470:23;;;;:::i;:::-;29456:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29456:38:126;;29432:62;;29521:9;29516:124;29540:12;:19;29536:1;:23;29516:124;;;29602:12;29615:1;29602:15;;;;;;;;:::i;:::-;;;;;;;29592:4;29597:1;29592:7;;;;;;;;:::i;:::-;;;;;;;;;;:25;29561:3;;;;:::i;:::-;;;;29516:124;;;;29689:10;29661:4;29666:12;:19;29661:25;;;;;;;;:::i;:::-;;;;;;;;;;:38;29736:4;-1:-1:-1;29398:361:126;29009:764;28853:920;29786:12;29801:16;29818:1;29801:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:32;;;29848:40;29891:21;;;:9;:21;;;;;;-1:-1:-1;;;;;30045:35:126;;;;:26;;;:35;;;;;;29801:32;;-1:-1:-1;30268:40:126;30045:35;29801:32;30268:11;:40::i;:::-;-1:-1:-1;;;;;30443:35:126;;;;;;:26;;;:35;;;;;:50;;;30245:63;;-1:-1:-1;30443:35:126;30765:246;-1:-1:-1;;;;;30789:29:126;;;;;;:20;:29;;;;;:36;30785:40;;30765:246;;;30890:19;;-1:-1:-1;;;;;30854:29:126;;30890:19;30854:29;;;:20;:29;;;;;:32;;30884:1;;30854:32;;;;;;:::i;:::-;;;;;;;;;:55;30850:147;;30947:4;30933:18;;30973:5;;30850:147;30827:3;;;;:::i;:::-;;;;30765:246;;;;31029:11;31024:106;;-1:-1:-1;;;;;31060:29:126;;;;;;:20;:29;;;;;;;31095:19;;31060:55;;;;;;;;;;;;;;;;;;31024:106;31309:12;31285:20;:36;31281:370;;31356:35;31371:20;31356:12;:35;:::i;:::-;31341:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31434:35:126;;-1:-1:-1;31449:20:126;31434:12;:35;:::i;:::-;31409:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;31281:370:126;;-1:-1:-1;31281:370:126;;31523:35;31546:12;31523:20;:35;:::i;:::-;31508:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31601:35:126;;-1:-1:-1;31624:12:126;31601:20;:35;:::i;:::-;31576:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;31281:370:126;31668:8;:18;;;31690:1;31668:23;31664:310;;31732:12;31711:18;;;:33;31664:310;;;31783:58;31810:8;31820:20;31783:26;:58::i;:::-;31912:21;;;;31935:23;;;;31864:95;;;-1:-1:-1;;;;;34435:55:143;;34417:74;;34522:2;34507:18;;34500:34;;;34550:18;;;34543:34;;;34608:2;34593:18;;34586:34;;;;34651:3;34636:19;;34629:35;31864:95:126;;34404:3:143;34389:19;31864:95:126;;;;;;;31664:310;28719:3265;;;;;;28714:3;;;;;:::i;:::-;;;;28665:3319;;2455:490:14;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;26586:185:126:-;26654:4;26677:22;;;:9;:22;;;;;:33;:37;;;;:87;;-1:-1:-1;;26762:1:126;26718:22;;;:9;:22;;;;;:32;;;-1:-1:-1;;;;;26718:32:126;:46;;;26586:185::o;181:376:35:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;8633:983:86:-;8685:7;;8769:3;8760:12;;;:16;8756:99;;8806:3;8796:13;;;;8827;8756:99;8881:2;8872:11;;;:15;8868:96;;8917:2;8907:12;;;;8937;8868:96;8990:2;8981:11;;;:15;8977:96;;9026:2;9016:12;;;;9046;8977:96;9099:2;9090:11;;;:15;9086:96;;9135:2;9125:12;;;;9155;9086:96;9208:1;9199:10;;;:14;9195:93;;9243:1;9233:11;;;;9262;9195:93;9314:1;9305:10;;;:14;9301:93;;9349:1;9339:11;;;;9368;9301:93;9420:1;9411:10;;;:14;9407:93;;9455:1;9445:11;;;;9474;9407:93;9526:1;9517:10;;;:14;9513:64;;9561:1;9551:11;9603:6;8633:983;-1:-1:-1;;8633:983:86:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:86;;588:104;-1:-1:-1;588:104:86:o;31996:276:126:-;32073:7;;32108:25;32127:6;32115:8;32108:25;:::i;:::-;32092:41;;32157:1;32148:6;:10;32144:90;;;32181:42;;;;;;;;22937:25:143;;;22978:18;;;22971:34;;;23021:18;;;23014:34;;;22910:18;;32181:42:126;22735:319:143;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:143;;14:180;-1:-1:-1;14:180:143:o;199:184::-;-1:-1:-1;;;248:1:143;241:88;348:4;345:1;338:15;372:4;369:1;362:15;388:145;474:1;467:5;464:12;454:46;;480:18;;:::i;:::-;509;;388:145::o;538:250::-;623:1;633:113;647:6;644:1;641:13;633:113;;;723:11;;;717:18;704:11;;;697:39;669:2;662:10;633:113;;;-1:-1:-1;;780:1:143;762:16;;755:27;538:250::o;793:271::-;835:3;873:5;867:12;900:6;895:3;888:19;916:76;985:6;978:4;973:3;969:14;962:4;955:5;951:16;916:76;:::i;:::-;1046:2;1025:15;-1:-1:-1;;1021:29:143;1012:39;;;;1053:4;1008:50;;793:271;-1:-1:-1;;793:271:143:o;1069:252::-;1156:5;1150:12;1145:3;1138:25;1120:3;1209:4;1202:5;1198:16;1192:23;1247:4;1240;1235:3;1231:14;1224:28;1268:47;1309:4;1304:3;1300:14;1286:12;1268:47;:::i;:::-;1261:54;1069:252;-1:-1:-1;;;;1069:252:143:o;1326:1058::-;1740:4;1769:3;1799:6;1788:9;1781:25;1842:6;1837:2;1826:9;1822:18;1815:34;1885:6;1880:2;1869:9;1865:18;1858:34;1928:6;1923:2;1912:9;1908:18;1901:34;-1:-1:-1;;;;;2045:2:143;2037:6;2033:15;2027:3;2016:9;2012:19;2005:44;2098:2;2090:6;2086:15;2080:3;2069:9;2065:19;2058:44;2151:2;2143:6;2139:15;2133:3;2122:9;2118:19;2111:44;;2192:6;2186:3;2175:9;2171:19;2164:35;2208:59;2262:3;2251:9;2247:19;2239:6;2208:59;:::i;:::-;2304:2;2298:3;2287:9;2283:19;2276:31;2324:54;2374:2;2363:9;2359:18;2351:6;2324:54;:::i;:::-;2316:62;1326:1058;-1:-1:-1;;;;;;;;;;;;;1326:1058:143:o;2389:332::-;2447:6;2500:2;2488:9;2479:7;2475:23;2471:32;2468:52;;;2516:1;2513;2506:12;2468:52;2555:9;2542:23;2605:66;2598:5;2594:78;2587:5;2584:89;2574:117;;2687:1;2684;2677:12;2918:154;-1:-1:-1;;;;;2997:5:143;2993:54;2986:5;2983:65;2973:93;;3062:1;3059;3052:12;3077:247;3136:6;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;3244:9;3231:23;3263:31;3288:5;3263:31;:::i;3329:184::-;-1:-1:-1;;;3378:1:143;3371:88;3478:4;3475:1;3468:15;3502:4;3499:1;3492:15;3518:257;3590:4;3584:11;;;3622:17;;3669:18;3654:34;;3690:22;;;3651:62;3648:88;;;3716:18;;:::i;:::-;3752:4;3745:24;3518:257;:::o;3780:255::-;3852:2;3846:9;3894:6;3882:19;;3931:18;3916:34;;3952:22;;;3913:62;3910:88;;;3978:18;;:::i;4040:253::-;4112:2;4106:9;4154:4;4142:17;;4189:18;4174:34;;4210:22;;;4171:62;4168:88;;;4236:18;;:::i;4298:253::-;4370:2;4364:9;4412:4;4400:17;;4447:18;4432:34;;4468:22;;;4429:62;4426:88;;;4494:18;;:::i;4556:275::-;4627:2;4621:9;4692:2;4673:13;;-1:-1:-1;;4669:27:143;4657:40;;4727:18;4712:34;;4748:22;;;4709:62;4706:88;;;4774:18;;:::i;:::-;4810:2;4803:22;4556:275;;-1:-1:-1;4556:275:143:o;4836:183::-;4896:4;4929:18;4921:6;4918:30;4915:56;;;4951:18;;:::i;:::-;-1:-1:-1;4996:1:143;4992:14;5008:4;4988:25;;4836:183::o;5024:737::-;5078:5;5131:3;5124:4;5116:6;5112:17;5108:27;5098:55;;5149:1;5146;5139:12;5098:55;5185:6;5172:20;5211:4;5235:60;5251:43;5291:2;5251:43;:::i;:::-;5235:60;:::i;:::-;5329:15;;;5415:1;5411:10;;;;5399:23;;5395:32;;;5360:12;;;;5439:15;;;5436:35;;;5467:1;5464;5457:12;5436:35;5503:2;5495:6;5491:15;5515:217;5531:6;5526:3;5523:15;5515:217;;;5611:3;5598:17;5628:31;5653:5;5628:31;:::i;:::-;5672:18;;5710:12;;;;5548;;5515:217;;;-1:-1:-1;5750:5:143;5024:737;-1:-1:-1;;;;;;5024:737:143:o;5766:186::-;5814:4;5847:18;5839:6;5836:30;5833:56;;;5869:18;;:::i;:::-;-1:-1:-1;5935:2:143;5914:15;-1:-1:-1;;5910:29:143;5941:4;5906:40;;5766:186::o;5957:462::-;5999:5;6052:3;6045:4;6037:6;6033:17;6029:27;6019:55;;6070:1;6067;6060:12;6019:55;6106:6;6093:20;6137:48;6153:31;6181:2;6153:31;:::i;6137:48::-;6210:2;6201:7;6194:19;6256:3;6249:4;6244:2;6236:6;6232:15;6228:26;6225:35;6222:55;;;6273:1;6270;6263:12;6222:55;6338:2;6331:4;6323:6;6319:17;6312:4;6303:7;6299:18;6286:55;6386:1;6361:16;;;6379:4;6357:27;6350:38;;;;6365:7;5957:462;-1:-1:-1;;;5957:462:143:o;6424:702::-;6535:6;6543;6551;6604:2;6592:9;6583:7;6579:23;6575:32;6572:52;;;6620:1;6617;6610:12;6572:52;6660:9;6647:23;6689:18;6730:2;6722:6;6719:14;6716:34;;;6746:1;6743;6736:12;6716:34;6769:61;6822:7;6813:6;6802:9;6798:22;6769:61;:::i;:::-;6759:71;;6883:2;6872:9;6868:18;6855:32;6839:48;;6912:2;6902:8;6899:16;6896:36;;;6928:1;6925;6918:12;6896:36;;6951:51;6994:7;6983:8;6972:9;6968:24;6951:51;:::i;:::-;6941:61;;;7052:2;7041:9;7037:18;7024:32;7065:31;7090:5;7065:31;:::i;:::-;7115:5;7105:15;;;6424:702;;;;;:::o;7558:455::-;7635:6;7643;7696:2;7684:9;7675:7;7671:23;7667:32;7664:52;;;7712:1;7709;7702:12;7664:52;7752:9;7739:23;7785:18;7777:6;7774:30;7771:50;;;7817:1;7814;7807:12;7771:50;7840:49;7881:7;7872:6;7861:9;7857:22;7840:49;:::i;:::-;7830:59;;;7939:2;7928:9;7924:18;7911:32;7952:31;7977:5;7952:31;:::i;:::-;8002:5;7992:15;;;7558:455;;;;;:::o;8249:142::-;8332:1;8325:5;8322:12;8312:46;;8338:18;;:::i;8396:213::-;8545:2;8530:18;;8557:46;8534:9;8585:6;8557:46;:::i;8614:315::-;8682:6;8690;8743:2;8731:9;8722:7;8718:23;8714:32;8711:52;;;8759:1;8756;8749:12;8711:52;8798:9;8785:23;8817:31;8842:5;8817:31;:::i;:::-;8867:5;8919:2;8904:18;;;;8891:32;;-1:-1:-1;;;8614:315:143:o;8934:316::-;9011:6;9019;9027;9080:2;9068:9;9059:7;9055:23;9051:32;9048:52;;;9096:1;9093;9086:12;9048:52;-1:-1:-1;;9119:23:143;;;9189:2;9174:18;;9161:32;;-1:-1:-1;9240:2:143;9225:18;;;9212:32;;8934:316;-1:-1:-1;8934:316:143:o;9255:143::-;9339:1;9332:5;9329:12;9319:46;;9345:18;;:::i;9403:215::-;9553:2;9538:18;;9565:47;9542:9;9594:6;9565:47;:::i;10063:261::-;10244:2;10233:9;10226:21;10207:4;10264:54;10314:2;10303:9;10299:18;10291:6;10264:54;:::i;10329:1357::-;10456:6;10464;10517:2;10505:9;10496:7;10492:23;10488:32;10485:52;;;10533:1;10530;10523:12;10485:52;10573:9;10560:23;10602:18;10643:2;10635:6;10632:14;10629:34;;;10659:1;10656;10649:12;10629:34;10682:61;10735:7;10726:6;10715:9;10711:22;10682:61;:::i;:::-;10672:71;;10762:2;10752:12;;10817:2;10806:9;10802:18;10789:32;10846:2;10836:8;10833:16;10830:36;;;10862:1;10859;10852:12;10830:36;10885:24;;10940:4;10932:13;;10928:27;-1:-1:-1;10918:55:143;;10969:1;10966;10959:12;10918:55;11005:2;10992:16;11028:60;11044:43;11084:2;11044:43;:::i;11028:60::-;11122:15;;;11204:1;11200:10;;;;11192:19;;11188:28;;;11153:12;;;;11228:19;;;11225:39;;;11260:1;11257;11250:12;11225:39;11292:2;11288;11284:11;11304:352;11320:6;11315:3;11312:15;11304:352;;;11406:3;11393:17;11442:2;11429:11;11426:19;11423:109;;;11486:1;11515:2;11511;11504:14;11423:109;11557:56;11605:7;11600:2;11586:11;11582:2;11578:20;11574:29;11557:56;:::i;:::-;11545:69;;-1:-1:-1;11634:12:143;;;;11337;;11304:352;;;11308:3;11675:5;11665:15;;;;;;;;10329:1357;;;;;:::o;11899:740::-;12132:2;12184:21;;;12254:13;;12157:18;;;12276:22;;;12103:4;;12132:2;12317;;12335:18;;;;12376:15;;;12103:4;12419:194;12433:6;12430:1;12427:13;12419:194;;;12482:51;12529:3;12520:6;12514:13;11774:12;;-1:-1:-1;;;;;11770:61:143;11758:74;;11881:4;11870:16;;;11864:23;11848:14;;11841:47;11691:203;12482:51;12553:12;;;;12588:15;;;;12455:1;12448:9;12419:194;;;-1:-1:-1;12630:3:143;;11899:740;-1:-1:-1;;;;;;;11899:740:143:o;12644:118::-;12730:5;12723:13;12716:21;12709:5;12706:32;12696:60;;12752:1;12749;12742:12;12767:241;12823:6;12876:2;12864:9;12855:7;12851:23;12847:32;12844:52;;;12892:1;12889;12882:12;12844:52;12931:9;12918:23;12950:28;12972:5;12950:28;:::i;13013:953::-;-1:-1:-1;;;;;13509:15:143;;;13491:34;;13561:15;;;13556:2;13541:18;;13534:43;13613:15;;13608:2;13593:18;;13586:43;13660:2;13645:18;;13638:34;;;13703:3;13688:19;;13681:35;;;13417:3;13402:19;;13725:59;13779:3;13764:19;;13756:6;13725:59;:::i;:::-;13821:6;13815:3;13804:9;13800:19;13793:35;13865:6;13859:3;13848:9;13844:19;13837:35;13909:6;13903:3;13892:9;13888:19;13881:35;13953:6;13947:3;13936:9;13932:19;13925:35;13013:953;;;;;;;;;;;;;:::o;13971:315::-;14039:6;14047;14100:2;14088:9;14079:7;14075:23;14071:32;14068:52;;;14116:1;14113;14106:12;14068:52;14152:9;14139:23;14129:33;;14212:2;14201:9;14197:18;14184:32;14225:31;14250:5;14225:31;:::i;14291:1202::-;14409:6;14440:2;14483;14471:9;14462:7;14458:23;14454:32;14451:52;;;14499:1;14496;14489:12;14451:52;14539:9;14526:23;14572:18;14564:6;14561:30;14558:50;;;14604:1;14601;14594:12;14558:50;14627:22;;14680:4;14672:13;;14668:27;-1:-1:-1;14658:55:143;;14709:1;14706;14699:12;14658:55;14745:2;14732:16;14768:60;14784:43;14824:2;14784:43;:::i;14768:60::-;14862:15;;;14944:1;14940:10;;;;14932:19;;14928:28;;;14893:12;;;;14968:19;;;14965:39;;;15000:1;14997;14990:12;14965:39;15024:11;;;;15044:419;15060:6;15055:3;15052:15;15044:419;;;15142:4;15136:3;15127:7;15123:17;15119:28;15116:118;;;15188:1;15217:2;15213;15206:14;15116:118;15260:22;;:::i;:::-;15309:17;;15295:32;;15376:12;;;15363:26;15347:14;;;15340:50;15403:18;;15086:4;15077:14;;;;15441:12;;;;15044:419;;15498:242;15641:2;15626:18;;15674:1;15663:13;;15653:47;;15680:18;;:::i;:::-;15709:25;;;15498:242;:::o;15745:388::-;15822:6;15830;15883:2;15871:9;15862:7;15858:23;15854:32;15851:52;;;15899:1;15896;15889:12;15851:52;15935:9;15922:23;15912:33;;15996:2;15985:9;15981:18;15968:32;16023:18;16015:6;16012:30;16009:50;;;16055:1;16052;16045:12;16009:50;16078:49;16119:7;16110:6;16099:9;16095:22;16078:49;:::i;:::-;16068:59;;;15745:388;;;;;:::o;16138:437::-;16217:1;16213:12;;;;16260;;;16281:61;;16335:4;16327:6;16323:17;16313:27;;16281:61;16388:2;16380:6;16377:14;16357:18;16354:38;16351:218;;-1:-1:-1;;;16422:1:143;16415:88;16526:4;16523:1;16516:15;16554:4;16551:1;16544:15;16833:184;-1:-1:-1;;;16882:1:143;16875:88;16982:4;16979:1;16972:15;17006:4;17003:1;16996:15;17022:128;17089:9;;;17110:11;;;17107:37;;;17124:18;;:::i;17528:184::-;-1:-1:-1;;;17577:1:143;17570:88;17677:4;17674:1;17667:15;17701:4;17698:1;17691:15;17717:274;17757:1;17783;17773:189;;-1:-1:-1;;;17815:1:143;17808:88;17919:4;17916:1;17909:15;17947:4;17944:1;17937:15;17773:189;-1:-1:-1;17976:9:143;;17717:274::o;17996:168::-;18069:9;;;18100;;18117:15;;;18111:22;;18097:37;18087:71;;18138:18;;:::i;18169:125::-;18234:9;;;18255:10;;;18252:36;;;18268:18;;:::i;18631:245::-;18698:6;18751:2;18739:9;18730:7;18726:23;18722:32;18719:52;;;18767:1;18764;18757:12;18719:52;18799:9;18793:16;18818:28;18840:5;18818:28;:::i;18881:184::-;18951:6;19004:2;18992:9;18983:7;18979:23;18975:32;18972:52;;;19020:1;19017;19010:12;18972:52;-1:-1:-1;19043:16:143;;18881:184;-1:-1:-1;18881:184:143:o;19070:138::-;19149:13;;19171:31;19149:13;19171:31;:::i;:::-;19070:138;;;:::o;19213:157::-;19302:13;;19344:1;19334:12;;19324:40;;19360:1;19357;19350:12;19375:156;19463:13;;19505:1;19495:12;;19485:40;;19521:1;19518;19511:12;19536:420;19611:5;19659:4;19647:9;19642:3;19638:19;19634:30;19631:50;;;19677:1;19674;19667:12;19631:50;19710:2;19704:9;19752:4;19744:6;19740:17;19823:6;19811:10;19808:22;19787:18;19775:10;19772:34;19769:62;19766:88;;;19834:18;;:::i;:::-;19870:2;19863:22;19933:16;;19918:32;;-1:-1:-1;19903:6:143;19536:420;-1:-1:-1;19536:420:143:o;19961:356::-;20030:5;20078:4;20066:9;20061:3;20057:19;20053:30;20050:50;;;20096:1;20093;20086:12;20050:50;20118:22;;:::i;:::-;20109:31;;20170:9;20164:16;20189:33;20214:7;20189:33;:::i;:::-;20245:7;20238:5;20231:22;;20306:2;20295:9;20291:18;20285:25;20280:2;20273:5;20269:14;20262:49;19961:356;;;;:::o;20322:972::-;20427:6;20480:3;20468:9;20459:7;20455:23;20451:33;20448:53;;;20497:1;20494;20487:12;20448:53;20523:22;;:::i;:::-;20568:40;20598:9;20568:40;:::i;:::-;20561:5;20554:55;20662:2;20651:9;20647:18;20641:25;20636:2;20629:5;20625:14;20618:49;20720:2;20709:9;20705:18;20699:25;20694:2;20687:5;20683:14;20676:49;20778:2;20767:9;20763:18;20757:25;20752:2;20745:5;20741:14;20734:49;20837:3;20826:9;20822:19;20816:26;20810:3;20803:5;20799:15;20792:51;20876:60;20931:3;20920:9;20916:19;20876:60;:::i;:::-;20870:3;20863:5;20859:15;20852:85;20970:59;21024:3;21013:9;21009:19;20970:59;:::i;:::-;20964:3;20957:5;20953:15;20946:84;21063:76;21131:7;21125:3;21114:9;21110:19;21063:76;:::i;:::-;21057:3;21050:5;21046:15;21039:101;21159:3;21194:69;21255:7;21250:2;21239:9;21235:18;21194:69;:::i;:::-;21178:14;;;21171:93;21182:5;20322:972;-1:-1:-1;;;20322:972:143:o;21299:1129::-;21489:4;21531:3;21520:9;21516:19;21508:27;;21562:6;21551:9;21544:25;-1:-1:-1;;;;;21615:6:143;21609:13;21605:62;21600:2;21589:9;21585:18;21578:90;21722:2;21714:6;21710:15;21704:22;21699:2;21688:9;21684:18;21677:50;21781:2;21773:6;21769:15;21763:22;21758:2;21747:9;21743:18;21736:50;21841:2;21833:6;21829:15;21823:22;21817:3;21806:9;21802:19;21795:51;21901:3;21893:6;21889:16;21883:23;21877:3;21866:9;21862:19;21855:52;21954:3;21946:6;21942:16;21936:23;21968:63;22026:3;22015:9;22011:19;21997:12;21968:63;:::i;:::-;;22080:3;22072:6;22068:16;22062:23;22094:64;22153:3;22142:9;22138:19;22122:14;22094:64;:::i;:::-;-1:-1:-1;22207:3:143;22195:16;;22189:23;22270:21;22231:3;22250:18;;;22243:49;;;;22329:15;;;22323:22;11774:12;;-1:-1:-1;;;;;11770:61:143;22417:3;22402:19;;11758:74;11881:4;11870:16;11864:23;11848:14;;;;11841:47;21299:1129;;-1:-1:-1;21299:1129:143:o;23059:726::-;23125:5;23173:4;23161:9;23156:3;23152:19;23148:30;23145:50;;;23191:1;23188;23181:12;23145:50;23213:22;;:::i;:::-;23204:31;;23264:9;23258:16;23251:5;23244:31;23319:2;23308:9;23304:18;23298:25;23346:18;23338:6;23335:30;23332:50;;;23378:1;23375;23368:12;23332:50;23401:22;;23454:4;23446:13;;23442:23;-1:-1:-1;23432:51:143;;23479:1;23476;23469:12;23432:51;23508:2;23502:9;23533:48;23549:31;23577:2;23549:31;:::i;23533:48::-;23604:2;23597:5;23590:17;23644:3;23639:2;23634;23630;23626:11;23622:20;23619:29;23616:49;;;23661:1;23658;23651:12;23616:49;23674:67;23738:2;23733;23726:5;23722:14;23717:2;23713;23709:11;23674:67;:::i;:::-;23768:2;23757:14;;23750:29;-1:-1:-1;23761:5:143;;23059:726;-1:-1:-1;;;23059:726:143:o;23790:1028::-;23882:6;23935:2;23923:9;23914:7;23910:23;23906:32;23903:52;;;23951:1;23948;23941:12;23903:52;23984:9;23978:16;24013:18;24054:2;24046:6;24043:14;24040:34;;;24070:1;24067;24060:12;24040:34;24093:22;;;;24149:4;24131:16;;;24127:27;24124:47;;;24167:1;24164;24157:12;24124:47;24193:22;;:::i;:::-;24244:2;24238:9;24231:5;24224:24;24286:2;24282;24278:11;24272:18;24299:33;24324:7;24299:33;:::i;:::-;24359:2;24348:14;;24341:31;24410:2;24402:11;;24396:18;24423:33;24396:18;24423:33;:::i;:::-;24483:2;24472:14;;24465:31;24535:2;24527:11;;24521:18;24551:16;;;24548:36;;;24580:1;24577;24570:12;24548:36;24616:65;24673:7;24662:8;24658:2;24654:17;24616:65;:::i;:::-;24611:2;24604:5;24600:14;24593:89;;24729:3;24725:2;24721:12;24715:19;24709:3;24702:5;24698:15;24691:44;24782:3;24778:2;24774:12;24768:19;24762:3;24755:5;24751:15;24744:44;24807:5;24797:15;;;;;23790:1028;;;;:::o;25196:986::-;25299:6;25352:2;25340:9;25331:7;25327:23;25323:32;25320:52;;;25368:1;25365;25358:12;25320:52;25401:9;25395:16;25430:18;25471:2;25463:6;25460:14;25457:34;;;25487:1;25484;25477:12;25457:34;25510:22;;;;25566:4;25548:16;;;25544:27;25541:47;;;25584:1;25581;25574:12;25541:47;25610:22;;:::i;:::-;25661:2;25655:9;25648:5;25641:24;25703:2;25699;25695:11;25689:18;25716:33;25741:7;25716:33;:::i;:::-;25776:2;25765:14;;25758:31;25835:2;25827:11;;;25821:18;25805:14;;;25798:42;25878:2;25870:11;;25864:18;25891:33;25864:18;25891:33;:::i;:::-;25951:2;25940:14;;25933:31;26003:3;25995:12;;25989:19;26020:16;;;26017:36;;;26049:1;26046;26039:12;26017:36;26086:65;26143:7;26132:8;26128:2;26124:17;26086:65;:::i;:::-;26080:3;26069:15;;26062:90;-1:-1:-1;26073:5:143;25196:986;-1:-1:-1;;;;;25196:986:143:o;26187:265::-;26271:6;26324:2;26312:9;26303:7;26299:23;26295:32;26292:52;;;26340:1;26337;26330:12;26292:52;26372:9;26366:16;26391:31;26416:5;26391:31;:::i;26457:135::-;26496:3;26517:17;;;26514:43;;26537:18;;:::i;:::-;-1:-1:-1;26584:1:143;26573:13;;26457:135::o;26723:545::-;26825:2;26820:3;26817:11;26814:448;;;26861:1;26886:5;26882:2;26875:17;26931:4;26927:2;26917:19;27001:2;26989:10;26985:19;26982:1;26978:27;26972:4;26968:38;27037:4;27025:10;27022:20;27019:47;;;-1:-1:-1;27060:4:143;27019:47;27115:2;27110:3;27106:12;27103:1;27099:20;27093:4;27089:31;27079:41;;27170:82;27188:2;27181:5;27178:13;27170:82;;;27233:17;;;27214:1;27203:13;27170:82;;;27174:3;;;26723:545;;;:::o;27444:1352::-;27570:3;27564:10;27597:18;27589:6;27586:30;27583:56;;;27619:18;;:::i;:::-;27648:97;27738:6;27698:38;27730:4;27724:11;27698:38;:::i;:::-;27692:4;27648:97;:::i;:::-;27800:4;;27864:2;27853:14;;27881:1;27876:663;;;;28583:1;28600:6;28597:89;;;-1:-1:-1;28652:19:143;;;28646:26;28597:89;-1:-1:-1;;27401:1:143;27397:11;;;27393:24;27389:29;27379:40;27425:1;27421:11;;;27376:57;28699:81;;27846:944;;27876:663;26670:1;26663:14;;;26707:4;26694:18;;-1:-1:-1;;27912:20:143;;;28030:236;28044:7;28041:1;28038:14;28030:236;;;28133:19;;;28127:26;28112:42;;28225:27;;;;28193:1;28181:14;;;;28060:19;;28030:236;;;28034:3;28294:6;28285:7;28282:19;28279:201;;;28355:19;;;28349:26;-1:-1:-1;;28438:1:143;28434:14;;;28450:3;28430:24;28426:37;28422:42;28407:58;28392:74;;28279:201;-1:-1:-1;;;;;28526:1:143;28510:14;;;28506:22;28493:36;;-1:-1:-1;27444:1352:143:o;29073:273::-;29141:6;29194:2;29182:9;29173:7;29169:23;29165:32;29162:52;;;29210:1;29207;29200:12;29162:52;29242:9;29236:16;29292:4;29285:5;29281:16;29274:5;29271:27;29261:55;;29312:1;29309;29302:12;29351:422;29440:1;29483:5;29440:1;29497:270;29518:7;29508:8;29505:21;29497:270;;;29577:4;29573:1;29569:6;29565:17;29559:4;29556:27;29553:53;;;29586:18;;:::i;:::-;29636:7;29626:8;29622:22;29619:55;;;29656:16;;;;29619:55;29735:22;;;;29695:15;;;;29497:270;;;29501:3;29351:422;;;;;:::o;29778:806::-;29827:5;29857:8;29847:80;;-1:-1:-1;29898:1:143;29912:5;;29847:80;29946:4;29936:76;;-1:-1:-1;29983:1:143;29997:5;;29936:76;30028:4;30046:1;30041:59;;;;30114:1;30109:130;;;;30021:218;;30041:59;30071:1;30062:10;;30085:5;;;30109:130;30146:3;30136:8;30133:17;30130:43;;;30153:18;;:::i;:::-;-1:-1:-1;;30209:1:143;30195:16;;30224:5;;30021:218;;30323:2;30313:8;30310:16;30304:3;30298:4;30295:13;30291:36;30285:2;30275:8;30272:16;30267:2;30261:4;30258:12;30254:35;30251:77;30248:159;;;-1:-1:-1;30360:19:143;;;30392:5;;30248:159;30439:34;30464:8;30458:4;30439:34;:::i;:::-;30509:6;30505:1;30501:6;30497:19;30488:7;30485:32;30482:58;;;30520:18;;:::i;:::-;30558:20;;29778:806;-1:-1:-1;;;29778:806:143:o;30589:131::-;30649:5;30678:36;30705:8;30699:4;30678:36;:::i;31082:184::-;-1:-1:-1;;;31131:1:143;31124:88;31231:4;31228:1;31221:15;31255:4;31252:1;31245:15;31271:1185;31400:6;31431:2;31474;31462:9;31453:7;31449:23;31445:32;31442:52;;;31490:1;31487;31480:12;31442:52;31523:9;31517:16;31556:18;31548:6;31545:30;31542:50;;;31588:1;31585;31578:12;31542:50;31611:22;;31664:4;31656:13;;31652:27;-1:-1:-1;31642:55:143;;31693:1;31690;31683:12;31642:55;31722:2;31716:9;31745:60;31761:43;31801:2;31761:43;:::i;31745:60::-;31839:15;;;31921:1;31917:10;;;;31909:19;;31905:28;;;31870:12;;;;31945:19;;;31942:39;;;31977:1;31974;31967:12;31942:39;32001:11;;;;32021:405;32037:6;32032:3;32029:15;32021:405;;;32119:4;32113:3;32104:7;32100:17;32096:28;32093:118;;;32165:1;32194:2;32190;32183:14;32093:118;32237:22;;:::i;:::-;32286:10;;32272:25;;32339:12;;;32333:19;32317:14;;;32310:43;32366:18;;32063:4;32054:14;;;;32404:12;;;;32021:405;;32461:184;-1:-1:-1;;;32510:1:143;32503:88;32610:4;32607:1;32600:15;32634:4;32631:1;32624:15;32650:220;32799:2;32788:9;32781:21;32762:4;32819:45;32860:2;32849:9;32845:18;32837:6;32819:45;:::i;32875:291::-;33052:2;33041:9;33034:21;33015:4;33072:45;33113:2;33102:9;33098:18;33090:6;33072:45;:::i;:::-;33064:53;;33153:6;33148:2;33137:9;33133:18;33126:34;32875:291;;;;;:::o;33937:216::-;34001:9;;;34029:11;;;33976:3;34059:9;;34087:10;;34083:19;;34112:10;;34104:19;;34080:44;34077:70;;;34127:18;;:::i","linkReferences":{},"immutableReferences":{"3335":[{"start":1138,"length":32},{"start":6287,"length":32},{"start":6434,"length":32},{"start":7083,"length":32}],"3337":[{"start":1502,"length":32}]}},"methodIdentifiers":{"D()":"0f529ba2","MAX_STAKED_PROPOSALS()":"406244d8","NATIVE()":"a0cf0aea","_minThresholdPoints()":"7c6570ba","activatePoints()":"814516ad","allocate(bytes,address)":"ef2920fc","calculateConviction(uint256,uint256,uint256)":"346db8cb","calculateThreshold(uint256)":"59a5db8b","canExecuteProposal(uint256)":"824ea8ed","deactivatePoints()":"1ddf1e23","deactivatePoints(address)":"6453d9c4","decay()":"54fac919","decreasePower(address,uint256)":"2ed04b2b","distribute(address[],bytes,address)":"0a6f0ee9","getAllo()":"15cc481e","getMaxAmount()":"0ba95909","getMaxConviction(uint256)":"950559d7","getMetadata(uint256)":"a574cea4","getPayouts(address[],bytes[])":"b2b878d0","getPointSystem()":"c3292171","getPoolAmount()":"4ab4ba42","getPoolId()":"38fff2d0","getProposal(uint256)":"c7f758a8","getProposalStakedAmount(uint256)":"dc96ff2d","getProposalVoterStake(uint256,address)":"e0dd2c38","getRecipientStatus(address)":"eb11af93","getStrategyId()":"42fda9c7","getTotalVoterStakePct(address)":"bcc5b93b","increasePoolAmount(uint256)":"f5b0dfb7","increasePower(address,uint256)":"782aadff","initialize(uint256,bytes)":"edd146cc","isPoolActive()":"df868ed3","isValidAllocator(address)":"4d31d087","maxRatio()":"76365af7","pointConfig()":"a47ff7e5","pointSystem()":"2dbd6fdd","proposalCounter()":"0c0512e9","proposalType()":"351d9f96","proposals(uint256)":"013cf08b","registerRecipient(bytes,address)":"2bbe0cae","registryCommunity()":"6003e414","setDecay(uint256)":"69fa25c4","setMaxRatio(uint256)":"11f22ae3","setMinThresholdPoints(uint256)":"2cefadbb","setPoolActive(bool)":"b5f620ce","setRegistryCommunity(address)":"058aca44","setWeight(uint256)":"fc1711f2","supportProposal((uint256,int256)[])":"e33add93","supportsInterface(bytes4)":"01ffc9a7","totalEffectiveActivePoints()":"d1e36232","totalPointsActivated()":"aba9ffee","totalStaked()":"817b1cd2","totalVoterStakePct(address)":"5db64b99","updateProposalConviction(uint256)":"1aa91a9e","voterStakedProposals(address,uint256)":"868c57b8","weight()":"a1aab33f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountOverMaxRatio\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CantIncreaseFixedSystem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConvictionUnderMinimumThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxPointsReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointsSupport\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pointsBalance\",\"type\":\"uint256\"}],\"name\":\"NotEnoughPointsToSupport\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCommunityAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_poolAmount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountNotEnough\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalDataIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotActive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotInList\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ProposalSupportDuplicated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_support\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"_delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"_result\",\"type\":\"int256\"}],\"name\":\"SupportUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserIsInactive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Allocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"DecayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"InitializedCV\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"}],\"name\":\"MaxRatioUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"before\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"}],\"name\":\"MinThresholdPointsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"PointsDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"PoolActive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensUnStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToDecrease\",\"type\":\"uint256\"}],\"name\":\"PowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"PowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStakedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"}],\"name\":\"SupportAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"WeightUpdated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"D\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKED_PROPOSALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_minThresholdPoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"}],\"name\":\"calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"}],\"name\":\"calculateThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"canExecuteProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canBeExecuted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUnstake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllo\",\"outputs\":[{\"internalType\":\"contract IAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getMaxConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"name\":\"getPayouts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IStrategy.PayoutSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voterStakedPoints\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getProposalVoterStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipientId\",\"type\":\"address\"}],\"name\":\"getRecipientStatus\",\"outputs\":[{\"internalType\":\"enum IStrategy.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStrategyId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getTotalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"increasePoolAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPoolActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocator\",\"type\":\"address\"}],\"name\":\"isValidAllocator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalType\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCommunity\",\"outputs\":[{\"internalType\":\"contract RegistryCommunity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decay\",\"type\":\"uint256\"}],\"name\":\"setDecay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxRatio\",\"type\":\"uint256\"}],\"name\":\"setMaxRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints_\",\"type\":\"uint256\"}],\"name\":\"setMinThresholdPoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"setPoolActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"setRegistryCommunity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_weight\",\"type\":\"uint256\"}],\"name\":\"setWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deltaSupport\",\"type\":\"int256\"}],\"internalType\":\"struct StrategyStruct.ProposalSupport[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"supportProposal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEffectiveActivePoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalPointsActivated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"updateProposalConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voterStakedProposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"params\":{\"amount\":\"The amount allocated\",\"recipientId\":\"The ID of the recipient\",\"token\":\"The token allocated\"}},\"Distributed(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount distributed\",\"recipientAddress\":\"The recipient\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}},\"Initialized(uint256,bytes)\":{\"params\":{\"data\":\"The data passed to the 'initialize' function\",\"poolId\":\"The ID of the pool\"}},\"PoolActive(bool)\":{\"params\":{\"active\":\"The status of the pool\"}},\"Registered(address,bytes,address)\":{\"params\":{\"data\":\"The data passed to the 'registerRecipient' function\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to allocate to the recipient\",\"_sender\":\"The address of the sender\"}},\"calculateConviction(uint256,uint256,uint256)\":{\"details\":\"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\",\"params\":{\"_lastConv\":\"Last conviction record\",\"_oldAmount\":\"Amount of tokens staked until now\",\"_timePassed\":\"Number of blocks since last conviction record\"},\"returns\":{\"_0\":\"Current conviction\"}},\"calculateThreshold(uint256)\":{\"details\":\"Formula: \\u03c1 * totalStaked / (1 - a) / (\\u03b2 - requestedAmount / total)**2 For the Solidity implementation we amplify \\u03c1 and \\u03b2 and simplify the formula: weight = \\u03c1 * D maxRatio = \\u03b2 * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\",\"params\":{\"_requestedAmount\":\"Requested amount of tokens on certain proposal\"},\"returns\":{\"_threshold\":\"Threshold a proposal's conviction should surpass in order to be able to executed it.\"}},\"distribute(address[],bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to distribute to the recipients\",\"_recipientIds\":\"The IDs of the recipients\",\"_sender\":\"The address of the sender\"}},\"getAllo()\":{\"returns\":{\"_0\":\"The Allo contract\"}},\"getPayouts(address[],bytes[])\":{\"returns\":{\"_0\":\"Input the values you would send to distribute(), get the amounts each recipient in the array would receive\"}},\"getPoolAmount()\":{\"returns\":{\"_0\":\"The balance of the pool\"}},\"getPoolId()\":{\"returns\":{\"_0\":\"The ID of the pool\"}},\"getProposal(uint256)\":{\"details\":\"Get proposal details\",\"params\":{\"_proposalId\":\"Proposal id\"},\"returns\":{\"beneficiary\":\"Proposal beneficiary\",\"blockLast\":\"Last block when conviction was calculated\",\"convictionLast\":\"Last conviction calculated\",\"proposalStatus\":\"Proposal status\",\"requestedAmount\":\"Proposal requested amount\",\"requestedToken\":\"Proposal requested token\",\"stakedAmount\":\"Proposal staked points\",\"submitter\":\"Proposal submitter\",\"threshold\":\"Proposal threshold\"}},\"getProposalVoterStake(uint256,address)\":{\"params\":{\"_proposalId\":\"Proposal id\",\"_voter\":\"Voter address\"},\"returns\":{\"_0\":\"Proposal voter stake\"}},\"getRecipientStatus(address)\":{\"params\":{\"_recipientId\":\"The ID of the recipient\"},\"returns\":{\"_0\":\"The status of the recipient\"}},\"getStrategyId()\":{\"returns\":{\"_0\":\"The ID of the strategy\"}},\"increasePoolAmount(uint256)\":{\"details\":\"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.\",\"params\":{\"_amount\":\"The amount to increase the pool by\"}},\"initialize(uint256,bytes)\":{\"params\":{\"_data\":\"The encoded data\",\"_poolId\":\"The ID of the pool\"}},\"isPoolActive()\":{\"returns\":{\"_0\":\"'true' if the pool is active, otherwise 'false'\"}},\"isValidAllocator(address)\":{\"details\":\"How the allocator is determined is up to the strategy implementation.\",\"params\":{\"_allocator\":\"The address to check if it is a valid allocator for the strategy.\"},\"returns\":{\"_0\":\"'true' if the address is a valid allocator, 'false' otherwise\"}},\"registerRecipient(bytes,address)\":{\"details\":\"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to register the recipient\",\"_sender\":\"The address of the sender\"},\"returns\":{\"recipientId\":\"The recipientId\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"notice\":\"Emitted when a recipient is allocated to.\"},\"Distributed(address,address,uint256,address)\":{\"notice\":\"Emitted when tokens are distributed.\"},\"Initialized(uint256,bytes)\":{\"notice\":\"Emitted when strategy is initialized.\"},\"PoolActive(bool)\":{\"notice\":\"Emitted when pool is set to active status.\"},\"Registered(address,bytes,address)\":{\"notice\":\"Emitted when a recipient is registered.\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"allocate(bytes,address)\":{\"notice\":\"Allocates to a recipient.\"},\"distribute(address[],bytes,address)\":{\"notice\":\"Distributes funds (tokens) to recipients.\"},\"getAllo()\":{\"notice\":\"Getter for the 'Allo' contract.\"},\"getPoolAmount()\":{\"notice\":\"Getter for the 'poolAmount'.\"},\"getPoolId()\":{\"notice\":\"Getter for the 'poolId'.\"},\"getProposalVoterStake(uint256,address)\":{\"notice\":\"Get stake of voter `_voter` on proposal #`_proposalId`\"},\"getRecipientStatus(address)\":{\"notice\":\"Getter for the status of a recipient.\"},\"getStrategyId()\":{\"notice\":\"Getter for the 'strategyId'.\"},\"increasePoolAmount(uint256)\":{\"notice\":\"Increases the pool amount.\"},\"initialize(uint256,bytes)\":{\"notice\":\"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize().\"},\"isPoolActive()\":{\"notice\":\"Getter for whether or not the pool is active.\"},\"isValidAllocator(address)\":{\"notice\":\"Checks if the '_allocator' is a valid allocator.\"},\"registerRecipient(bytes,address)\":{\"notice\":\"Registers a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"CVStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_allo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[],"type":"error","name":"AmountOverMaxRatio"},{"inputs":[],"type":"error","name":"CantIncreaseFixedSystem"},{"inputs":[],"type":"error","name":"ConvictionUnderMinimumThreshold"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"MaxPointsReached"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[{"internalType":"uint256","name":"pointsSupport","type":"uint256"},{"internalType":"uint256","name":"pointsBalance","type":"uint256"}],"type":"error","name":"NotEnoughPointsToSupport"},{"inputs":[],"type":"error","name":"NotImplemented"},{"inputs":[],"type":"error","name":"OnlyCommunityAllowed"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"_requestedAmount","type":"uint256"},{"internalType":"uint256","name":"_poolAmount","type":"uint256"}],"type":"error","name":"PoolAmountNotEnough"},{"inputs":[],"type":"error","name":"PoolIdCannotBeZero"},{"inputs":[],"type":"error","name":"PoolIsEmpty"},{"inputs":[],"type":"error","name":"ProposalDataIsEmpty"},{"inputs":[],"type":"error","name":"ProposalIdCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotActive"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotInList"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"ProposalSupportDuplicated"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_support","type":"uint256"},{"internalType":"int256","name":"_delta","type":"int256"},{"internalType":"int256","name":"_result","type":"int256"}],"type":"error","name":"SupportUnderflow"},{"inputs":[],"type":"error","name":"TokenCannotBeZero"},{"inputs":[],"type":"error","name":"TokenNotAllowed"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"UserCannotBeZero"},{"inputs":[],"type":"error","name":"UserIsInactive"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Allocated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"decay","type":"uint256","indexed":false}],"type":"event","name":"DecayUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"beneficiary","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"address","name":"recipientAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"struct StrategyStruct.InitializeParams","name":"data","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}],"indexed":false}],"type":"event","name":"InitializedCV","anonymous":false},{"inputs":[{"internalType":"uint256","name":"maxRatio","type":"uint256","indexed":false}],"type":"event","name":"MaxRatioUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"before","type":"uint256","indexed":false},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256","indexed":false}],"type":"event","name":"MinThresholdPointsUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false}],"type":"event","name":"PointsDeactivated","anonymous":false},{"inputs":[{"internalType":"bool","name":"active","type":"bool","indexed":false}],"type":"event","name":"PoolActive","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PoolAmountIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensUnStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToDecrease","type":"uint256","indexed":false}],"type":"event","name":"PowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"PowerIncreased","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalStakedAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"convictionLast","type":"uint256","indexed":false}],"type":"event","name":"SupportAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"weight","type":"uint256","indexed":false}],"type":"event","name":"WeightUpdated","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"D","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_STAKED_PROPOSALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_minThresholdPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"activatePoints"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_requestedAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateThreshold","outputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"canExecuteProposal","outputs":[{"internalType":"bool","name":"canBeExecuted","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[],"stateMutability":"view","type":"function","name":"decay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUnstake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllo","outputs":[{"internalType":"contract IAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMaxConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMetadata","outputs":[{"internalType":"struct Metadata","name":"","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"getPayouts","outputs":[{"internalType":"struct IStrategy.PayoutSummary[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"recipientAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposal","outputs":[{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"voterStakedPoints","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposalStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getProposalVoterStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_recipientId","type":"address"}],"stateMutability":"view","type":"function","name":"getRecipientStatus","outputs":[{"internalType":"enum IStrategy.Status","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStrategyId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePoolAmount"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isPoolActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_allocator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidAllocator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointConfig","outputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalType","outputs":[{"internalType":"enum StrategyStruct.ProposalType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"recipientId","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCommunity","outputs":[{"internalType":"contract RegistryCommunity","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_decay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDecay"},{"inputs":[{"internalType":"uint256","name":"_maxRatio","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxRatio"},{"inputs":[{"internalType":"uint256","name":"minThresholdPoints_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinThresholdPoints"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPoolActive"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRegistryCommunity"},{"inputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setWeight"},{"inputs":[{"internalType":"struct StrategyStruct.ProposalSupport[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"int256","name":"deltaSupport","type":"int256"}]}],"stateMutability":"pure","type":"function","name":"supportProposal"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEffectiveActivePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalPointsActivated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"totalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateProposalConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voterStakedProposals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"allocate(bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to allocate to the recipient","_sender":"The address of the sender"}},"calculateConviction(uint256,uint256,uint256)":{"details":"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128","params":{"_lastConv":"Last conviction record","_oldAmount":"Amount of tokens staked until now","_timePassed":"Number of blocks since last conviction record"},"returns":{"_0":"Current conviction"}},"calculateThreshold(uint256)":{"details":"Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2 For the Solidity implementation we amplify ρ and β and simplify the formula: weight = ρ * D maxRatio = β * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2","params":{"_requestedAmount":"Requested amount of tokens on certain proposal"},"returns":{"_threshold":"Threshold a proposal's conviction should surpass in order to be able to executed it."}},"distribute(address[],bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to distribute to the recipients","_recipientIds":"The IDs of the recipients","_sender":"The address of the sender"}},"getAllo()":{"returns":{"_0":"The Allo contract"}},"getPayouts(address[],bytes[])":{"returns":{"_0":"Input the values you would send to distribute(), get the amounts each recipient in the array would receive"}},"getPoolAmount()":{"returns":{"_0":"The balance of the pool"}},"getPoolId()":{"returns":{"_0":"The ID of the pool"}},"getProposal(uint256)":{"details":"Get proposal details","params":{"_proposalId":"Proposal id"},"returns":{"beneficiary":"Proposal beneficiary","blockLast":"Last block when conviction was calculated","convictionLast":"Last conviction calculated","proposalStatus":"Proposal status","requestedAmount":"Proposal requested amount","requestedToken":"Proposal requested token","stakedAmount":"Proposal staked points","submitter":"Proposal submitter","threshold":"Proposal threshold"}},"getProposalVoterStake(uint256,address)":{"params":{"_proposalId":"Proposal id","_voter":"Voter address"},"returns":{"_0":"Proposal voter stake"}},"getRecipientStatus(address)":{"params":{"_recipientId":"The ID of the recipient"},"returns":{"_0":"The status of the recipient"}},"getStrategyId()":{"returns":{"_0":"The ID of the strategy"}},"increasePoolAmount(uint256)":{"details":"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.","params":{"_amount":"The amount to increase the pool by"}},"initialize(uint256,bytes)":{"params":{"_data":"The encoded data","_poolId":"The ID of the pool"}},"isPoolActive()":{"returns":{"_0":"'true' if the pool is active, otherwise 'false'"}},"isValidAllocator(address)":{"details":"How the allocator is determined is up to the strategy implementation.","params":{"_allocator":"The address to check if it is a valid allocator for the strategy."},"returns":{"_0":"'true' if the address is a valid allocator, 'false' otherwise"}},"registerRecipient(bytes,address)":{"details":"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to register the recipient","_sender":"The address of the sender"},"returns":{"recipientId":"The recipientId"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"allocate(bytes,address)":{"notice":"Allocates to a recipient."},"distribute(address[],bytes,address)":{"notice":"Distributes funds (tokens) to recipients."},"getAllo()":{"notice":"Getter for the 'Allo' contract."},"getPoolAmount()":{"notice":"Getter for the 'poolAmount'."},"getPoolId()":{"notice":"Getter for the 'poolId'."},"getProposalVoterStake(uint256,address)":{"notice":"Get stake of voter `_voter` on proposal #`_proposalId`"},"getRecipientStatus(address)":{"notice":"Getter for the status of a recipient."},"getStrategyId()":{"notice":"Getter for the 'strategyId'."},"increasePoolAmount(uint256)":{"notice":"Increases the pool amount."},"initialize(uint256,bytes)":{"notice":"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize()."},"isPoolActive()":{"notice":"Getter for whether or not the pool is active."},"isValidAllocator(address)":{"notice":"Checks if the '_allocator' is a valid allocator."},"registerRecipient(bytes,address)":{"notice":"Registers a recipient."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"CVStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":3339,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolActive","offset":0,"slot":"0","type":"t_bool"},{"astId":3341,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3343,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolAmount","offset":0,"slot":"2","type":"t_uint256"},{"astId":73067,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"decay","offset":0,"slot":"3","type":"t_uint256"},{"astId":73069,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"maxRatio","offset":0,"slot":"4","type":"t_uint256"},{"astId":73071,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"weight","offset":0,"slot":"5","type":"t_uint256"},{"astId":73074,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalCounter","offset":0,"slot":"6","type":"t_uint256"},{"astId":73076,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalStaked","offset":0,"slot":"7","type":"t_uint256"},{"astId":73078,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalPointsActivated","offset":0,"slot":"8","type":"t_uint256"},{"astId":73081,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"_minThresholdPoints","offset":0,"slot":"9","type":"t_uint256"},{"astId":73083,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"surpressStateMutabilityWarning","offset":0,"slot":"10","type":"t_uint256"},{"astId":73086,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalType","offset":0,"slot":"11","type":"t_enum(ProposalType)72805"},{"astId":73089,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointSystem","offset":1,"slot":"11","type":"t_enum(PointSystem)72810"},{"astId":73092,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointConfig","offset":0,"slot":"12","type":"t_struct(PointSystemConfig)72863_storage"},{"astId":73095,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"registryCommunity","offset":0,"slot":"13","type":"t_contract(RegistryCommunity)77692"},{"astId":73100,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposals","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(Proposal)72855_storage)"},{"astId":73104,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalVoterStakePct","offset":0,"slot":"15","type":"t_mapping(t_address,t_uint256)"},{"astId":73109,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"voterStakedProposals","offset":0,"slot":"16","type":"t_mapping(t_address,t_array(t_uint256)dyn_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)dyn_storage":{"encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(RegistryCommunity)77692":{"encoding":"inplace","label":"contract RegistryCommunity","numberOfBytes":"20"},"t_enum(PointSystem)72810":{"encoding":"inplace","label":"enum StrategyStruct.PointSystem","numberOfBytes":"1"},"t_enum(ProposalStatus)72828":{"encoding":"inplace","label":"enum StrategyStruct.ProposalStatus","numberOfBytes":"1"},"t_enum(ProposalType)72805":{"encoding":"inplace","label":"enum StrategyStruct.ProposalType","numberOfBytes":"1"},"t_mapping(t_address,t_array(t_uint256)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256[])","numberOfBytes":"32","value":"t_array(t_uint256)dyn_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_struct(Proposal)72855_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct StrategyStruct.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)72855_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(PointSystemConfig)72863_storage":{"encoding":"inplace","label":"struct StrategyStruct.PointSystemConfig","numberOfBytes":"32","members":[{"astId":72862,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"maxAmount","offset":0,"slot":"0","type":"t_uint256"}]},"t_struct(Proposal)72855_storage":{"encoding":"inplace","label":"struct StrategyStruct.Proposal","numberOfBytes":"384","members":[{"astId":72830,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalId","offset":0,"slot":"0","type":"t_uint256"},{"astId":72832,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"requestedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":72834,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"stakedAmount","offset":0,"slot":"2","type":"t_uint256"},{"astId":72836,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"convictionLast","offset":0,"slot":"3","type":"t_uint256"},{"astId":72838,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"beneficiary","offset":0,"slot":"4","type":"t_address"},{"astId":72840,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"submitter","offset":0,"slot":"5","type":"t_address"},{"astId":72842,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"requestedToken","offset":0,"slot":"6","type":"t_address"},{"astId":72844,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"blockLast","offset":0,"slot":"7","type":"t_uint256"},{"astId":72847,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalStatus","offset":0,"slot":"8","type":"t_enum(ProposalStatus)72828"},{"astId":72851,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"voterStakedPoints","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"},{"astId":72854,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"metadata","offset":0,"slot":"10","type":"t_struct(Metadata)3098_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75570,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75569],"ERC165":[58105],"ERC20":[56822],"IAllo":[2610],"IERC165":[58311],"IPointStrategy":[72801],"Math":[59177],"Metadata":[3098],"RegistryCommunity":[77692],"StrategyStruct":[72892],"console":[29549]},"nodeType":"SourceUnit","src":"42:40063:126","nodes":[{"id":72756,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72759,"nodeType":"ImportDirective","src":"68:82:126","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72757,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72758,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72762,"nodeType":"ImportDirective","src":"152:68:126","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":77693,"symbolAliases":[{"foreign":{"id":72760,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"160:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72761,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72765,"nodeType":"ImportDirective","src":"221:87:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":58106,"symbolAliases":[{"foreign":{"id":72763,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58105,"src":"229:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72764,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58311,"src":"237:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72767,"nodeType":"ImportDirective","src":"309:68:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":56823,"symbolAliases":[{"foreign":{"id":72766,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"317:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72769,"nodeType":"ImportDirective","src":"379:46:126","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":29550,"symbolAliases":[{"foreign":{"id":72768,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"387:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72771,"nodeType":"ImportDirective","src":"427:65:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":59178,"symbolAliases":[{"foreign":{"id":72770,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"435:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72801,"nodeType":"ContractDefinition","src":"494:355:126","nodes":[{"id":72776,"nodeType":"FunctionDefinition","src":"525:52:126","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:126","parameters":{"id":72774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72773,"mutability":"mutable","name":"_member","nameLocation":"559:7:126","nodeType":"VariableDeclaration","scope":72776,"src":"551:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72772,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:126"},"returnParameters":{"id":72775,"nodeType":"ParameterList","parameters":[],"src":"576:0:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72785,"nodeType":"FunctionDefinition","src":"582:91:126","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:126","parameters":{"id":72781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72778,"mutability":"mutable","name":"_member","nameLocation":"613:7:126","nodeType":"VariableDeclaration","scope":72785,"src":"605:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72777,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72780,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:126","nodeType":"VariableDeclaration","scope":72785,"src":"622:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72779,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:126"},"returnParameters":{"id":72784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72785,"src":"664:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72782,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72794,"nodeType":"FunctionDefinition","src":"678:92:126","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:126","parameters":{"id":72790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72787,"mutability":"mutable","name":"_member","nameLocation":"709:7:126","nodeType":"VariableDeclaration","scope":72794,"src":"701:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72786,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72789,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:126","nodeType":"VariableDeclaration","scope":72794,"src":"718:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72788,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:126"},"returnParameters":{"id":72793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72794,"src":"761:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72791,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72800,"nodeType":"FunctionDefinition","src":"775:72:126","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:126","parameters":{"id":72795,"nodeType":"ParameterList","parameters":[],"src":"798:2:126"},"returnParameters":{"id":72799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72800,"src":"819:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72797,"nodeType":"UserDefinedTypeName","pathNode":{"id":72796,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:126","834:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"819:26:126"},"referencedDeclaration":72810,"src":"819:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[72801],"name":"IPointStrategy","nameLocation":"504:14:126","scope":75570,"usedErrors":[]},{"id":72892,"nodeType":"ContractDefinition","src":"851:1969:126","nodes":[{"id":72805,"nodeType":"EnumDefinition","src":"880:79:126","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":72802,"name":"Signaling","nameLocation":"908:9:126","nodeType":"EnumValue","src":"908:9:126"},{"id":72803,"name":"Funding","nameLocation":"927:7:126","nodeType":"EnumValue","src":"927:7:126"},{"id":72804,"name":"Streaming","nameLocation":"944:9:126","nodeType":"EnumValue","src":"944:9:126"}],"name":"ProposalType","nameLocation":"885:12:126"},{"id":72810,"nodeType":"EnumDefinition","src":"965:92:126","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":72806,"name":"Fixed","nameLocation":"992:5:126","nodeType":"EnumValue","src":"992:5:126"},{"id":72807,"name":"Capped","nameLocation":"1007:6:126","nodeType":"EnumValue","src":"1007:6:126"},{"id":72808,"name":"Unlimited","nameLocation":"1023:9:126","nodeType":"EnumValue","src":"1023:9:126"},{"id":72809,"name":"Quadratic","nameLocation":"1042:9:126","nodeType":"EnumValue","src":"1042:9:126"}],"name":"PointSystem","nameLocation":"970:11:126"},{"id":72822,"nodeType":"StructDefinition","src":"1063:243:126","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":72812,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:126","nodeType":"VariableDeclaration","scope":72822,"src":"1126:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72811,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72814,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:126","nodeType":"VariableDeclaration","scope":72822,"src":"1150:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72813,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72816,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:126","nodeType":"VariableDeclaration","scope":72822,"src":"1217:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72818,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:126","nodeType":"VariableDeclaration","scope":72822,"src":"1250:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72817,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72821,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:126","nodeType":"VariableDeclaration","scope":72822,"src":"1282:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72820,"nodeType":"UserDefinedTypeName","pathNode":{"id":72819,"name":"Metadata","nameLocations":["1282:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:126"},"referencedDeclaration":3098,"src":"1282:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:126","scope":72892,"visibility":"public"},{"id":72828,"nodeType":"EnumDefinition","src":"1312:289:126","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":72823,"name":"Inactive","nameLocation":"1342:8:126","nodeType":"EnumValue","src":"1342:8:126"},{"id":72824,"name":"Active","nameLocation":"1372:6:126","nodeType":"EnumValue","src":"1372:6:126"},{"id":72825,"name":"Paused","nameLocation":"1435:6:126","nodeType":"EnumValue","src":"1435:6:126"},{"id":72826,"name":"Cancelled","nameLocation":"1500:9:126","nodeType":"EnumValue","src":"1500:9:126"},{"id":72827,"name":"Executed","nameLocation":"1553:8:126","nodeType":"EnumValue","src":"1553:8:126"}],"name":"ProposalStatus","nameLocation":"1317:14:126"},{"id":72855,"nodeType":"StructDefinition","src":"1607:405:126","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":72830,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:126","nodeType":"VariableDeclaration","scope":72855,"src":"1633:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72829,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:126","nodeType":"VariableDeclaration","scope":72855,"src":"1661:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72834,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:126","nodeType":"VariableDeclaration","scope":72855,"src":"1694:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72833,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72836,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1724:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72838,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:126","nodeType":"VariableDeclaration","scope":72855,"src":"1756:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72837,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72840,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"1785:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72839,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72842,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1812:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72841,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72844,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"1844:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72843,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72847,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1871:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":72846,"nodeType":"UserDefinedTypeName","pathNode":{"id":72845,"name":"ProposalStatus","nameLocations":["1871:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72828,"src":"1871:14:126"},"referencedDeclaration":72828,"src":"1871:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":72851,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:126","nodeType":"VariableDeclaration","scope":72855,"src":"1910:45:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":72850,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":72848,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":72849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":72854,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:126","nodeType":"VariableDeclaration","scope":72855,"src":"1988:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72853,"nodeType":"UserDefinedTypeName","pathNode":{"id":72852,"name":"Metadata","nameLocations":["1988:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:126"},"referencedDeclaration":3098,"src":"1988:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:126","scope":72892,"visibility":"public"},{"id":72860,"nodeType":"StructDefinition","src":"2018:126:126","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":72857,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:126","nodeType":"VariableDeclaration","scope":72860,"src":"2051:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72859,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:126","nodeType":"VariableDeclaration","scope":72860,"src":"2079:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72858,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:126","scope":72892,"visibility":"public"},{"id":72863,"nodeType":"StructDefinition","src":"2150:89:126","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":72862,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:126","nodeType":"VariableDeclaration","scope":72863,"src":"2215:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72861,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:126","scope":72892,"visibility":"public"},{"id":72868,"nodeType":"StructDefinition","src":"2245:88:126","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":72865,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:126","nodeType":"VariableDeclaration","scope":72868,"src":"2274:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72864,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72867,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:126","nodeType":"VariableDeclaration","scope":72868,"src":"2309:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72866,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:126","scope":72892,"visibility":"public"},{"id":72891,"nodeType":"StructDefinition","src":"2339:479:126","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":72870,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:126","nodeType":"VariableDeclaration","scope":72891,"src":"2373:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72869,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72872,"mutability":"mutable","name":"decay","nameLocation":"2445:5:126","nodeType":"VariableDeclaration","scope":72891,"src":"2437:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72874,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:126","nodeType":"VariableDeclaration","scope":72891,"src":"2507:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72873,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72876,"mutability":"mutable","name":"weight","nameLocation":"2569:6:126","nodeType":"VariableDeclaration","scope":72891,"src":"2561:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72875,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72878,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:126","nodeType":"VariableDeclaration","scope":72891,"src":"2585:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72877,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72881,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:126","nodeType":"VariableDeclaration","scope":72891,"src":"2646:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":72880,"nodeType":"UserDefinedTypeName","pathNode":{"id":72879,"name":"ProposalType","nameLocations":["2646:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"2646:12:126"},"referencedDeclaration":72805,"src":"2646:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":72884,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2716:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72883,"nodeType":"UserDefinedTypeName","pathNode":{"id":72882,"name":"PointSystem","nameLocations":["2716:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"2716:11:126"},"referencedDeclaration":72810,"src":"2716:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":72887,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2749:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":72886,"nodeType":"UserDefinedTypeName","pathNode":{"id":72885,"name":"PointSystemConfig","nameLocations":["2749:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"2749:17:126"},"referencedDeclaration":72863,"src":"2749:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":72890,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2788:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72868_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":72889,"nodeType":"UserDefinedTypeName","pathNode":{"id":72888,"name":"SybilConfig","nameLocations":["2788:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72868,"src":"2788:11:126"},"referencedDeclaration":72868,"src":"2788:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72868_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:126","scope":72892,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[72892],"name":"StrategyStruct","nameLocation":"859:14:126","scope":75570,"usedErrors":[]},{"id":75569,"nodeType":"ContractDefinition","src":"2822:37282:126","nodes":[{"id":72901,"nodeType":"UsingForDirective","src":"2888:23:126","nodes":[],"global":false,"libraryName":{"id":72899,"name":"Math","nameLocations":["2894:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":59177,"src":"2894:4:126"},"typeName":{"id":72900,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":72903,"nodeType":"ErrorDefinition","src":"3082:25:126","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:126","parameters":{"id":72902,"nodeType":"ParameterList","parameters":[],"src":"3104:2:126"}},{"id":72905,"nodeType":"ErrorDefinition","src":"3126:26:126","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:126","parameters":{"id":72904,"nodeType":"ParameterList","parameters":[],"src":"3149:2:126"}},{"id":72907,"nodeType":"ErrorDefinition","src":"3170:23:126","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:126","parameters":{"id":72906,"nodeType":"ParameterList","parameters":[],"src":"3190:2:126"}},{"id":72909,"nodeType":"ErrorDefinition","src":"3212:20:126","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:126","parameters":{"id":72908,"nodeType":"ParameterList","parameters":[],"src":"3229:2:126"}},{"id":72911,"nodeType":"ErrorDefinition","src":"3251:23:126","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:126","parameters":{"id":72910,"nodeType":"ParameterList","parameters":[],"src":"3271:2:126"}},{"id":72913,"nodeType":"ErrorDefinition","src":"3292:26:126","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:126","parameters":{"id":72912,"nodeType":"ParameterList","parameters":[],"src":"3315:2:126"}},{"id":72915,"nodeType":"ErrorDefinition","src":"3336:24:126","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:126","parameters":{"id":72914,"nodeType":"ParameterList","parameters":[],"src":"3357:2:126"}},{"id":72917,"nodeType":"ErrorDefinition","src":"3379:27:126","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:126","parameters":{"id":72916,"nodeType":"ParameterList","parameters":[],"src":"3403:2:126"}},{"id":72919,"nodeType":"ErrorDefinition","src":"3425:27:126","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:126","parameters":{"id":72918,"nodeType":"ParameterList","parameters":[],"src":"3449:2:126"}},{"id":72921,"nodeType":"ErrorDefinition","src":"3470:28:126","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:126","parameters":{"id":72920,"nodeType":"ParameterList","parameters":[],"src":"3495:2:126"}},{"id":72923,"nodeType":"ErrorDefinition","src":"3516:29:126","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:126","parameters":{"id":72922,"nodeType":"ParameterList","parameters":[],"src":"3542:2:126"}},{"id":72931,"nodeType":"ErrorDefinition","src":"3564:72:126","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:126","parameters":{"id":72930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72925,"mutability":"mutable","name":"_support","nameLocation":"3595:8:126","nodeType":"VariableDeclaration","scope":72931,"src":"3587:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72927,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:126","nodeType":"VariableDeclaration","scope":72931,"src":"3605:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72926,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":72929,"mutability":"mutable","name":"_result","nameLocation":"3627:7:126","nodeType":"VariableDeclaration","scope":72931,"src":"3620:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72928,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:126"}},{"id":72933,"nodeType":"ErrorDefinition","src":"3655:25:126","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:126","parameters":{"id":72932,"nodeType":"ParameterList","parameters":[],"src":"3677:2:126"}},{"id":72935,"nodeType":"ErrorDefinition","src":"3699:32:126","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:126","parameters":{"id":72934,"nodeType":"ParameterList","parameters":[],"src":"3728:2:126"}},{"id":72941,"nodeType":"ErrorDefinition","src":"3750:77:126","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:126","parameters":{"id":72940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72937,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:126","nodeType":"VariableDeclaration","scope":72941,"src":"3781:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72936,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72939,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:126","nodeType":"VariableDeclaration","scope":72941,"src":"3804:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72938,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:126"}},{"id":72943,"nodeType":"ErrorDefinition","src":"3847:28:126","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:126","parameters":{"id":72942,"nodeType":"ParameterList","parameters":[],"src":"3872:2:126"}},{"id":72945,"nodeType":"ErrorDefinition","src":"3893:31:126","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:126","parameters":{"id":72944,"nodeType":"ParameterList","parameters":[],"src":"3921:2:126"}},{"id":72949,"nodeType":"ErrorDefinition","src":"3942:45:126","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:126","parameters":{"id":72948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72947,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:126","nodeType":"VariableDeclaration","scope":72949,"src":"3966:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72946,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:126"}},{"id":72953,"nodeType":"ErrorDefinition","src":"4006:45:126","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:126","parameters":{"id":72952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72951,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:126","nodeType":"VariableDeclaration","scope":72953,"src":"4030:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72950,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:126"}},{"id":72959,"nodeType":"ErrorDefinition","src":"4070:68:126","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:126","parameters":{"id":72958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72955,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:126","nodeType":"VariableDeclaration","scope":72959,"src":"4102:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72954,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72957,"mutability":"mutable","name":"index","nameLocation":"4131:5:126","nodeType":"VariableDeclaration","scope":72959,"src":"4123:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72956,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:126"}},{"id":72961,"nodeType":"ErrorDefinition","src":"4156:40:126","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:126","parameters":{"id":72960,"nodeType":"ParameterList","parameters":[],"src":"4193:2:126"}},{"id":72963,"nodeType":"ErrorDefinition","src":"4215:29:126","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:126","parameters":{"id":72962,"nodeType":"ParameterList","parameters":[],"src":"4241:2:126"}},{"id":72971,"nodeType":"ErrorDefinition","src":"4263:94:126","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:126","parameters":{"id":72970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72965,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:126","nodeType":"VariableDeclaration","scope":72971,"src":"4289:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72964,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72967,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:126","nodeType":"VariableDeclaration","scope":72971,"src":"4310:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72969,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:126","nodeType":"VariableDeclaration","scope":72971,"src":"4336:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72968,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:126"}},{"id":72978,"nodeType":"EventDefinition","src":"4542:74:126","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:126","parameters":{"id":72977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72973,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:126","nodeType":"VariableDeclaration","scope":72978,"src":"4562:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72972,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72976,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:126","nodeType":"VariableDeclaration","scope":72978,"src":"4578:36:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":72975,"nodeType":"UserDefinedTypeName","pathNode":{"id":72974,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:126","4593:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"4578:31:126"},"referencedDeclaration":72891,"src":"4578:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:126"}},{"id":72986,"nodeType":"EventDefinition","src":"4621:75:126","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:126","parameters":{"id":72985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72980,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:126","nodeType":"VariableDeclaration","scope":72986,"src":"4639:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72982,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:126","nodeType":"VariableDeclaration","scope":72986,"src":"4659:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72981,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72984,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:126","nodeType":"VariableDeclaration","scope":72986,"src":"4680:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72983,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:126"}},{"id":72992,"nodeType":"EventDefinition","src":"4701:58:126","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:126","parameters":{"id":72991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72988,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:126","nodeType":"VariableDeclaration","scope":72992,"src":"4723:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72987,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72990,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:126","nodeType":"VariableDeclaration","scope":72992,"src":"4739:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72989,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:126"}},{"id":72996,"nodeType":"EventDefinition","src":"4764:42:126","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:126","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72994,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:126","nodeType":"VariableDeclaration","scope":72996,"src":"4790:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72993,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:126"}},{"id":73004,"nodeType":"EventDefinition","src":"4811:85:126","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:126","parameters":{"id":73003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72998,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:126","nodeType":"VariableDeclaration","scope":73004,"src":"4832:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72997,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73000,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:126","nodeType":"VariableDeclaration","scope":73004,"src":"4848:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73002,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:126","nodeType":"VariableDeclaration","scope":73004,"src":"4870:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:126"}},{"id":73012,"nodeType":"EventDefinition","src":"4901:87:126","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:126","parameters":{"id":73011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73006,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:126","nodeType":"VariableDeclaration","scope":73012,"src":"4922:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73005,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73008,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:126","nodeType":"VariableDeclaration","scope":73012,"src":"4938:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73007,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73010,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:126","nodeType":"VariableDeclaration","scope":73012,"src":"4962:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:126"}},{"id":73024,"nodeType":"EventDefinition","src":"4993:134:126","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:126","parameters":{"id":73023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73014,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:126","nodeType":"VariableDeclaration","scope":73024,"src":"5021:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73013,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73016,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:126","nodeType":"VariableDeclaration","scope":73024,"src":"5035:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73015,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73018,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:126","nodeType":"VariableDeclaration","scope":73024,"src":"5055:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73017,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73020,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:126","nodeType":"VariableDeclaration","scope":73024,"src":"5071:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73019,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73022,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:126","nodeType":"VariableDeclaration","scope":73024,"src":"5098:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:126"}},{"id":73028,"nodeType":"EventDefinition","src":"5132:40:126","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:126","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73026,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:126","nodeType":"VariableDeclaration","scope":73028,"src":"5156:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73025,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:126"}},{"id":73032,"nodeType":"EventDefinition","src":"5177:34:126","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:126","parameters":{"id":73031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73030,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:126","nodeType":"VariableDeclaration","scope":73032,"src":"5196:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:126"}},{"id":73036,"nodeType":"EventDefinition","src":"5216:40:126","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:126","parameters":{"id":73035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73034,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:126","nodeType":"VariableDeclaration","scope":73036,"src":"5238:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73033,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:126"}},{"id":73040,"nodeType":"EventDefinition","src":"5261:36:126","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:126","parameters":{"id":73039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73038,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:126","nodeType":"VariableDeclaration","scope":73040,"src":"5281:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:126"}},{"id":73044,"nodeType":"EventDefinition","src":"5302:49:126","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:126","parameters":{"id":73043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73042,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:126","nodeType":"VariableDeclaration","scope":73044,"src":"5324:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73041,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:126"}},{"id":73050,"nodeType":"EventDefinition","src":"5356:76:126","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:126","parameters":{"id":73049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73046,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:126","nodeType":"VariableDeclaration","scope":73050,"src":"5388:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73045,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73048,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:126","nodeType":"VariableDeclaration","scope":73050,"src":"5404:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73047,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:126"}},{"id":73053,"nodeType":"VariableDeclaration","src":"5806:36:126","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73051,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:126","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73056,"nodeType":"VariableDeclaration","src":"5856:70:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73054,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:126","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73059,"nodeType":"VariableDeclaration","src":"5942:69:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73057,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:126","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73062,"nodeType":"VariableDeclaration","src":"6027:53:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73065,"nodeType":"VariableDeclaration","src":"6095:49:126","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73063,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73067,"nodeType":"VariableDeclaration","src":"6272:20:126","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73066,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73069,"nodeType":"VariableDeclaration","src":"6298:23:126","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73068,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73071,"nodeType":"VariableDeclaration","src":"6327:21:126","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73074,"nodeType":"VariableDeclaration","src":"6354:34:126","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73072,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73076,"nodeType":"VariableDeclaration","src":"6394:26:126","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73075,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73078,"nodeType":"VariableDeclaration","src":"6426:35:126","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73081,"nodeType":"VariableDeclaration","src":"6467:38:126","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73079,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73083,"nodeType":"VariableDeclaration","src":"6546:47:126","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73082,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73086,"nodeType":"VariableDeclaration","src":"6678:47:126","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73085,"nodeType":"UserDefinedTypeName","pathNode":{"id":73084,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:126","6693:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"6678:27:126"},"referencedDeclaration":72805,"src":"6678:27:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73089,"nodeType":"VariableDeclaration","src":"6784:45:126","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73088,"nodeType":"UserDefinedTypeName","pathNode":{"id":73087,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:126","6799:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"6784:26:126"},"referencedDeclaration":72810,"src":"6784:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73092,"nodeType":"VariableDeclaration","src":"6835:51:126","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73091,"nodeType":"UserDefinedTypeName","pathNode":{"id":73090,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:126","6850:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"6835:32:126"},"referencedDeclaration":72863,"src":"6835:32:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73095,"nodeType":"VariableDeclaration","src":"6919:42:126","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"},"typeName":{"id":73094,"nodeType":"UserDefinedTypeName","pathNode":{"id":73093,"name":"RegistryCommunity","nameLocations":["6919:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"6919:17:126"},"referencedDeclaration":77692,"src":"6919:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73100,"nodeType":"VariableDeclaration","src":"7028:60:126","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73099,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73096,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73098,"nodeType":"UserDefinedTypeName","pathNode":{"id":73097,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:126","7062:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"7047:23:126"},"referencedDeclaration":72855,"src":"7047:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73104,"nodeType":"VariableDeclaration","src":"7144:53:126","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73103,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73101,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73102,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73109,"nodeType":"VariableDeclaration","src":"7235:57:126","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73108,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73105,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73107,"nodeType":"ArrayTypeName","src":"7254:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73122,"nodeType":"FunctionDefinition","src":"7496:72:126","nodes":[],"body":{"id":73121,"nodeType":"Block","src":"7566:2:126","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73116,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73111,"src":"7544:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73114,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:126","typeDescriptions":{}}},"id":73117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73119,"kind":"baseConstructorSpecifier","modifierName":{"id":73113,"name":"BaseStrategy","nameLocations":["7523:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:126"},"nodeType":"ModifierInvocation","src":"7523:42:126"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73111,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:126","nodeType":"VariableDeclaration","scope":73122,"src":"7508:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73110,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:126"},"returnParameters":{"id":73120,"nodeType":"ParameterList","parameters":[],"src":"7566:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73206,"nodeType":"FunctionDefinition","src":"7574:1028:126","nodes":[],"body":{"id":73205,"nodeType":"Block","src":"7640:962:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":73130,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"7670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73129,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73132,"nodeType":"ExpressionStatement","src":"7650:28:126"},{"assignments":[73137],"declarations":[{"constant":false,"id":73137,"mutability":"mutable","name":"ip","nameLocation":"7727:2:126","nodeType":"VariableDeclaration","scope":73205,"src":"7688:41:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73136,"nodeType":"UserDefinedTypeName","pathNode":{"id":73135,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:126","7703:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"7688:31:126"},"referencedDeclaration":72891,"src":"7688:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73145,"initialValue":{"arguments":[{"id":73140,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73126,"src":"7743:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73141,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"7751:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:126","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":72891,"src":"7751:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:126","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73146,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8139:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8139:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:126","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":73149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73148,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:126","typeDescriptions":{}}},"id":73151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73157,"nodeType":"IfStatement","src":"8135:94:126","trueBody":{"id":73156,"nodeType":"Block","src":"8175:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73153,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"8196:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73155,"nodeType":"RevertStatement","src":"8189:29:126"}]}},{"expression":{"id":73163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73158,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"8239:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73160,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8277:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8277:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73159,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"8259:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77692_$","typeString":"type(contract RegistryCommunity)"}},"id":73162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"src":"8239:59:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73164,"nodeType":"ExpressionStatement","src":"8239:59:126"},{"expression":{"id":73168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73165,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"8308:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73166,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8316:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:126","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72872,"src":"8316:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73169,"nodeType":"ExpressionStatement","src":"8308:16:126"},{"expression":{"id":73173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73170,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"8334:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73171,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8345:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:126","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72874,"src":"8345:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73174,"nodeType":"ExpressionStatement","src":"8334:22:126"},{"expression":{"id":73178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73175,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"8366:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73176,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8375:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:126","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"8375:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73179,"nodeType":"ExpressionStatement","src":"8366:18:126"},{"expression":{"id":73183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73180,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"8394:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73181,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8409:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:126","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72881,"src":"8409:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"id":73184,"nodeType":"ExpressionStatement","src":"8394:30:126"},{"expression":{"id":73188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73185,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"8434:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73186,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8448:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:126","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72884,"src":"8448:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"id":73189,"nodeType":"ExpressionStatement","src":"8434:28:126"},{"expression":{"id":73193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73190,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"8472:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73191,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8486:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:126","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72887,"src":"8486:14:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73194,"nodeType":"ExpressionStatement","src":"8472:28:126"},{"expression":{"id":73198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73195,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"8510:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73196,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8532:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:126","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":72878,"src":"8532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73199,"nodeType":"ExpressionStatement","src":"8510:43:126"},{"eventCall":{"arguments":[{"id":73201,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"8583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73202,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8592:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73200,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72978,"src":"8569:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$72891_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73204,"nodeType":"EmitStatement","src":"8564:31:126"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:126","parameters":{"id":73127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73124,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:126","nodeType":"VariableDeclaration","scope":73206,"src":"7594:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73123,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73126,"mutability":"mutable","name":"_data","nameLocation":"7624:5:126","nodeType":"VariableDeclaration","scope":73206,"src":"7611:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73125,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:126"},"returnParameters":{"id":73128,"nodeType":"ParameterList","parameters":[],"src":"7640:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73210,"nodeType":"FunctionDefinition","src":"8773:83:126","nodes":[],"body":{"id":73209,"nodeType":"Block","src":"8801:55:126","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73207,"nodeType":"ParameterList","parameters":[],"src":"8781:2:126"},"returnParameters":{"id":73208,"nodeType":"ParameterList","parameters":[],"src":"8801:0:126"},"scope":75569,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73214,"nodeType":"FunctionDefinition","src":"8862:135:126","nodes":[],"body":{"id":73213,"nodeType":"Block","src":"8889:108:126","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73211,"nodeType":"ParameterList","parameters":[],"src":"8869:2:126"},"returnParameters":{"id":73212,"nodeType":"ParameterList","parameters":[],"src":"8889:0:126"},"scope":75569,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73235,"nodeType":"FunctionDefinition","src":"9003:202:126","nodes":[],"body":{"id":73234,"nodeType":"Block","src":"9094:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73216,"src":"9111:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73224,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"9131:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":73223,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:126","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":73226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:126","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73230,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73216,"src":"9186:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73228,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75569_$","typeString":"type(contract super CVStrategy)"}},"id":73229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:126","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58104,"src":"9162:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73221,"id":73233,"nodeType":"Return","src":"9104:94:126"}]},"baseFunctions":[58104],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:126","overrides":{"id":73218,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:126"},"parameters":{"id":73217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73216,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:126","nodeType":"VariableDeclaration","scope":73235,"src":"9030:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73215,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:126"},"returnParameters":{"id":73221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73235,"src":"9088:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73219,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:126"},"scope":75569,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73276,"nodeType":"FunctionDefinition","src":"9376:377:126","nodes":[],"body":{"id":73275,"nodeType":"Block","src":"9435:318:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73240,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73237,"src":"9449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:126","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":73242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73241,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:126","typeDescriptions":{}}},"id":73244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73250,"nodeType":"IfStatement","src":"9445:77:126","trueBody":{"id":73249,"nodeType":"Block","src":"9472:50:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73246,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"9493:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73248,"nodeType":"RevertStatement","src":"9486:25:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73253,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9543:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":73252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73251,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:126","typeDescriptions":{}}},"id":73254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:126","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":73256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73255,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:126","typeDescriptions":{}}},"id":73258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73264,"nodeType":"IfStatement","src":"9531:100:126","trueBody":{"id":73263,"nodeType":"Block","src":"9577:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73260,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"9598:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73262,"nodeType":"RevertStatement","src":"9591:29:126"}]}},{"condition":{"id":73269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:126","subExpression":{"arguments":[{"id":73267,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73237,"src":"9672:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73265,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9645:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:126","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77273,"src":"9645:26:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73274,"nodeType":"IfStatement","src":"9640:93:126","trueBody":{"id":73273,"nodeType":"Block","src":"9682:51:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73270,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"9703:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73272,"nodeType":"RevertStatement","src":"9696:26:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:126","parameters":{"id":73238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73237,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:126","nodeType":"VariableDeclaration","scope":73276,"src":"9405:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73236,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:126"},"returnParameters":{"id":73239,"nodeType":"ParameterList","parameters":[],"src":"9435:0:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73292,"nodeType":"FunctionDefinition","src":"9759:162:126","nodes":[],"body":{"id":73291,"nodeType":"Block","src":"9805:116:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:126","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73283,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9841:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":73282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73281,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:126","typeDescriptions":{}}},"id":73284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73290,"nodeType":"IfStatement","src":"9815:100:126","trueBody":{"id":73289,"nodeType":"Block","src":"9861:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73286,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72963,"src":"9882:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73288,"nodeType":"RevertStatement","src":"9875:29:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:126","parameters":{"id":73277,"nodeType":"ParameterList","parameters":[],"src":"9789:2:126"},"returnParameters":{"id":73278,"nodeType":"ParameterList","parameters":[],"src":"9805:0:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73308,"nodeType":"FunctionDefinition","src":"9927:132:126","nodes":[],"body":{"id":73307,"nodeType":"Block","src":"9986:73:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73297,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73294,"src":"10000:8:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:126","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":73299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73298,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:126","typeDescriptions":{}}},"id":73301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73306,"nodeType":"IfStatement","src":"9996:56:126","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73303,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72921,"src":"10031:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73305,"nodeType":"RevertStatement","src":"10024:28:126"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:126","parameters":{"id":73295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73294,"mutability":"mutable","name":"_address","nameLocation":"9962:8:126","nodeType":"VariableDeclaration","scope":73308,"src":"9954:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73293,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:126"},"returnParameters":{"id":73296,"nodeType":"ParameterList","parameters":[],"src":"9986:0:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73483,"nodeType":"FunctionDefinition","src":"10385:1945:126","nodes":[],"body":{"id":73482,"nodeType":"Block","src":"10486:1844:126","nodes":[],"statements":[{"expression":{"id":73318,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"10541:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73319,"nodeType":"ExpressionStatement","src":"10541:5:126"},{"assignments":[73324],"declarations":[{"constant":false,"id":73324,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:126","nodeType":"VariableDeclaration","scope":73482,"src":"10556:45:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73323,"nodeType":"UserDefinedTypeName","pathNode":{"id":73322,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:126","10571:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72822,"src":"10556:29:126"},"referencedDeclaration":72822,"src":"10556:29:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73332,"initialValue":{"arguments":[{"id":73327,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"10615:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73328,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"10623:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:126","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"10623:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73325,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:126","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73333,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"10769:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:126","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":72812,"src":"10769:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73341,"nodeType":"IfStatement","src":"10765:78:126","trueBody":{"id":73340,"nodeType":"Block","src":"10791:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73337,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72919,"src":"10812:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73339,"nodeType":"RevertStatement","src":"10805:27:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":73346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73342,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"10919:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73343,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"10935:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72805,"src":"10935:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72805_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72803,"src":"10935:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73393,"nodeType":"IfStatement","src":"10915:721:126","trueBody":{"id":73392,"nodeType":"Block","src":"10972:664:126","statements":[{"expression":{"arguments":[{"expression":{"id":73348,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11004:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"11004:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73347,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73308,"src":"10986:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73351,"nodeType":"ExpressionStatement","src":"10986:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73352,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11091:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11091:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:126","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":73355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73354,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:126","typeDescriptions":{}}},"id":73357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73363,"nodeType":"IfStatement","src":"11087:102:126","trueBody":{"id":73362,"nodeType":"Block","src":"11130:59:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73359,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"11155:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73361,"nodeType":"RevertStatement","src":"11148:26:126"}]}},{"assignments":[73365],"declarations":[{"constant":false,"id":73365,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:126","nodeType":"VariableDeclaration","scope":73392,"src":"11202:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73364,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73373,"initialValue":{"expression":{"arguments":[{"id":73370,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73366,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}},"id":73367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:126","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73374,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11276:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11276:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73376,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73365,"src":"11303:9:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73382,"nodeType":"IfStatement","src":"11272:234:126","trueBody":{"id":73381,"nodeType":"Block","src":"11314:192:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73378,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"11474:15:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73380,"nodeType":"RevertStatement","src":"11467:24:126"}]}},{"condition":{"arguments":[{"expression":{"id":73384,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11539:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"11539:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73383,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74650,"src":"11523:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73391,"nodeType":"IfStatement","src":"11519:107:126","trueBody":{"id":73390,"nodeType":"Block","src":"11566:60:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73387,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72917,"src":"11591:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73389,"nodeType":"RevertStatement","src":"11584:27:126"}]}}]}},{"assignments":[73395],"declarations":[{"constant":false,"id":73395,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:126","nodeType":"VariableDeclaration","scope":73482,"src":"11645:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73394,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73398,"initialValue":{"id":73397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:126","subExpression":{"id":73396,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73074,"src":"11668:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:126"},{"assignments":[73403],"declarations":[{"constant":false,"id":73403,"mutability":"mutable","name":"p","nameLocation":"11725:1:126","nodeType":"VariableDeclaration","scope":73482,"src":"11693:33:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73402,"nodeType":"UserDefinedTypeName","pathNode":{"id":73401,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:126","11708:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"11693:23:126"},"referencedDeclaration":72855,"src":"11693:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73407,"initialValue":{"baseExpression":{"id":73404,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"11729:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73406,"indexExpression":{"id":73405,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11739:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:126"},{"expression":{"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73408,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11761:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"11761:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73411,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11776:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73413,"nodeType":"ExpressionStatement","src":"11761:25:126"},{"expression":{"id":73418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73414,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11796:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"11796:11:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73417,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73312,"src":"11810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73419,"nodeType":"ExpressionStatement","src":"11796:21:126"},{"expression":{"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73420,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11827:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"11827:13:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11843:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"11843:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73426,"nodeType":"ExpressionStatement","src":"11827:36:126"},{"expression":{"id":73432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73427,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11873:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72842,"src":"11873:16:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73430,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11892:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11892:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73433,"nodeType":"ExpressionStatement","src":"11873:42:126"},{"expression":{"id":73439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73434,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11925:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"11925:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73437,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11945:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"11945:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73440,"nodeType":"ExpressionStatement","src":"11925:44:126"},{"expression":{"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12030:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"12030:16:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73444,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"12049:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"12049:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"12049:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73448,"nodeType":"ExpressionStatement","src":"12030:55:126"},{"expression":{"id":73454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73449,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12095:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"12095:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73452,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:126","memberName":"number","nodeType":"MemberAccess","src":"12109:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73455,"nodeType":"ExpressionStatement","src":"12095:26:126"},{"expression":{"id":73460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73456,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12131:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"12131:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73461,"nodeType":"ExpressionStatement","src":"12131:20:126"},{"expression":{"id":73467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73462,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12197:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"12197:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73465,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"12210:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72821,"src":"12210:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73468,"nodeType":"ExpressionStatement","src":"12197:30:126"},{"eventCall":{"arguments":[{"id":73470,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73471,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12267:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73469,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72992,"src":"12243:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73473,"nodeType":"EmitStatement","src":"12238:40:126"},{"expression":{"arguments":[{"arguments":[{"id":73478,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12311:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73476,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:126","typeDescriptions":{}}},"id":73479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73474,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:126","typeDescriptions":{}}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73317,"id":73481,"nodeType":"Return","src":"12288:35:126"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:126","overrides":{"id":73314,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:126"},"parameters":{"id":73313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73310,"mutability":"mutable","name":"_data","nameLocation":"10426:5:126","nodeType":"VariableDeclaration","scope":73483,"src":"10413:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73309,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73312,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:126","nodeType":"VariableDeclaration","scope":73483,"src":"10433:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73311,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:126"},"returnParameters":{"id":73317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73483,"src":"10477:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73315,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73513,"nodeType":"FunctionDefinition","src":"12336:253:126","nodes":[],"body":{"id":73512,"nodeType":"Block","src":"12371:218:126","nodes":[],"statements":[{"assignments":[73487],"declarations":[{"constant":false,"id":73487,"mutability":"mutable","name":"member","nameLocation":"12389:6:126","nodeType":"VariableDeclaration","scope":73512,"src":"12381:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73486,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73490,"initialValue":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:126"},{"expression":{"arguments":[{"id":73494,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73487,"src":"12461:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73497,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73495,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:126","typeDescriptions":{}}},"id":73498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73491,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12418:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:126","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"12418:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73500,"nodeType":"ExpressionStatement","src":"12418:65:126"},{"expression":{"id":73510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73501,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"12493:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73504,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73487,"src":"12560:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73507,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73505,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:126","typeDescriptions":{}}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73502,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12517:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"12517:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73511,"nodeType":"ExpressionStatement","src":"12493:89:126"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:126","parameters":{"id":73484,"nodeType":"ParameterList","parameters":[],"src":"12359:2:126"},"returnParameters":{"id":73485,"nodeType":"ParameterList","parameters":[],"src":"12371:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73522,"nodeType":"FunctionDefinition","src":"12595:81:126","nodes":[],"body":{"id":73521,"nodeType":"Block","src":"12630:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73516,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"12640:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73520,"nodeType":"ExpressionStatement","src":"12640:29:126"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:126","parameters":{"id":73514,"nodeType":"ParameterList","parameters":[],"src":"12620:2:126"},"returnParameters":{"id":73515,"nodeType":"ParameterList","parameters":[],"src":"12630:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73535,"nodeType":"FunctionDefinition","src":"12682:128:126","nodes":[],"body":{"id":73534,"nodeType":"Block","src":"12734:76:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73527,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"12744:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73529,"nodeType":"ExpressionStatement","src":"12744:23:126"},{"expression":{"arguments":[{"id":73531,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73524,"src":"12795:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73530,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"12777:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73533,"nodeType":"ExpressionStatement","src":"12777:26:126"}]},"baseFunctions":[72776],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:126","parameters":{"id":73525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73524,"mutability":"mutable","name":"_member","nameLocation":"12716:7:126","nodeType":"VariableDeclaration","scope":73535,"src":"12708:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73523,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:126"},"returnParameters":{"id":73526,"nodeType":"ParameterList","parameters":[],"src":"12734:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73570,"nodeType":"FunctionDefinition","src":"12816:351:126","nodes":[],"body":{"id":73569,"nodeType":"Block","src":"12869:298:126","nodes":[],"statements":[{"expression":{"id":73549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73540,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"12879:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73543,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"12946:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73546,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73544,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:126","typeDescriptions":{}}},"id":73547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73541,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12903:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"12903:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73550,"nodeType":"ExpressionStatement","src":"12879:90:126"},{"expression":{"arguments":[{"id":73554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13024:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73557,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73555,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:126","typeDescriptions":{}}},"id":73558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73551,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12979:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:126","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76710,"src":"12979:44:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"ExpressionStatement","src":"12979:68:126"},{"expression":{"arguments":[{"id":73562,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13111:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"13102:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73564,"nodeType":"ExpressionStatement","src":"13102:17:126"},{"eventCall":{"arguments":[{"id":73566,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73565,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73028,"src":"13134:17:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73568,"nodeType":"EmitStatement","src":"13129:31:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:126","parameters":{"id":73538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73537,"mutability":"mutable","name":"_member","nameLocation":"12851:7:126","nodeType":"VariableDeclaration","scope":73570,"src":"12843:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:126"},"returnParameters":{"id":73539,"nodeType":"ParameterList","parameters":[],"src":"12869:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73654,"nodeType":"FunctionDefinition","src":"13173:958:126","nodes":[],"body":{"id":73653,"nodeType":"Block","src":"13264:867:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73579,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"13319:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73581,"nodeType":"ExpressionStatement","src":"13319:23:126"},{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:126","nodeType":"VariableDeclaration","scope":73653,"src":"13352:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73582,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73585,"initialValue":{"hexValue":"30","id":73584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73586,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13394:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73587,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13409:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13409:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"13409:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73598,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13539:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73599,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13554:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13554:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72807,"src":"13554:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73611,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13687:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73612,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13702:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13702:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:126","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72809,"src":"13702:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73624,"nodeType":"IfStatement","src":"13683:148:126","trueBody":{"id":73623,"nodeType":"Block","src":"13740:91:126","statements":[{"expression":{"id":73621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73616,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13754:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73618,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13796:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73619,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13805:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73617,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73867,"src":"13773:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73622,"nodeType":"ExpressionStatement","src":"13754:66:126"}]}},"id":73625,"nodeType":"IfStatement","src":"13535:296:126","trueBody":{"id":73610,"nodeType":"Block","src":"13589:88:126","statements":[{"expression":{"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73603,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13603:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13642:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73606,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13651:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73604,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73783,"src":"13622:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73609,"nodeType":"ExpressionStatement","src":"13603:63:126"}]}},"id":73626,"nodeType":"IfStatement","src":"13390:441:126","trueBody":{"id":73597,"nodeType":"Block","src":"13447:82:126","statements":[{"expression":{"id":73595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73591,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13461:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73593,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13503:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73592,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73720,"src":"13480:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73596,"nodeType":"ExpressionStatement","src":"13461:57:126"}]}},{"assignments":[73628],"declarations":[{"constant":false,"id":73628,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:126","nodeType":"VariableDeclaration","scope":73653,"src":"13840:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73627,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73637,"initialValue":{"arguments":[{"id":73631,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13905:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73634,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73632,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:126","typeDescriptions":{}}},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73629,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"13859:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76185,"src":"13859:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:126"},{"condition":{"id":73638,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73628,"src":"13942:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73644,"nodeType":"IfStatement","src":"13938:82:126","trueBody":{"id":73643,"nodeType":"Block","src":"13955:65:126","statements":[{"expression":{"id":73641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73639,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"13969:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73640,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13993:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73642,"nodeType":"ExpressionStatement","src":"13969:40:126"}]}},{"eventCall":{"arguments":[{"id":73646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"14049:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73647,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"14058:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73648,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"14074:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73645,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73004,"src":"14034:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73650,"nodeType":"EmitStatement","src":"14029:62:126"},{"expression":{"id":73651,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"14108:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73578,"id":73652,"nodeType":"Return","src":"14101:23:126"}]},"baseFunctions":[72785],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:126","parameters":{"id":73575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73572,"mutability":"mutable","name":"_member","nameLocation":"13204:7:126","nodeType":"VariableDeclaration","scope":73654,"src":"13196:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73571,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73574,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:126","nodeType":"VariableDeclaration","scope":73654,"src":"13213:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73573,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:126"},"returnParameters":{"id":73578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73654,"src":"13255:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73576,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73710,"nodeType":"FunctionDefinition","src":"14137:681:126","nodes":[],"body":{"id":73709,"nodeType":"Block","src":"14230:588:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73663,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"14240:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73665,"nodeType":"ExpressionStatement","src":"14240:23:126"},{"assignments":[73667],"declarations":[{"constant":false,"id":73667,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:126","nodeType":"VariableDeclaration","scope":73709,"src":"14319:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73666,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73669,"initialValue":{"hexValue":"30","id":73668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73670,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"14361:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73671,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"14376:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"14376:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"14376:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73675,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"14416:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73676,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"14431:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"14431:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72807,"src":"14431:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73695,"nodeType":"Block","src":"14562:93:126","statements":[{"expression":{"id":73693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73688,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14576:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73690,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73656,"src":"14618:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73691,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14627:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73689,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73971,"src":"14595:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73694,"nodeType":"ExpressionStatement","src":"14576:68:126"}]},"id":73696,"nodeType":"IfStatement","src":"14357:298:126","trueBody":{"id":73687,"nodeType":"Block","src":"14466:90:126","statements":[{"expression":{"id":73685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73681,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14480:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73683,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14528:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73682,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14499:28:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73686,"nodeType":"ExpressionStatement","src":"14480:65:126"}]}},{"expression":{"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73697,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"14664:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73698,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14688:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73700,"nodeType":"ExpressionStatement","src":"14664:40:126"},{"eventCall":{"arguments":[{"id":73702,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73656,"src":"14734:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73703,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14743:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73704,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14761:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73701,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73012,"src":"14719:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73706,"nodeType":"EmitStatement","src":"14714:64:126"},{"expression":{"id":73707,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14795:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73662,"id":73708,"nodeType":"Return","src":"14788:23:126"}]},"baseFunctions":[72794],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:126","parameters":{"id":73659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73656,"mutability":"mutable","name":"_member","nameLocation":"14168:7:126","nodeType":"VariableDeclaration","scope":73710,"src":"14160:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73655,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73658,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:126","nodeType":"VariableDeclaration","scope":73710,"src":"14177:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73657,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:126"},"returnParameters":{"id":73662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73710,"src":"14221:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73660,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73720,"nodeType":"FunctionDefinition","src":"14824:126:126","nodes":[],"body":{"id":73719,"nodeType":"Block","src":"14912:38:126","nodes":[],"statements":[{"expression":{"id":73717,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73712,"src":"14929:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73716,"id":73718,"nodeType":"Return","src":"14922:21:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:126","parameters":{"id":73713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73712,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:126","nodeType":"VariableDeclaration","scope":73720,"src":"14856:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73711,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:126"},"returnParameters":{"id":73716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73720,"src":"14903:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73714,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73783,"nodeType":"FunctionDefinition","src":"14956:615:126","nodes":[],"body":{"id":73782,"nodeType":"Block","src":"15058:513:126","nodes":[],"statements":[{"assignments":[73730],"declarations":[{"constant":false,"id":73730,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:126","nodeType":"VariableDeclaration","scope":73782,"src":"15068:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73729,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73732,"initialValue":{"id":73731,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73724,"src":"15095:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:126"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73737,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15153:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73733,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15119:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15119:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73739,"nodeType":"ExpressionStatement","src":"15119:51:126"},{"assignments":[73741],"declarations":[{"constant":false,"id":73741,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:126","nodeType":"VariableDeclaration","scope":73782,"src":"15180:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73740,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73750,"initialValue":{"arguments":[{"id":73744,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15245:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73747,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73745,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:126","typeDescriptions":{}}},"id":73748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73742,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15202:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"15202:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:126"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73755,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15305:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73751,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15278:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15278:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73757,"nodeType":"ExpressionStatement","src":"15278:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73758,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15331:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73759,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15345:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73761,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"15364:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"15364:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73772,"nodeType":"IfStatement","src":"15327:139:126","trueBody":{"id":73771,"nodeType":"Block","src":"15387:79:126","statements":[{"expression":{"id":73769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73764,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15401:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73765,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"15420:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"15420:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73767,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15444:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73770,"nodeType":"ExpressionStatement","src":"15401:54:126"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73777,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15513:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73773,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15475:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15475:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73779,"nodeType":"ExpressionStatement","src":"15475:55:126"},{"expression":{"id":73780,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15548:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73728,"id":73781,"nodeType":"Return","src":"15541:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:126","parameters":{"id":73725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73722,"mutability":"mutable","name":"_member","nameLocation":"14993:7:126","nodeType":"VariableDeclaration","scope":73783,"src":"14985:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73721,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73724,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:126","nodeType":"VariableDeclaration","scope":73783,"src":"15002:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73723,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:126"},"returnParameters":{"id":73728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73783,"src":"15049:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73726,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73867,"nodeType":"FunctionDefinition","src":"15577:730:126","nodes":[],"body":{"id":73866,"nodeType":"Block","src":"15682:625:126","nodes":[],"statements":[{"assignments":[73793],"declarations":[{"constant":false,"id":73793,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:126","nodeType":"VariableDeclaration","scope":73866,"src":"15692:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73792,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73800,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73796,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"15753:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73794,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15713:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77046,"src":"15713:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73798,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73787,"src":"15764:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:126"},{"assignments":[73802],"declarations":[{"constant":false,"id":73802,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:126","nodeType":"VariableDeclaration","scope":73866,"src":"15789:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73801,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73804,"initialValue":{"hexValue":"3138","id":73803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:126"},{"clauses":[{"block":{"id":73825,"nodeType":"Block","src":"15907:52:126","statements":[{"expression":{"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73818,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73802,"src":"15921:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73821,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73816,"src":"15939:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73819,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:126","typeDescriptions":{}}},"id":73822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73824,"nodeType":"ExpressionStatement","src":"15921:27:126"}]},"errorName":"","id":73826,"nodeType":"TryCatchClause","parameters":{"id":73817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73816,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:126","nodeType":"VariableDeclaration","scope":73826,"src":"15891:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73815,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:126"},"src":"15882:77:126"},{"block":{"id":73833,"nodeType":"Block","src":"15966:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73827,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15980:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"15980:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73832,"nodeType":"ExpressionStatement","src":"15980:36:126"}]},"errorName":"","id":73834,"nodeType":"TryCatchClause","src":"15960:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73808,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15837:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"15837:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73806,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:126","typeDescriptions":{}}},"id":73811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73805,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"15823:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"15823:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73835,"nodeType":"TryStatement","src":"15819:208:126"},{"assignments":[73837],"declarations":[{"constant":false,"id":73837,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:126","nodeType":"VariableDeclaration","scope":73866,"src":"16036:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73836,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73846,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73840,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"16071:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73842,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73802,"src":"16090:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73838,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"16061:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59177_$","typeString":"type(library Math)"}},"id":73839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58681,"src":"16061:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:126"},{"assignments":[73848],"declarations":[{"constant":false,"id":73848,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:126","nodeType":"VariableDeclaration","scope":73866,"src":"16108:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73847,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73857,"initialValue":{"arguments":[{"id":73851,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"16175:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73854,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73852,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:126","typeDescriptions":{}}},"id":73855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73849,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16132:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"16132:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:126"},{"assignments":[73859],"declarations":[{"constant":false,"id":73859,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:126","nodeType":"VariableDeclaration","scope":73866,"src":"16209:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73858,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73863,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73860,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73837,"src":"16236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73861,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"16253:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:126"},{"expression":{"id":73864,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73859,"src":"16284:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73791,"id":73865,"nodeType":"Return","src":"16277:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:126","parameters":{"id":73788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73785,"mutability":"mutable","name":"_member","nameLocation":"15617:7:126","nodeType":"VariableDeclaration","scope":73867,"src":"15609:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73784,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73787,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:126","nodeType":"VariableDeclaration","scope":73867,"src":"15626:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73786,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:126"},"returnParameters":{"id":73791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73867,"src":"15673:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73789,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73877,"nodeType":"FunctionDefinition","src":"16313:136:126","nodes":[],"body":{"id":73876,"nodeType":"Block","src":"16409:40:126","nodes":[],"statements":[{"expression":{"id":73874,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73869,"src":"16426:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73873,"id":73875,"nodeType":"Return","src":"16419:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:126","parameters":{"id":73870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73869,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:126","nodeType":"VariableDeclaration","scope":73877,"src":"16351:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73868,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:126"},"returnParameters":{"id":73873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73877,"src":"16400:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73871,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73971,"nodeType":"FunctionDefinition","src":"16455:802:126","nodes":[],"body":{"id":73970,"nodeType":"Block","src":"16562:695:126","nodes":[],"statements":[{"assignments":[73887],"declarations":[{"constant":false,"id":73887,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:126","nodeType":"VariableDeclaration","scope":73970,"src":"16572:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73886,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73889,"initialValue":{"hexValue":"3138","id":73888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:126"},{"clauses":[{"block":{"id":73910,"nodeType":"Block","src":"16690:52:126","statements":[{"expression":{"id":73908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73903,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73887,"src":"16704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73906,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73901,"src":"16722:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73904,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:126","typeDescriptions":{}}},"id":73907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73909,"nodeType":"ExpressionStatement","src":"16704:27:126"}]},"errorName":"","id":73911,"nodeType":"TryCatchClause","parameters":{"id":73902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73901,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:126","nodeType":"VariableDeclaration","scope":73911,"src":"16674:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73900,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:126"},"src":"16665:77:126"},{"block":{"id":73918,"nodeType":"Block","src":"16749:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73912,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16763:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"16763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73917,"nodeType":"ExpressionStatement","src":"16763:36:126"}]},"errorName":"","id":73919,"nodeType":"TryCatchClause","src":"16743:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73893,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16620:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"16620:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73891,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:126","typeDescriptions":{}}},"id":73896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73890,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"16606:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"16606:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73920,"nodeType":"TryStatement","src":"16602:208:126"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":73924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":73925,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73881,"src":"16851:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73921,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16819:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16819:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73927,"nodeType":"ExpressionStatement","src":"16819:49:126"},{"assignments":[73929],"declarations":[{"constant":false,"id":73929,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:126","nodeType":"VariableDeclaration","scope":73970,"src":"16878:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73928,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73932,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"16942:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73930,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16902:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77046,"src":"16902:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73934,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73881,"src":"16953:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:126"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":73940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":73941,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73929,"src":"17008:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73937,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16979:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16979:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73943,"nodeType":"ExpressionStatement","src":"16979:43:126"},{"assignments":[73945],"declarations":[{"constant":false,"id":73945,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:126","nodeType":"VariableDeclaration","scope":73970,"src":"17032:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73944,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73954,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73948,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73929,"src":"17067:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73950,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73887,"src":"17089:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73946,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"17057:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59177_$","typeString":"type(library Math)"}},"id":73947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58681,"src":"17057:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:126"},{"assignments":[73956],"declarations":[{"constant":false,"id":73956,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:126","nodeType":"VariableDeclaration","scope":73970,"src":"17107:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73955,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73967,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73959,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"17177:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73962,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73960,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:126","typeDescriptions":{}}},"id":73963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73957,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"17134:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"17134:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73965,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73945,"src":"17203:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:126"},{"expression":{"id":73968,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73956,"src":"17234:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73885,"id":73969,"nodeType":"Return","src":"17227:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:126","parameters":{"id":73882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73879,"mutability":"mutable","name":"_member","nameLocation":"16495:7:126","nodeType":"VariableDeclaration","scope":73971,"src":"16487:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73878,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73881,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:126","nodeType":"VariableDeclaration","scope":73971,"src":"16504:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73880,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:126"},"returnParameters":{"id":73885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73971,"src":"16553:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73883,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73980,"nodeType":"FunctionDefinition","src":"17263:99:126","nodes":[],"body":{"id":73979,"nodeType":"Block","src":"17317:45:126","nodes":[],"statements":[{"expression":{"expression":{"id":73976,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"17334:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"17334:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73975,"id":73978,"nodeType":"Return","src":"17327:28:126"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:126","parameters":{"id":73972,"nodeType":"ParameterList","parameters":[],"src":"17284:2:126"},"returnParameters":{"id":73975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73980,"src":"17308:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73973,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73989,"nodeType":"FunctionDefinition","src":"17368:110:126","nodes":[],"body":{"id":73988,"nodeType":"Block","src":"17443:35:126","nodes":[],"statements":[{"expression":{"id":73986,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"17460:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":73985,"id":73987,"nodeType":"Return","src":"17453:18:126"}]},"baseFunctions":[72800],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:126","parameters":{"id":73981,"nodeType":"ParameterList","parameters":[],"src":"17391:2:126"},"returnParameters":{"id":73985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73989,"src":"17415:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73983,"nodeType":"UserDefinedTypeName","pathNode":{"id":73982,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:126","17430:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"17415:26:126"},"referencedDeclaration":72810,"src":"17415:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74000,"nodeType":"FunctionDefinition","src":"17594:226:126","nodes":[],"body":{"id":73999,"nodeType":"Block","src":"17672:148:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73996,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"17737:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73998,"nodeType":"RevertStatement","src":"17730:23:126"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:126","parameters":{"id":73994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74000,"src":"17619:39:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":73991,"nodeType":"UserDefinedTypeName","pathNode":{"id":73990,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:126","17634:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"17619:30:126"},"referencedDeclaration":72860,"src":"17619:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":73992,"nodeType":"ArrayTypeName","src":"17619:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:126"},"returnParameters":{"id":73995,"nodeType":"ParameterList","parameters":[],"src":"17672:0:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74056,"nodeType":"FunctionDefinition","src":"17966:551:126","nodes":[],"body":{"id":74055,"nodeType":"Block","src":"18040:477:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74009,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18070:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74008,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73276,"src":"18050:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74011,"nodeType":"ExpressionStatement","src":"18050:28:126"},{"assignments":[74013],"declarations":[{"constant":false,"id":74013,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:126","nodeType":"VariableDeclaration","scope":74055,"src":"18134:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74012,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74022,"initialValue":{"arguments":[{"id":74016,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18211:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74019,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":74018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74017,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:126","typeDescriptions":{}}},"id":74020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74014,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"18165:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76185,"src":"18165:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:126"},{"condition":{"id":74024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:126","subExpression":{"id":74023,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74013,"src":"18249:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74029,"nodeType":"IfStatement","src":"18244:78:126","trueBody":{"id":74028,"nodeType":"Block","src":"18274:48:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74025,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"18295:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74027,"nodeType":"RevertStatement","src":"18288:23:126"}]}},{"assignments":[74035],"declarations":[{"constant":false,"id":74035,"mutability":"mutable","name":"pv","nameLocation":"18371:2:126","nodeType":"VariableDeclaration","scope":74055,"src":"18331:42:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74033,"nodeType":"UserDefinedTypeName","pathNode":{"id":74032,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:126","18346:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"18331:30:126"},"referencedDeclaration":72860,"src":"18331:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74034,"nodeType":"ArrayTypeName","src":"18331:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74044,"initialValue":{"arguments":[{"id":74038,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74002,"src":"18387:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74039,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"18395:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:126","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":72860,"src":"18395:30:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$72860_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74042,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74036,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:126","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:126"},{"expression":{"arguments":[{"id":74046,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18464:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74047,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74035,"src":"18473:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74045,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74746,"src":"18439:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74049,"nodeType":"ExpressionStatement","src":"18439:37:126"},{"expression":{"arguments":[{"id":74051,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18498:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74052,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74035,"src":"18507:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74050,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75033,"src":"18486:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74054,"nodeType":"ExpressionStatement","src":"18486:24:126"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:126","overrides":{"id":74006,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:126"},"parameters":{"id":74005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74002,"mutability":"mutable","name":"_data","nameLocation":"17998:5:126","nodeType":"VariableDeclaration","scope":74056,"src":"17985:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74001,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74004,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:126","nodeType":"VariableDeclaration","scope":74056,"src":"18005:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74003,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:126"},"returnParameters":{"id":74007,"nodeType":"ParameterList","parameters":[],"src":"18040:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74212,"nodeType":"FunctionDefinition","src":"18773:1756:126","nodes":[],"body":{"id":74211,"nodeType":"Block","src":"18859:1670:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74067,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74061,"src":"18952:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:126","memberName":"length","nodeType":"MemberAccess","src":"18952:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74075,"nodeType":"IfStatement","src":"18948:76:126","trueBody":{"id":74074,"nodeType":"Block","src":"18971:53:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74071,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72943,"src":"18992:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74073,"nodeType":"RevertStatement","src":"18985:28:126"}]}},{"assignments":[74077],"declarations":[{"constant":false,"id":74077,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:126","nodeType":"VariableDeclaration","scope":74211,"src":"19034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74076,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74085,"initialValue":{"arguments":[{"id":74080,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74061,"src":"19066:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74081,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:126","typeDescriptions":{}}}],"id":74083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:126","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74086,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19098:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74093,"nodeType":"IfStatement","src":"19094:77:126","trueBody":{"id":74092,"nodeType":"Block","src":"19115:56:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74089,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"19136:22:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74091,"nodeType":"RevertStatement","src":"19129:31:126"}]}},{"assignments":[74098],"declarations":[{"constant":false,"id":74098,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:126","nodeType":"VariableDeclaration","scope":74211,"src":"19180:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74097,"nodeType":"UserDefinedTypeName","pathNode":{"id":74096,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:126","19195:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"19180:23:126"},"referencedDeclaration":72855,"src":"19180:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74102,"initialValue":{"baseExpression":{"id":74099,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"19223:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74101,"indexExpression":{"id":74100,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19233:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":74107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74103,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"19259:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74104,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"19275:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72805,"src":"19275:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72805_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72803,"src":"19275:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74210,"nodeType":"IfStatement","src":"19255:1208:126","trueBody":{"id":74209,"nodeType":"Block","src":"19312:1151:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74108,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19330:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"19330:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74110,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19353:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74117,"nodeType":"IfStatement","src":"19326:108:126","trueBody":{"id":74116,"nodeType":"Block","src":"19365:69:126","statements":[{"errorCall":{"arguments":[{"id":74113,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19408:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74112,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"19390:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74115,"nodeType":"RevertStatement","src":"19383:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19452:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19452:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74120,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74130,"nodeType":"IfStatement","src":"19448:152:126","trueBody":{"id":74129,"nodeType":"Block","src":"19491:109:126","statements":[{"errorCall":{"arguments":[{"id":74123,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19536:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74124,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19548:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19548:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74126,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74122,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72971,"src":"19516:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74128,"nodeType":"RevertStatement","src":"19509:76:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"id":74136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74131,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19618:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"19618:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74133,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"19645:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"19645:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19645:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74142,"nodeType":"IfStatement","src":"19614:138:126","trueBody":{"id":74141,"nodeType":"Block","src":"19683:69:126","statements":[{"errorCall":{"arguments":[{"id":74138,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19726:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74137,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72949,"src":"19708:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74140,"nodeType":"RevertStatement","src":"19701:36:126"}]}},{"assignments":[74144],"declarations":[{"constant":false,"id":74144,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:126","nodeType":"VariableDeclaration","scope":74209,"src":"19766:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74143,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74148,"initialValue":{"arguments":[{"id":74146,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19816:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74145,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75456,"src":"19791:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:126"},{"assignments":[74150],"declarations":[{"constant":false,"id":74150,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:126","nodeType":"VariableDeclaration","scope":74209,"src":"19841:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74149,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74155,"initialValue":{"arguments":[{"expression":{"id":74152,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19880:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19880:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74151,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"19861:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74156,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74144,"src":"19924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74157,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"19941:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74159,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19954:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19954:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74168,"nodeType":"IfStatement","src":"19920:137:126","trueBody":{"id":74167,"nodeType":"Block","src":"19984:73:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74164,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72961,"src":"20009:31:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74166,"nodeType":"RevertStatement","src":"20002:40:126"}]}},{"assignments":[74173],"declarations":[{"constant":false,"id":74173,"mutability":"mutable","name":"pool","nameLocation":"20089:4:126","nodeType":"VariableDeclaration","scope":74209,"src":"20071:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74172,"nodeType":"UserDefinedTypeName","pathNode":{"id":74171,"name":"IAllo.Pool","nameLocations":["20071:5:126","20077:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:126"},"referencedDeclaration":2319,"src":"20071:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74178,"initialValue":{"arguments":[{"id":74176,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74174,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:126"},{"expression":{"id":74182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74179,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74180,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20145:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20145:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74183,"nodeType":"ExpressionStatement","src":"20131:38:126"},{"expression":{"arguments":[{"expression":{"id":74185,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74173,"src":"20207:4:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74187,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20219:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"20219:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74189,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20241:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20241:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74184,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74192,"nodeType":"ExpressionStatement","src":"20191:75:126"},{"expression":{"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74193,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20297:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"20297:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74196,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"20323:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"20323:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:126","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":72827,"src":"20323:38:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74200,"nodeType":"ExpressionStatement","src":"20297:64:126"},{"eventCall":{"arguments":[{"id":74202,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"20393:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74203,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20405:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"20405:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74205,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20427:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20427:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74201,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[72986,2858],"referencedDeclaration":72986,"src":"20381:11:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74208,"nodeType":"EmitStatement","src":"20376:76:126"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:126","overrides":{"id":74065,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:126"},"parameters":{"id":74064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74212,"src":"18794:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74057,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74058,"nodeType":"ArrayTypeName","src":"18794:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74061,"mutability":"mutable","name":"_data","nameLocation":"18825:5:126","nodeType":"VariableDeclaration","scope":74212,"src":"18812:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74060,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74212,"src":"18832:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74062,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:126"},"returnParameters":{"id":74066,"nodeType":"ParameterList","parameters":[],"src":"18859:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74266,"nodeType":"FunctionDefinition","src":"20535:735:126","nodes":[],"body":{"id":74265,"nodeType":"Block","src":"20624:646:126","nodes":[],"statements":[{"assignments":[74223],"declarations":[{"constant":false,"id":74223,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:126","nodeType":"VariableDeclaration","scope":74265,"src":"20634:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74222,"nodeType":"UserDefinedTypeName","pathNode":{"id":74221,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:126","20649:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"20634:23:126"},"referencedDeclaration":72855,"src":"20634:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74227,"initialValue":{"baseExpression":{"id":74224,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"20677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74226,"indexExpression":{"id":74225,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74214,"src":"20687:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:126"},{"assignments":[74229,74231],"declarations":[{"constant":false,"id":74229,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:126","nodeType":"VariableDeclaration","scope":74265,"src":"20784:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74228,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74231,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:126","nodeType":"VariableDeclaration","scope":74265,"src":"20808:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74230,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74237,"initialValue":{"arguments":[{"id":74233,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20877:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74234,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20887:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"20887:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74232,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"20843:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74238,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"20924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74241,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74231,"src":"20947:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74251,"nodeType":"IfStatement","src":"20920:110:126","trueBody":{"id":74250,"nodeType":"Block","src":"20965:65:126","statements":[{"expression":{"id":74248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74245,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"20979:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20996:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"20996:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74249,"nodeType":"ExpressionStatement","src":"20979:40:126"}]}},{"assignments":[74253],"declarations":[{"constant":false,"id":74253,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:126","nodeType":"VariableDeclaration","scope":74265,"src":"21039:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74252,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74258,"initialValue":{"arguments":[{"expression":{"id":74255,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"21078:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"21078:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74254,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"21059:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:126"},{"expression":{"id":74263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74259,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74217,"src":"21220:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74260,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"21236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74261,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"21254:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74264,"nodeType":"ExpressionStatement","src":"21220:43:126"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:126","parameters":{"id":74215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74214,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:126","nodeType":"VariableDeclaration","scope":74266,"src":"20563:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74213,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:126"},"returnParameters":{"id":74218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74217,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:126","nodeType":"VariableDeclaration","scope":74266,"src":"20604:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74216,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74288,"nodeType":"FunctionDefinition","src":"21560:220:126","nodes":[],"body":{"id":74287,"nodeType":"Block","src":"21651:129:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74275,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"21711:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:126","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":74277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74276,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:126","typeDescriptions":{}}},"id":74279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74283,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:126","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:126","trueExpression":{"expression":{"id":74281,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:126","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74274,"id":74286,"nodeType":"Return","src":"21704:69:126"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:126","overrides":{"id":74270,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:126"},"parameters":{"id":74269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74268,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:126","nodeType":"VariableDeclaration","scope":74288,"src":"21589:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74267,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:126"},"returnParameters":{"id":74274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74288,"src":"21643:6:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74272,"nodeType":"UserDefinedTypeName","pathNode":{"id":74271,"name":"Status","nameLocations":["21643:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:126"},"referencedDeclaration":2815,"src":"21643:6:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74307,"nodeType":"FunctionDefinition","src":"21909:288:126","nodes":[],"body":{"id":74306,"nodeType":"Block","src":"22019:178:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74303,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"22079:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74305,"nodeType":"RevertStatement","src":"22072:23:126"}]},"baseFunctions":[3687],"documentation":{"id":74289,"nodeType":"StructuredDocumentation","src":"21786:118:126","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:126","overrides":{"id":74297,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:126"},"parameters":{"id":74296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21929:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74290,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74291,"nodeType":"ArrayTypeName","src":"21929:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21947:14:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74293,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74294,"nodeType":"ArrayTypeName","src":"21947:7:126","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:126"},"returnParameters":{"id":74302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21995:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74299,"nodeType":"UserDefinedTypeName","pathNode":{"id":74298,"name":"PayoutSummary","nameLocations":["21995:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:126"},"referencedDeclaration":2820,"src":"21995:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74300,"nodeType":"ArrayTypeName","src":"21995:15:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74326,"nodeType":"FunctionDefinition","src":"22203:264:126","nodes":[],"body":{"id":74325,"nodeType":"Block","src":"22355:112:126","nodes":[],"statements":[{"expression":{"id":74318,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74311,"src":"22408:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74319,"nodeType":"ExpressionStatement","src":"22408:5:126"},{"expression":{"arguments":[{"id":74321,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74309,"src":"22444:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74320,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74317,"id":74324,"nodeType":"Return","src":"22423:37:126"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:126","overrides":{"id":74313,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:126"},"parameters":{"id":74312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74309,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:126","nodeType":"VariableDeclaration","scope":74326,"src":"22223:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74308,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74311,"mutability":"mutable","name":"_data","nameLocation":"22258:5:126","nodeType":"VariableDeclaration","scope":74326,"src":"22245:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74310,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:126"},"returnParameters":{"id":74317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74326,"src":"22329:20:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74315,"nodeType":"UserDefinedTypeName","pathNode":{"id":74314,"name":"PayoutSummary","nameLocations":["22329:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:126"},"referencedDeclaration":2820,"src":"22329:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74337,"nodeType":"FunctionDefinition","src":"22473:127:126","nodes":[],"body":{"id":74336,"nodeType":"Block","src":"22550:50:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74333,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74328,"src":"22585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74332,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72996,"src":"22565:19:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74335,"nodeType":"EmitStatement","src":"22560:33:126"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:126","overrides":{"id":74330,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:126"},"parameters":{"id":74329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74328,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:126","nodeType":"VariableDeclaration","scope":74337,"src":"22507:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74327,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:126"},"returnParameters":{"id":74331,"nodeType":"ParameterList","parameters":[],"src":"22550:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74356,"nodeType":"FunctionDefinition","src":"22695:191:126","nodes":[],"body":{"id":74355,"nodeType":"Block","src":"22780:106:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74345,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74339,"src":"22840:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:126","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":74347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74346,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:126","typeDescriptions":{}}},"id":74349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:126","trueExpression":{"hexValue":"66616c7365","id":74351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74344,"id":74354,"nodeType":"Return","src":"22833:46:126"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:126","overrides":{"id":74341,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:126"},"parameters":{"id":74340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74339,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:126","nodeType":"VariableDeclaration","scope":74356,"src":"22722:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74338,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:126"},"returnParameters":{"id":74344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74356,"src":"22774:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74342,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74366,"nodeType":"FunctionDefinition","src":"22892:86:126","nodes":[],"body":{"id":74365,"nodeType":"Block","src":"22938:40:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74362,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74358,"src":"22963:7:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74361,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74364,"nodeType":"ExpressionStatement","src":"22948:23:126"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:126","parameters":{"id":74359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74358,"mutability":"mutable","name":"_active","nameLocation":"22920:7:126","nodeType":"VariableDeclaration","scope":74366,"src":"22915:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74357,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:126"},"returnParameters":{"id":74360,"nodeType":"ParameterList","parameters":[],"src":"22938:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74444,"nodeType":"FunctionDefinition","src":"22984:729:126","nodes":[],"body":{"id":74443,"nodeType":"Block","src":"23028:685:126","nodes":[],"statements":[{"assignments":[74375],"declarations":[{"constant":false,"id":74375,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:126","nodeType":"VariableDeclaration","scope":74443,"src":"23086:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74373,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74374,"nodeType":"ArrayTypeName","src":"23086:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74379,"initialValue":{"baseExpression":{"id":74376,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"23118:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74378,"indexExpression":{"id":74377,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23139:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:126"},{"body":{"id":74441,"nodeType":"Block","src":"23207:500:126","statements":[{"assignments":[74392],"declarations":[{"constant":false,"id":74392,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:126","nodeType":"VariableDeclaration","scope":74441,"src":"23221:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74391,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74396,"initialValue":{"baseExpression":{"id":74393,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74375,"src":"23242:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74395,"indexExpression":{"id":74394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23255:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:126"},{"assignments":[74401],"declarations":[{"constant":false,"id":74401,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:126","nodeType":"VariableDeclaration","scope":74441,"src":"23271:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74400,"nodeType":"UserDefinedTypeName","pathNode":{"id":74399,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:126","23286:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"23271:23:126"},"referencedDeclaration":72855,"src":"23271:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74405,"initialValue":{"baseExpression":{"id":74402,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"23314:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74404,"indexExpression":{"id":74403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74392,"src":"23324:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:126"},{"condition":{"arguments":[{"id":74407,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74392,"src":"23368:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74406,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"23353:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74440,"nodeType":"IfStatement","src":"23349:348:126","trueBody":{"id":74439,"nodeType":"Block","src":"23381:316:126","statements":[{"assignments":[74410],"declarations":[{"constant":false,"id":74410,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:126","nodeType":"VariableDeclaration","scope":74439,"src":"23399:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74409,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74415,"initialValue":{"baseExpression":{"expression":{"id":74411,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23422:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"23422:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74414,"indexExpression":{"id":74413,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:126"},{"expression":{"id":74422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23475:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"23475:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74420,"indexExpression":{"id":74418,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23502:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74423,"nodeType":"ExpressionStatement","src":"23475:39:126"},{"expression":{"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23532:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"23532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74427,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23557:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74429,"nodeType":"ExpressionStatement","src":"23532:37:126"},{"expression":{"id":74432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74430,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"23587:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74431,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23602:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74433,"nodeType":"ExpressionStatement","src":"23587:27:126"},{"expression":{"arguments":[{"id":74435,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23659:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74436,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23669:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74434,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"23632:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74438,"nodeType":"ExpressionStatement","src":"23632:50:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74385,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74375,"src":"23181:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:126","memberName":"length","nodeType":"MemberAccess","src":"23181:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74442,"initializationExpression":{"assignments":[74381],"declarations":[{"constant":false,"id":74381,"mutability":"mutable","name":"i","nameLocation":"23170:1:126","nodeType":"VariableDeclaration","scope":74442,"src":"23162:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74380,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74383,"initialValue":{"hexValue":"30","id":74382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:126"},"loopExpression":{"expression":{"id":74389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:126","subExpression":{"id":74388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23202:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74390,"nodeType":"ExpressionStatement","src":"23202:3:126"},"nodeType":"ForStatement","src":"23157:550:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:126","parameters":{"id":74369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74368,"mutability":"mutable","name":"_member","nameLocation":"23010:7:126","nodeType":"VariableDeclaration","scope":74444,"src":"23002:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74367,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:126"},"returnParameters":{"id":74370,"nodeType":"ParameterList","parameters":[],"src":"23028:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74518,"nodeType":"FunctionDefinition","src":"24275:1038:126","nodes":[],"body":{"id":74517,"nodeType":"Block","src":"24744:569:126","nodes":[],"statements":[{"assignments":[74475],"declarations":[{"constant":false,"id":74475,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:126","nodeType":"VariableDeclaration","scope":74517,"src":"24754:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74474,"nodeType":"UserDefinedTypeName","pathNode":{"id":74473,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:126","24769:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"24754:23:126"},"referencedDeclaration":72855,"src":"24754:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74479,"initialValue":{"baseExpression":{"id":74476,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"24797:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74478,"indexExpression":{"id":74477,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74447,"src":"24807:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:126"},{"expression":{"id":74491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74480,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24830:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74481,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24842:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24842:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24897:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24897:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74486,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"24878:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:126","trueExpression":{"hexValue":"30","id":74485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74492,"nodeType":"ExpressionStatement","src":"24830:92:126"},{"expression":{"components":[{"expression":{"id":74493,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24953:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"24953:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74495,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24985:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"24985:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25019:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72842,"src":"25019:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74499,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25056:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"25056:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74501,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25094:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"25094:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74503,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25129:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"25129:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74505,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25166:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"25166:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74507,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25198:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"25198:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74509,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74510,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25258:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"25258:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74514,"indexExpression":{"expression":{"id":74512,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:126","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$72828_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74470,"id":74516,"nodeType":"Return","src":"24932:374:126"}]},"documentation":{"id":74445,"nodeType":"StructuredDocumentation","src":"23719:551:126","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:126","parameters":{"id":74448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74447,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:126","nodeType":"VariableDeclaration","scope":74518,"src":"24296:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74446,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:126"},"returnParameters":{"id":74470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74450,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24377:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74449,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74452,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:126","nodeType":"VariableDeclaration","scope":74518,"src":"24408:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74451,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74454,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24441:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74453,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74456,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:126","nodeType":"VariableDeclaration","scope":74518,"src":"24477:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74455,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74458,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:126","nodeType":"VariableDeclaration","scope":74518,"src":"24514:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74457,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74461,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24548:44:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74460,"nodeType":"UserDefinedTypeName","pathNode":{"id":74459,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:126","24563:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72828,"src":"24548:29:126"},"referencedDeclaration":72828,"src":"24548:29:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74463,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24606:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74465,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24637:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74464,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74467,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24673:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74466,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74469,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:126","nodeType":"VariableDeclaration","scope":74518,"src":"24704:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74468,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74539,"nodeType":"FunctionDefinition","src":"25319:198:126","nodes":[],"body":{"id":74538,"nodeType":"Block","src":"25401:116:126","nodes":[],"statements":[{"assignments":[74530],"declarations":[{"constant":false,"id":74530,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:126","nodeType":"VariableDeclaration","scope":74538,"src":"25411:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74529,"nodeType":"UserDefinedTypeName","pathNode":{"id":74528,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:126","25426:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"25411:23:126"},"referencedDeclaration":72855,"src":"25411:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74534,"initialValue":{"baseExpression":{"id":74531,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"25454:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74533,"indexExpression":{"id":74532,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74520,"src":"25464:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:126"},{"expression":{"expression":{"id":74535,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"25493:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"25493:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74525,"id":74537,"nodeType":"Return","src":"25486:24:126"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:126","parameters":{"id":74521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74520,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:126","nodeType":"VariableDeclaration","scope":74539,"src":"25340:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74519,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:126"},"returnParameters":{"id":74525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74539,"src":"25384:15:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74523,"nodeType":"UserDefinedTypeName","pathNode":{"id":74522,"name":"Metadata","nameLocations":["25384:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:126"},"referencedDeclaration":3098,"src":"25384:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74555,"nodeType":"FunctionDefinition","src":"25718:176:126","nodes":[],"body":{"id":74554,"nodeType":"Block","src":"25818:76:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74550,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74542,"src":"25867:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74551,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"25880:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74549,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74597,"src":"25835:31:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74548,"id":74553,"nodeType":"Return","src":"25828:59:126"}]},"documentation":{"id":74540,"nodeType":"StructuredDocumentation","src":"25523:190:126","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:126","parameters":{"id":74545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74542,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:126","nodeType":"VariableDeclaration","scope":74555,"src":"25749:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74541,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74544,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:126","nodeType":"VariableDeclaration","scope":74555,"src":"25770:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74543,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:126"},"returnParameters":{"id":74548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74555,"src":"25809:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74546,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74568,"nodeType":"FunctionDefinition","src":"25900:145:126","nodes":[],"body":{"id":74567,"nodeType":"Block","src":"25986:59:126","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74562,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26003:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74564,"indexExpression":{"id":74563,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74557,"src":"26013:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"26003:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74561,"id":74566,"nodeType":"Return","src":"25996:42:126"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:126","parameters":{"id":74558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74557,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:126","nodeType":"VariableDeclaration","scope":74568,"src":"25933:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:126"},"returnParameters":{"id":74561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74568,"src":"25977:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74559,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74580,"nodeType":"FunctionDefinition","src":"26114:127:126","nodes":[],"body":{"id":74579,"nodeType":"Block","src":"26191:50:126","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74575,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"26208:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74577,"indexExpression":{"id":74576,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"26227:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74574,"id":74578,"nodeType":"Return","src":"26201:33:126"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:126","parameters":{"id":74571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74570,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:126","nodeType":"VariableDeclaration","scope":74580,"src":"26145:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74569,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:126"},"returnParameters":{"id":74574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74580,"src":"26182:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74572,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74597,"nodeType":"FunctionDefinition","src":"26247:182:126","nodes":[],"body":{"id":74596,"nodeType":"Block","src":"26357:72:126","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74589,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26374:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74591,"indexExpression":{"id":74590,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74582,"src":"26384:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"26374:40:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74594,"indexExpression":{"id":74593,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74584,"src":"26415:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74588,"id":74595,"nodeType":"Return","src":"26367:55:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:126","parameters":{"id":74585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74582,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:126","nodeType":"VariableDeclaration","scope":74597,"src":"26288:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74581,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74584,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:126","nodeType":"VariableDeclaration","scope":74597,"src":"26309:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74583,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:126"},"returnParameters":{"id":74588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74597,"src":"26348:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74586,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74607,"nodeType":"FunctionDefinition","src":"26435:145:126","nodes":[],"body":{"id":74606,"nodeType":"Block","src":"26499:81:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74602,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"26516:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:126","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77489,"src":"26516:38:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74601,"id":74605,"nodeType":"Return","src":"26509:47:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:126","parameters":{"id":74598,"nodeType":"ParameterList","parameters":[],"src":"26464:2:126"},"returnParameters":{"id":74601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74607,"src":"26490:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74632,"nodeType":"FunctionDefinition","src":"26586:185:126","nodes":[],"body":{"id":74631,"nodeType":"Block","src":"26660:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74614,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74616,"indexExpression":{"id":74615,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"26687:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"26677:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74620,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26718:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74622,"indexExpression":{"id":74621,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"26728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"26718:32:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:126","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":74625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74624,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:126","typeDescriptions":{}}},"id":74627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74613,"id":74630,"nodeType":"Return","src":"26670:94:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:126","parameters":{"id":74610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74609,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:126","nodeType":"VariableDeclaration","scope":74632,"src":"26610:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74608,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:126"},"returnParameters":{"id":74613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74632,"src":"26654:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74611,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74650,"nodeType":"FunctionDefinition","src":"26777:174:126","nodes":[],"body":{"id":74649,"nodeType":"Block","src":"26872:79:126","nodes":[],"statements":[{"expression":{"id":74647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74639,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"26882:14:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74640,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"26899:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74641,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74643,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74634,"src":"26924:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74644,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"26943:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74648,"nodeType":"ExpressionStatement","src":"26882:62:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:126","parameters":{"id":74635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74634,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:126","nodeType":"VariableDeclaration","scope":74650,"src":"26802:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74633,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:126"},"returnParameters":{"id":74638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74637,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:126","nodeType":"VariableDeclaration","scope":74650,"src":"26851:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74636,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74746,"nodeType":"FunctionDefinition","src":"26957:1548:126","nodes":[],"body":{"id":74745,"nodeType":"Block","src":"27087:1418:126","nodes":[],"statements":[{"assignments":[74660],"declarations":[{"constant":false,"id":74660,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:126","nodeType":"VariableDeclaration","scope":74745,"src":"27097:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74659,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74662,"initialValue":{"hexValue":"30","id":74661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:126"},{"body":{"id":74707,"nodeType":"Block","src":"27187:576:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74674,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27260:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74676,"indexExpression":{"id":74675,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27277:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"27260:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74682,"nodeType":"IfStatement","src":"27256:187:126","trueBody":{"id":74681,"nodeType":"Block","src":"27297:146:126","statements":[{"id":74680,"nodeType":"Continue","src":"27420:8:126"}]}},{"assignments":[74684],"declarations":[{"constant":false,"id":74684,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:126","nodeType":"VariableDeclaration","scope":74707,"src":"27456:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74683,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74689,"initialValue":{"expression":{"baseExpression":{"id":74685,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27477:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74687,"indexExpression":{"id":74686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27494:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"27477:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:126"},{"condition":{"id":74693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:126","subExpression":{"arguments":[{"id":74691,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74684,"src":"27541:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74690,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"27526:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74699,"nodeType":"IfStatement","src":"27521:167:126","trueBody":{"id":74698,"nodeType":"Block","src":"27554:134:126","statements":[{"errorCall":{"arguments":[{"id":74695,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74684,"src":"27597:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74694,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"27579:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74697,"nodeType":"RevertStatement","src":"27572:36:126"}]}},{"expression":{"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74700,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74660,"src":"27701:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74701,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27720:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74703,"indexExpression":{"id":74702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27737:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72859,"src":"27720:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74706,"nodeType":"ExpressionStatement","src":"27701:51:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27153:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74668,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27157:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:126","memberName":"length","nodeType":"MemberAccess","src":"27157:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74708,"initializationExpression":{"assignments":[74664],"declarations":[{"constant":false,"id":74664,"mutability":"mutable","name":"i","nameLocation":"27146:1:126","nodeType":"VariableDeclaration","scope":74708,"src":"27138:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74663,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74666,"initialValue":{"hexValue":"30","id":74665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:126"},"loopExpression":{"expression":{"id":74672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:126","subExpression":{"id":74671,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27182:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74673,"nodeType":"ExpressionStatement","src":"27182:3:126"},"nodeType":"ForStatement","src":"27133:630:126"},{"assignments":[74710],"declarations":[{"constant":false,"id":74710,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:126","nodeType":"VariableDeclaration","scope":74745,"src":"27859:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74709,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74717,"initialValue":{"arguments":[{"arguments":[{"id":74713,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27925:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74712,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74580,"src":"27903:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74715,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74660,"src":"27935:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74711,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"27891:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:126"},{"assignments":[74719],"declarations":[{"constant":false,"id":74719,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:126","nodeType":"VariableDeclaration","scope":74745,"src":"28033:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74718,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74728,"initialValue":{"arguments":[{"id":74722,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"28105:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74725,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":74724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74723,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:126","typeDescriptions":{}}},"id":74726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74720,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"28062:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"28062:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74729,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28294:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74730,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74719,"src":"28318:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74738,"nodeType":"IfStatement","src":"28290:147:126","trueBody":{"id":74737,"nodeType":"Block","src":"28338:99:126","statements":[{"errorCall":{"arguments":[{"id":74733,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28384:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74734,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74719,"src":"28407:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74732,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"28359:24:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74736,"nodeType":"RevertStatement","src":"28352:74:126"}]}},{"expression":{"id":74743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74739,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"28447:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74741,"indexExpression":{"id":74740,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"28466:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74742,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28477:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74744,"nodeType":"ExpressionStatement","src":"28447:51:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:126","parameters":{"id":74657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74652,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:126","nodeType":"VariableDeclaration","scope":74746,"src":"26991:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74651,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74656,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:126","nodeType":"VariableDeclaration","scope":74746,"src":"27008:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74654,"nodeType":"UserDefinedTypeName","pathNode":{"id":74653,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:126","27023:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"27008:30:126"},"referencedDeclaration":72860,"src":"27008:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74655,"nodeType":"ArrayTypeName","src":"27008:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:126"},"returnParameters":{"id":74658,"nodeType":"ParameterList","parameters":[],"src":"27087:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75033,"nodeType":"FunctionDefinition","src":"28511:3479:126","nodes":[],"body":{"id":75032,"nodeType":"Block","src":"28616:3374:126","nodes":[],"statements":[{"assignments":[74759],"declarations":[{"constant":false,"id":74759,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:126","nodeType":"VariableDeclaration","scope":75032,"src":"28626:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74757,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74758,"nodeType":"ArrayTypeName","src":"28626:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74760,"nodeType":"VariableDeclarationStatement","src":"28626:29:126"},{"body":{"id":75030,"nodeType":"Block","src":"28719:3265:126","statements":[{"assignments":[74773],"declarations":[{"constant":false,"id":74773,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:126","nodeType":"VariableDeclaration","scope":75030,"src":"28733:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74772,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74778,"initialValue":{"expression":{"baseExpression":{"id":74774,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"28754:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74776,"indexExpression":{"id":74775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28771:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"28754:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74779,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28857:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:126","memberName":"length","nodeType":"MemberAccess","src":"28857:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74881,"nodeType":"Block","src":"29009:764:126","statements":[{"assignments":[74799],"declarations":[{"constant":false,"id":74799,"mutability":"mutable","name":"exist","nameLocation":"29032:5:126","nodeType":"VariableDeclaration","scope":74881,"src":"29027:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74798,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74801,"initialValue":{"hexValue":"66616c7365","id":74800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:126"},{"body":{"id":74829,"nodeType":"Block","src":"29113:268:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":74813,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29164:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74815,"indexExpression":{"id":74814,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":74816,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29183:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74828,"nodeType":"IfStatement","src":"29160:203:126","trueBody":{"id":74827,"nodeType":"Block","src":"29195:168:126","statements":[{"expression":{"id":74820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74818,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"29221:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74821,"nodeType":"ExpressionStatement","src":"29221:12:126"},{"errorCall":{"arguments":[{"id":74823,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29292:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74824,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29304:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74822,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72959,"src":"29266:25:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74826,"nodeType":"RevertStatement","src":"29259:47:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74806,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29083:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74807,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29087:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:126","memberName":"length","nodeType":"MemberAccess","src":"29087:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74830,"initializationExpression":{"assignments":[74803],"declarations":[{"constant":false,"id":74803,"mutability":"mutable","name":"j","nameLocation":"29076:1:126","nodeType":"VariableDeclaration","scope":74830,"src":"29068:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74802,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74805,"initialValue":{"hexValue":"30","id":74804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:126"},"loopExpression":{"expression":{"id":74811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:126","subExpression":{"id":74810,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29108:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74812,"nodeType":"ExpressionStatement","src":"29108:3:126"},"nodeType":"ForStatement","src":"29063:318:126"},{"condition":{"id":74832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:126","subExpression":{"id":74831,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"29403:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74880,"nodeType":"IfStatement","src":"29398:361:126","trueBody":{"id":74879,"nodeType":"Block","src":"29410:349:126","statements":[{"assignments":[74837],"declarations":[{"constant":false,"id":74837,"mutability":"mutable","name":"temp","nameLocation":"29449:4:126","nodeType":"VariableDeclaration","scope":74879,"src":"29432:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74835,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74836,"nodeType":"ArrayTypeName","src":"29432:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74846,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74841,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29470:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:126","memberName":"length","nodeType":"MemberAccess","src":"29470:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":74843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74838,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74839,"nodeType":"ArrayTypeName","src":"29460:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:126"},{"body":{"id":74866,"nodeType":"Block","src":"29566:74:126","statements":[{"expression":{"id":74864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74858,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29592:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74860,"indexExpression":{"id":74859,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29597:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":74861,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29602:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74863,"indexExpression":{"id":74862,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29615:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74865,"nodeType":"ExpressionStatement","src":"29592:25:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74851,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29536:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74852,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29540:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:126","memberName":"length","nodeType":"MemberAccess","src":"29540:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74867,"initializationExpression":{"assignments":[74848],"declarations":[{"constant":false,"id":74848,"mutability":"mutable","name":"j","nameLocation":"29529:1:126","nodeType":"VariableDeclaration","scope":74867,"src":"29521:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74847,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74850,"initialValue":{"hexValue":"30","id":74849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:126"},"loopExpression":{"expression":{"id":74856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:126","subExpression":{"id":74855,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29561:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74857,"nodeType":"ExpressionStatement","src":"29561:3:126"},"nodeType":"ForStatement","src":"29516:124:126"},{"expression":{"id":74873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74868,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29661:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74871,"indexExpression":{"expression":{"id":74869,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29666:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:126","memberName":"length","nodeType":"MemberAccess","src":"29666:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74872,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29689:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74874,"nodeType":"ExpressionStatement","src":"29661:38:126"},{"expression":{"id":74877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74875,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29721:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74876,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29736:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74878,"nodeType":"ExpressionStatement","src":"29721:19:126"}]}}]},"id":74882,"nodeType":"IfStatement","src":"28853:920:126","trueBody":{"id":74797,"nodeType":"Block","src":"28883:120:126","statements":[{"expression":{"id":74789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74783,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28901:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":74787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:126","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":74786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74784,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74785,"nodeType":"ArrayTypeName","src":"28920:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74790,"nodeType":"ExpressionStatement","src":"28901:31:126"},{"expression":{"id":74795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74791,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28950:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74793,"indexExpression":{"hexValue":"30","id":74792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74794,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"28968:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74796,"nodeType":"ExpressionStatement","src":"28950:28:126"}]}},{"assignments":[74884],"declarations":[{"constant":false,"id":74884,"mutability":"mutable","name":"delta","nameLocation":"29793:5:126","nodeType":"VariableDeclaration","scope":75030,"src":"29786:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74883,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74889,"initialValue":{"expression":{"baseExpression":{"id":74885,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"29801:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74887,"indexExpression":{"id":74886,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"29818:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72859,"src":"29801:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:126"},{"assignments":[74894],"declarations":[{"constant":false,"id":74894,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:126","nodeType":"VariableDeclaration","scope":75030,"src":"29848:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74893,"nodeType":"UserDefinedTypeName","pathNode":{"id":74892,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:126","29863:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"29848:23:126"},"referencedDeclaration":72855,"src":"29848:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74898,"initialValue":{"baseExpression":{"id":74895,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"29891:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74897,"indexExpression":{"id":74896,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29901:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:126"},{"assignments":[74900],"declarations":[{"constant":false,"id":74900,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:126","nodeType":"VariableDeclaration","scope":75030,"src":"30014:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74899,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74905,"initialValue":{"baseExpression":{"expression":{"id":74901,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30045:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"30045:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74904,"indexExpression":{"id":74903,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30072:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:126"},{"assignments":[74907],"declarations":[{"constant":false,"id":74907,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:126","nodeType":"VariableDeclaration","scope":75030,"src":"30245:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74906,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74912,"initialValue":{"arguments":[{"id":74909,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"30280:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74910,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74884,"src":"30302:5:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74908,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"30268:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:126"},{"expression":{"id":74919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74913,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30443:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"30443:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74917,"indexExpression":{"id":74915,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30470:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74918,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"30481:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74920,"nodeType":"ExpressionStatement","src":"30443:50:126"},{"assignments":[74922],"declarations":[{"constant":false,"id":74922,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:126","nodeType":"VariableDeclaration","scope":75030,"src":"30727:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74921,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74924,"initialValue":{"hexValue":"66616c7365","id":74923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:126"},{"body":{"id":74953,"nodeType":"Block","src":"30832:179:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":74938,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"30854:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74940,"indexExpression":{"id":74939,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30875:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74942,"indexExpression":{"id":74941,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30884:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":74943,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30890:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"30890:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74952,"nodeType":"IfStatement","src":"30850:147:126","trueBody":{"id":74951,"nodeType":"Block","src":"30911:86:126","statements":[{"expression":{"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74946,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74922,"src":"30933:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74949,"nodeType":"ExpressionStatement","src":"30933:18:126"},{"id":74950,"nodeType":"Break","src":"30973:5:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74929,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30785:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":74930,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"30789:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74932,"indexExpression":{"id":74931,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:126","memberName":"length","nodeType":"MemberAccess","src":"30789:36:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74954,"initializationExpression":{"assignments":[74926],"declarations":[{"constant":false,"id":74926,"mutability":"mutable","name":"k","nameLocation":"30778:1:126","nodeType":"VariableDeclaration","scope":74954,"src":"30770:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74925,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74928,"initialValue":{"hexValue":"30","id":74927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:126"},"loopExpression":{"expression":{"id":74936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:126","subExpression":{"id":74935,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30827:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74937,"nodeType":"ExpressionStatement","src":"30827:3:126"},"nodeType":"ForStatement","src":"30765:246:126"},{"condition":{"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:126","subExpression":{"id":74955,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74922,"src":"31029:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74966,"nodeType":"IfStatement","src":"31024:106:126","trueBody":{"id":74965,"nodeType":"Block","src":"31042:88:126","statements":[{"expression":{"arguments":[{"expression":{"id":74961,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31095:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"31095:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":74957,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"31060:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74959,"indexExpression":{"id":74958,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"31081:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:126","memberName":"push","nodeType":"MemberAccess","src":"31060:34:126","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":74963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74964,"nodeType":"ExpressionStatement","src":"31060:55:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74967,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31285:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":74968,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31309:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74999,"nodeType":"Block","src":"31490:161:126","statements":[{"expression":{"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74985,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"31508:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31523:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74987,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31546:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74990,"nodeType":"ExpressionStatement","src":"31508:50:126"},{"expression":{"id":74997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74991,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31576:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31576:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74994,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31601:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74995,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31624:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74998,"nodeType":"ExpressionStatement","src":"31576:60:126"}]},"id":75000,"nodeType":"IfStatement","src":"31281:370:126","trueBody":{"id":74984,"nodeType":"Block","src":"31323:161:126","statements":[{"expression":{"id":74974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74970,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"31341:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74971,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31356:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74972,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31371:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74975,"nodeType":"ExpressionStatement","src":"31341:50:126"},{"expression":{"id":74982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74976,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31409:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31409:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74979,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31434:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74980,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31449:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74983,"nodeType":"ExpressionStatement","src":"31409:60:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75001,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31668:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"31668:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75028,"nodeType":"Block","src":"31765:209:126","statements":[{"expression":{"arguments":[{"id":75014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31810:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75015,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31820:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75013,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"31783:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75017,"nodeType":"ExpressionStatement","src":"31783:58:126"},{"eventCall":{"arguments":[{"id":75019,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"31877:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75020,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"31886:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75021,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31898:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75022,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31912:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31912:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75024,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31935:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31935:23:126","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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75018,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73024,"src":"31864:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75027,"nodeType":"EmitStatement","src":"31859:100:126"}]},"id":75029,"nodeType":"IfStatement","src":"31664:310:126","trueBody":{"id":75012,"nodeType":"Block","src":"31693:66:126","statements":[{"expression":{"id":75010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75005,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31711:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"31711:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75008,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:126","memberName":"number","nodeType":"MemberAccess","src":"31732:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75011,"nodeType":"ExpressionStatement","src":"31711:33:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74765,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28685:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74766,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"28689:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:126","memberName":"length","nodeType":"MemberAccess","src":"28689:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75031,"initializationExpression":{"assignments":[74762],"declarations":[{"constant":false,"id":74762,"mutability":"mutable","name":"i","nameLocation":"28678:1:126","nodeType":"VariableDeclaration","scope":75031,"src":"28670:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74761,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74764,"initialValue":{"hexValue":"30","id":74763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:126"},"loopExpression":{"expression":{"id":74770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:126","subExpression":{"id":74769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28714:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74771,"nodeType":"ExpressionStatement","src":"28714:3:126"},"nodeType":"ForStatement","src":"28665:3319:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:126","parameters":{"id":74753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74748,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:126","nodeType":"VariableDeclaration","scope":75033,"src":"28532:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74747,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74752,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:126","nodeType":"VariableDeclaration","scope":75033,"src":"28549:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74750,"nodeType":"UserDefinedTypeName","pathNode":{"id":74749,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:126","28564:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"28549:30:126"},"referencedDeclaration":72860,"src":"28549:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74751,"nodeType":"ArrayTypeName","src":"28549:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:126"},"returnParameters":{"id":74754,"nodeType":"ParameterList","parameters":[],"src":"28616:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75068,"nodeType":"FunctionDefinition","src":"31996:276:126","nodes":[],"body":{"id":75067,"nodeType":"Block","src":"32082:190:126","nodes":[],"statements":[{"assignments":[75043],"declarations":[{"constant":false,"id":75043,"mutability":"mutable","name":"result","nameLocation":"32099:6:126","nodeType":"VariableDeclaration","scope":75067,"src":"32092:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75042,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75050,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75046,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32115:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75044,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:126","typeDescriptions":{}}},"id":75047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75048,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75037,"src":"32127:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:126"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75051,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32148:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75061,"nodeType":"IfStatement","src":"32144:90:126","trueBody":{"id":75060,"nodeType":"Block","src":"32160:74:126","statements":[{"errorCall":{"arguments":[{"id":75055,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32198:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75056,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75037,"src":"32208:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32216:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75054,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72931,"src":"32181:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75059,"nodeType":"RevertStatement","src":"32174:49:126"}]}},{"expression":{"arguments":[{"id":75064,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32258:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75062,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:126","typeDescriptions":{}}},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75041,"id":75066,"nodeType":"Return","src":"32243:22:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:126","parameters":{"id":75038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75035,"mutability":"mutable","name":"_support","nameLocation":"32025:8:126","nodeType":"VariableDeclaration","scope":75068,"src":"32017:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75034,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75037,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:126","nodeType":"VariableDeclaration","scope":75068,"src":"32035:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75036,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:126"},"returnParameters":{"id":75041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75068,"src":"32073:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75039,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75124,"nodeType":"FunctionDefinition","src":"32689:1145:126","nodes":[],"body":{"id":75123,"nodeType":"Block","src":"32836:998:126","nodes":[],"statements":[{"assignments":[75081],"declarations":[{"constant":false,"id":75081,"mutability":"mutable","name":"t","nameLocation":"32854:1:126","nodeType":"VariableDeclaration","scope":75123,"src":"32846:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75080,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75083,"initialValue":{"id":75082,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75071,"src":"32858:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:126"},{"assignments":[75085],"declarations":[{"constant":false,"id":75085,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:126","nodeType":"VariableDeclaration","scope":75123,"src":"33184:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75084,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75095,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75087,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"33210:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75091,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33226:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75093,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"33229:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75086,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75312,"src":"33204:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75096,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"33727:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75097,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75073,"src":"33739:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75099,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75100,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75075,"src":"33754:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75101,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33767:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75103,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"33772:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75104,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"33782:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75109,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33797:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75110,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"33801:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75116,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75117,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33812:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75079,"id":75122,"nodeType":"Return","src":"33717:110:126"}]},"documentation":{"id":75069,"nodeType":"StructuredDocumentation","src":"32278:406:126","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:126","parameters":{"id":75076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75071,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:126","nodeType":"VariableDeclaration","scope":75124,"src":"32718:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75070,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75073,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:126","nodeType":"VariableDeclaration","scope":75124,"src":"32739:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75072,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75075,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:126","nodeType":"VariableDeclaration","scope":75124,"src":"32758:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75074,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:126"},"returnParameters":{"id":75079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75124,"src":"32823:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75077,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75212,"nodeType":"FunctionDefinition","src":"34415:1482:126","nodes":[],"body":{"id":75211,"nodeType":"Block","src":"34510:1387:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75132,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75139,"nodeType":"IfStatement","src":"34640:66:126","trueBody":{"id":75138,"nodeType":"Block","src":"34661:45:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"34682:11:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75137,"nodeType":"RevertStatement","src":"34675:20:126"}]}},{"condition":{"arguments":[{"id":75141,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75127,"src":"35162:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75140,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74650,"src":"35146:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75147,"nodeType":"IfStatement","src":"35142:91:126","trueBody":{"id":75146,"nodeType":"Block","src":"35181:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75143,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72917,"src":"35202:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75145,"nodeType":"RevertStatement","src":"35195:27:126"}]}},{"assignments":[75149],"declarations":[{"constant":false,"id":75149,"mutability":"mutable","name":"denom","nameLocation":"35389:5:126","nodeType":"VariableDeclaration","scope":75211,"src":"35381:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75148,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75167,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"35398:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75156,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35420:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75158,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75127,"src":"35425:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75163,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75164,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:126"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75168,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35475:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75169,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"35507:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75172,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75173,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35524:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75176,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75149,"src":"35531:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75177,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75149,"src":"35539:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75182,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75185,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35556:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75187,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75188,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35562:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75189,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"35566:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75194,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75320,"src":"35576:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75201,"nodeType":"ExpressionStatement","src":"35475:145:126"},{"expression":{"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75202,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35810:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75203,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35823:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75204,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"35836:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75207,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"35871:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:126","trueExpression":{"id":75206,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35858:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75210,"nodeType":"ExpressionStatement","src":"35810:80:126"}]},"documentation":{"id":75125,"nodeType":"StructuredDocumentation","src":"33840:570:126","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:126","parameters":{"id":75128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75127,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:126","nodeType":"VariableDeclaration","scope":75212,"src":"34443:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75126,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:126"},"returnParameters":{"id":75131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75130,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:126","nodeType":"VariableDeclaration","scope":75212,"src":"34490:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75129,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75247,"nodeType":"FunctionDefinition","src":"36158:269:126","nodes":[],"body":{"id":75246,"nodeType":"Block","src":"36236:191:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75223,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75215,"src":"36254:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75224,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36260:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75228,"nodeType":"ExpressionStatement","src":"36246:66:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75230,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75217,"src":"36330:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75231,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36335:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75235,"nodeType":"ExpressionStatement","src":"36322:53:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75236,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75215,"src":"36394:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75237,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75217,"src":"36399:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75240,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"36405:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75221,"id":75245,"nodeType":"Return","src":"36385:35:126"}]},"documentation":{"id":75213,"nodeType":"StructuredDocumentation","src":"35903:250:126","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:126","parameters":{"id":75218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75215,"mutability":"mutable","name":"_a","nameLocation":"36180:2:126","nodeType":"VariableDeclaration","scope":75247,"src":"36172:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75214,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75217,"mutability":"mutable","name":"_b","nameLocation":"36192:2:126","nodeType":"VariableDeclaration","scope":75247,"src":"36184:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75216,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:126"},"returnParameters":{"id":75221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75220,"mutability":"mutable","name":"_result","nameLocation":"36227:7:126","nodeType":"VariableDeclaration","scope":75247,"src":"36219:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75219,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75312,"nodeType":"FunctionDefinition","src":"36649:447:126","nodes":[],"body":{"id":75311,"nodeType":"Block","src":"36727:369:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75258,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75250,"src":"36745:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75259,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36750:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75263,"nodeType":"ExpressionStatement","src":"36737:53:126"},{"assignments":[75265],"declarations":[{"constant":false,"id":75265,"mutability":"mutable","name":"a","nameLocation":"36808:1:126","nodeType":"VariableDeclaration","scope":75311,"src":"36800:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75264,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75267,"initialValue":{"id":75266,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75250,"src":"36812:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:126"},{"assignments":[75269],"declarations":[{"constant":false,"id":75269,"mutability":"mutable","name":"b","nameLocation":"36832:1:126","nodeType":"VariableDeclaration","scope":75311,"src":"36824:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75268,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75271,"initialValue":{"id":75270,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75252,"src":"36836:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:126"},{"expression":{"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75272,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"36848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75273,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36858:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75275,"nodeType":"ExpressionStatement","src":"36848:17:126"},{"body":{"id":75309,"nodeType":"Block","src":"36889:201:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75279,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36907:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75307,"nodeType":"Block","src":"36997:83:126","statements":[{"expression":{"id":75301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75296,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"37015:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75298,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"37030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75299,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"37039:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75297,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37025:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75302,"nodeType":"ExpressionStatement","src":"37015:26:126"},{"expression":{"id":75305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75303,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"37059:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75306,"nodeType":"ExpressionStatement","src":"37059:6:126"}]},"id":75308,"nodeType":"IfStatement","src":"36903:177:126","trueBody":{"id":75295,"nodeType":"Block","src":"36919:72:126","statements":[{"expression":{"id":75289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36937:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75286,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36946:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36949:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75285,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"36941:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75290,"nodeType":"ExpressionStatement","src":"36937:14:126"},{"expression":{"id":75293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75291,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36969:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75294,"nodeType":"ExpressionStatement","src":"36969:7:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75276,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36882:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75310,"nodeType":"WhileStatement","src":"36875:215:126"}]},"documentation":{"id":75248,"nodeType":"StructuredDocumentation","src":"36433:211:126","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:126","parameters":{"id":75253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75250,"mutability":"mutable","name":"_a","nameLocation":"36671:2:126","nodeType":"VariableDeclaration","scope":75312,"src":"36663:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75249,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75252,"mutability":"mutable","name":"_b","nameLocation":"36683:2:126","nodeType":"VariableDeclaration","scope":75312,"src":"36675:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75251,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:126"},"returnParameters":{"id":75256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75255,"mutability":"mutable","name":"_result","nameLocation":"36718:7:126","nodeType":"VariableDeclaration","scope":75312,"src":"36710:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75254,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75320,"nodeType":"FunctionDefinition","src":"37102:112:126","nodes":[],"body":{"id":75319,"nodeType":"Block","src":"37170:44:126","nodes":[],"statements":[{"expression":{"id":75317,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"37187:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75316,"id":75318,"nodeType":"Return","src":"37180:27:126"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:126","parameters":{"id":75313,"nodeType":"ParameterList","parameters":[],"src":"37137:2:126"},"returnParameters":{"id":75316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75320,"src":"37161:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75314,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75361,"nodeType":"FunctionDefinition","src":"37404:396:126","nodes":[],"body":{"id":75360,"nodeType":"Block","src":"37512:288:126","nodes":[],"statements":[{"assignments":[75330,75332],"declarations":[{"constant":false,"id":75330,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:126","nodeType":"VariableDeclaration","scope":75360,"src":"37523:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75329,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75332,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:126","nodeType":"VariableDeclaration","scope":75360,"src":"37543:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75331,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75337,"initialValue":{"arguments":[{"id":75334,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37600:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75335,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75326,"src":"37611:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75333,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"37566:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75338,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"37636:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75341,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75332,"src":"37655:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75347,"nodeType":"IfStatement","src":"37632:72:126","trueBody":{"id":75346,"nodeType":"Block","src":"37673:31:126","statements":[{"functionReturnParameters":75328,"id":75345,"nodeType":"Return","src":"37687:7:126"}]}},{"expression":{"id":75352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75348,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37713:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"37713:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75351,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75332,"src":"37735:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75353,"nodeType":"ExpressionStatement","src":"37713:33:126"},{"expression":{"id":75358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75354,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37756:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"37756:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75357,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"37783:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75359,"nodeType":"ExpressionStatement","src":"37756:37:126"}]},"documentation":{"id":75321,"nodeType":"StructuredDocumentation","src":"37220:179:126","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:126","parameters":{"id":75327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75324,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:126","nodeType":"VariableDeclaration","scope":75361,"src":"37440:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75323,"nodeType":"UserDefinedTypeName","pathNode":{"id":75322,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:126","37455:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"37440:23:126"},"referencedDeclaration":72855,"src":"37440:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75326,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:126","nodeType":"VariableDeclaration","scope":75361,"src":"37483:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75325,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:126"},"returnParameters":{"id":75328,"nodeType":"ParameterList","parameters":[],"src":"37512:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75408,"nodeType":"FunctionDefinition","src":"37806:719:126","nodes":[],"body":{"id":75407,"nodeType":"Block","src":"38004:521:126","nodes":[],"statements":[{"expression":{"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75373,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38014:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75374,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:126","memberName":"number","nodeType":"MemberAccess","src":"38028:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75377,"nodeType":"ExpressionStatement","src":"38014:26:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75379,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38057:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38057:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75381,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38080:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75378,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:126","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75384,"nodeType":"ExpressionStatement","src":"38050:42:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75385,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38106:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38106:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75387,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38129:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75394,"nodeType":"IfStatement","src":"38102:173:126","trueBody":{"id":75393,"nodeType":"Block","src":"38142:133:126","statements":[{"expression":{"components":[{"hexValue":"30","id":75389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75391,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75372,"id":75392,"nodeType":"Return","src":"38222:13:126"}]}},{"expression":{"id":75405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75395,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75369,"src":"38328:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75397,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38374:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75398,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38388:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38388:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75401,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38460:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38460:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75403,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75366,"src":"38498:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75396,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75124,"src":"38341:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75406,"nodeType":"ExpressionStatement","src":"38328:190:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:126","parameters":{"id":75367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75364,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:126","nodeType":"VariableDeclaration","scope":75408,"src":"37849:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75363,"nodeType":"UserDefinedTypeName","pathNode":{"id":75362,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:126","37864:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"37849:23:126"},"referencedDeclaration":72855,"src":"37849:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75366,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:126","nodeType":"VariableDeclaration","scope":75408,"src":"37892:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75365,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:126"},"returnParameters":{"id":75372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75369,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:126","nodeType":"VariableDeclaration","scope":75408,"src":"37959:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75368,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75371,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:126","nodeType":"VariableDeclaration","scope":75408,"src":"37979:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75370,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75456,"nodeType":"FunctionDefinition","src":"38531:520:126","nodes":[],"body":{"id":75455,"nodeType":"Block","src":"38610:441:126","nodes":[],"statements":[{"assignments":[75419],"declarations":[{"constant":false,"id":75419,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:126","nodeType":"VariableDeclaration","scope":75455,"src":"38620:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75418,"nodeType":"UserDefinedTypeName","pathNode":{"id":75417,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:126","38635:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"38620:23:126"},"referencedDeclaration":72855,"src":"38620:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75423,"initialValue":{"baseExpression":{"id":75420,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"38663:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75422,"indexExpression":{"id":75421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38673:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38699:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"38699:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75426,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38722:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75433,"nodeType":"IfStatement","src":"38695:100:126","trueBody":{"id":75432,"nodeType":"Block","src":"38734:61:126","statements":[{"errorCall":{"arguments":[{"id":75429,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38773:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75428,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"38755:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75431,"nodeType":"RevertStatement","src":"38748:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"id":75439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75434,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38809:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"38809:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75436,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"38836:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":75437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"38836:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"38836:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75445,"nodeType":"IfStatement","src":"38805:130:126","trueBody":{"id":75444,"nodeType":"Block","src":"38874:61:126","statements":[{"errorCall":{"arguments":[{"id":75441,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38913:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75440,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72949,"src":"38895:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75443,"nodeType":"RevertStatement","src":"38888:36:126"}]}},{"expression":{"arguments":[{"id":75447,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38972:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38982:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"38982:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75446,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"38945:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75451,"nodeType":"ExpressionStatement","src":"38945:59:126"},{"expression":{"expression":{"id":75452,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"39021:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"39021:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75414,"id":75454,"nodeType":"Return","src":"39014:30:126"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:126","parameters":{"id":75411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75410,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:126","nodeType":"VariableDeclaration","scope":75456,"src":"38565:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75409,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:126"},"returnParameters":{"id":75414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75456,"src":"38601:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75412,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75475,"nodeType":"FunctionDefinition","src":"39057:124:126","nodes":[],"body":{"id":75474,"nodeType":"Block","src":"39129:52:126","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75463,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75458,"src":"39148:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75464,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"39157:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75466,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75467,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"39163:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75468,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"39167:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75472,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75462,"id":75473,"nodeType":"Return","src":"39139:35:126"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:126","parameters":{"id":75459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75458,"mutability":"mutable","name":"amount","nameLocation":"39091:6:126","nodeType":"VariableDeclaration","scope":75475,"src":"39083:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75457,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:126"},"returnParameters":{"id":75462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75475,"src":"39120:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75460,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75493,"nodeType":"FunctionDefinition","src":"39187:137:126","nodes":[],"body":{"id":75492,"nodeType":"Block","src":"39258:66:126","nodes":[],"statements":[{"expression":{"id":75486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75484,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"39268:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75485,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75477,"src":"39276:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75487,"nodeType":"ExpressionStatement","src":"39268:14:126"},{"eventCall":{"arguments":[{"id":75489,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75477,"src":"39310:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75488,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73032,"src":"39297:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75491,"nodeType":"EmitStatement","src":"39292:25:126"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75482,"kind":"modifierInvocation","modifierName":{"id":75479,"name":"onlyPoolManager","nameLocations":["39230:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:126"},"nodeType":"ModifierInvocation","src":"39230:27:126"}],"name":"setDecay","nameLocation":"39196:8:126","parameters":{"id":75478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75477,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:126","nodeType":"VariableDeclaration","scope":75493,"src":"39205:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:126"},"returnParameters":{"id":75483,"nodeType":"ParameterList","parameters":[],"src":"39258:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75511,"nodeType":"FunctionDefinition","src":"39330:155:126","nodes":[],"body":{"id":75510,"nodeType":"Block","src":"39407:78:126","nodes":[],"statements":[{"expression":{"id":75504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75502,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"39417:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75503,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"39428:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75505,"nodeType":"ExpressionStatement","src":"39417:20:126"},{"eventCall":{"arguments":[{"id":75507,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"39468:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75506,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73036,"src":"39452:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75509,"nodeType":"EmitStatement","src":"39447:31:126"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75498,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75500,"kind":"modifierInvocation","modifierName":{"id":75497,"name":"onlyPoolManager","nameLocations":["39379:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:126"},"nodeType":"ModifierInvocation","src":"39379:27:126"}],"name":"setMaxRatio","nameLocation":"39339:11:126","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75495,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:126","nodeType":"VariableDeclaration","scope":75511,"src":"39351:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75494,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:126"},"returnParameters":{"id":75501,"nodeType":"ParameterList","parameters":[],"src":"39407:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75529,"nodeType":"FunctionDefinition","src":"39491:143:126","nodes":[],"body":{"id":75528,"nodeType":"Block","src":"39564:70:126","nodes":[],"statements":[{"expression":{"id":75522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75520,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"39574:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75521,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75513,"src":"39583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75523,"nodeType":"ExpressionStatement","src":"39574:16:126"},{"eventCall":{"arguments":[{"id":75525,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75513,"src":"39619:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75524,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73040,"src":"39605:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75527,"nodeType":"EmitStatement","src":"39600:27:126"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75516,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75518,"kind":"modifierInvocation","modifierName":{"id":75515,"name":"onlyPoolManager","nameLocations":["39536:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:126"},"nodeType":"ModifierInvocation","src":"39536:27:126"}],"name":"setWeight","nameLocation":"39500:9:126","parameters":{"id":75514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75513,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:126","nodeType":"VariableDeclaration","scope":75529,"src":"39510:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75512,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:126"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[],"src":"39564:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75549,"nodeType":"FunctionDefinition","src":"39640:219:126","nodes":[],"body":{"id":75548,"nodeType":"Block","src":"39735:124:126","nodes":[],"statements":[{"expression":{"id":75542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75538,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"39745:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75540,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75531,"src":"39783:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75539,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"39765:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77692_$","typeString":"type(contract RegistryCommunity)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"src":"39745:57:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":75543,"nodeType":"ExpressionStatement","src":"39745:57:126"},{"eventCall":{"arguments":[{"id":75545,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75531,"src":"39833:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75544,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73044,"src":"39817:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75547,"nodeType":"EmitStatement","src":"39812:40:126"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75536,"kind":"modifierInvocation","modifierName":{"id":75533,"name":"onlyPoolManager","nameLocations":["39707:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:126"},"nodeType":"ModifierInvocation","src":"39707:27:126"}],"name":"setRegistryCommunity","nameLocation":"39649:20:126","parameters":{"id":75532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75531,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:126","nodeType":"VariableDeclaration","scope":75549,"src":"39670:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75530,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:126"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[],"src":"39735:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75568,"nodeType":"FunctionDefinition","src":"39865:237:126","nodes":[],"body":{"id":75567,"nodeType":"Block","src":"39962:140:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75559,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"40003:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75560,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"40024:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75558,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73050,"src":"39977:25:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75562,"nodeType":"EmitStatement","src":"39972:72:126"},{"expression":{"id":75565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75563,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"40054:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75564,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"40076:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75566,"nodeType":"ExpressionStatement","src":"40054:41:126"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75554,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75556,"kind":"modifierInvocation","modifierName":{"id":75553,"name":"onlyPoolManager","nameLocations":["39934:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:126"},"nodeType":"ModifierInvocation","src":"39934:27:126"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:126","parameters":{"id":75552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75551,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:126","nodeType":"VariableDeclaration","scope":75568,"src":"39896:27:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75550,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:126"},"returnParameters":{"id":75557,"nodeType":"ParameterList","parameters":[],"src":"39962:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":72893,"name":"BaseStrategy","nameLocations":["2845:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:126"},"id":72894,"nodeType":"InheritanceSpecifier","src":"2845:12:126"},{"baseName":{"id":72895,"name":"IPointStrategy","nameLocations":["2859:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72801,"src":"2859:14:126"},"id":72896,"nodeType":"InheritanceSpecifier","src":"2859:14:126"},{"baseName":{"id":72897,"name":"ERC165","nameLocations":["2875:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":58105,"src":"2875:6:126"},"id":72898,"nodeType":"InheritanceSpecifier","src":"2875:6:126"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75569,58105,58311,72801,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:126","scope":75570,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,72903,72905,72907,72909,72911,72913,72915,72917,72919,72921,72923,72931,72933,72935,72941,72943,72945,72949,72953,72959,72961,72963,72971]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_allo","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"fallback","stateMutability":"payable"},{"type":"receive","stateMutability":"payable"},{"type":"function","name":"D","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"MAX_STAKED_PROPOSALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"_minThresholdPoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"activatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"allocate","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"payable"},{"type":"function","name":"calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"calculateThreshold","inputs":[{"name":"_requestedAmount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"_threshold","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"canExecuteProposal","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"canBeExecuted","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deactivatePoints","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decay","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUnstake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"distribute","inputs":[{"name":"_recipientIds","type":"address[]","internalType":"address[]"},{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getAllo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IAllo"}],"stateMutability":"view"},{"type":"function","name":"getMaxAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMaxConviction","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMetadata","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getPayouts","inputs":[{"name":"","type":"address[]","internalType":"address[]"},{"name":"","type":"bytes[]","internalType":"bytes[]"}],"outputs":[{"name":"","type":"tuple[]","internalType":"struct IStrategy.PayoutSummary[]","components":[{"name":"recipientAddress","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}]}],"stateMutability":"pure"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"getPoolAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getPoolId","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposal","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"submitter","type":"address","internalType":"address"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"threshold","type":"uint256","internalType":"uint256"},{"name":"voterStakedPoints","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalStakedAmount","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getProposalVoterStake","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRecipientStatus","inputs":[{"name":"_recipientId","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint8","internalType":"enum IStrategy.Status"}],"stateMutability":"view"},{"type":"function","name":"getStrategyId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTotalVoterStakePct","inputs":[{"name":"_voter","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"increasePoolAmount","inputs":[{"name":"_amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"},{"name":"_data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isPoolActive","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isValidAllocator","inputs":[{"name":"_allocator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"maxRatio","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointConfig","inputs":[],"outputs":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"view"},{"type":"function","name":"proposalCounter","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"proposalType","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.ProposalType"}],"stateMutability":"view"},{"type":"function","name":"proposals","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"requestedAmount","type":"uint256","internalType":"uint256"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"convictionLast","type":"uint256","internalType":"uint256"},{"name":"beneficiary","type":"address","internalType":"address"},{"name":"submitter","type":"address","internalType":"address"},{"name":"requestedToken","type":"address","internalType":"address"},{"name":"blockLast","type":"uint256","internalType":"uint256"},{"name":"proposalStatus","type":"uint8","internalType":"enum StrategyStruct.ProposalStatus"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"registerRecipient","inputs":[{"name":"_data","type":"bytes","internalType":"bytes"},{"name":"_sender","type":"address","internalType":"address"}],"outputs":[{"name":"recipientId","type":"address","internalType":"address"}],"stateMutability":"payable"},{"type":"function","name":"registryCommunity","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract RegistryCommunity"}],"stateMutability":"view"},{"type":"function","name":"setDecay","inputs":[{"name":"_decay","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMaxRatio","inputs":[{"name":"_maxRatio","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setMinThresholdPoints","inputs":[{"name":"minThresholdPoints_","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setPoolActive","inputs":[{"name":"_active","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setRegistryCommunity","inputs":[{"name":"_registryCommunity","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setWeight","inputs":[{"name":"_weight","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportProposal","inputs":[{"name":"","type":"tuple[]","internalType":"struct StrategyStruct.ProposalSupport[]","components":[{"name":"proposalId","type":"uint256","internalType":"uint256"},{"name":"deltaSupport","type":"int256","internalType":"int256"}]}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"totalEffectiveActivePoints","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalPointsActivated","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalStaked","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"totalVoterStakePct","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"updateProposalConviction","inputs":[{"name":"proposalId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"voterStakedProposals","inputs":[{"name":"","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"weight","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"Allocated","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"token","type":"address","indexed":false,"internalType":"address"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"DecayUpdated","inputs":[{"name":"decay","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"beneficiary","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Distributed","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"recipientAddress","type":"address","indexed":false,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"InitializedCV","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"data","type":"tuple","indexed":false,"internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"anonymous":false},{"type":"event","name":"MaxRatioUpdated","inputs":[{"name":"maxRatio","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MinThresholdPointsUpdated","inputs":[{"name":"before","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PointsDeactivated","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolActive","inputs":[{"name":"active","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"PoolAmountIncreased","inputs":[{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerDecreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensUnStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToDecrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PowerIncreased","inputs":[{"name":"member","type":"address","indexed":false,"internalType":"address"},{"name":"tokensStaked","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ProposalCreated","inputs":[{"name":"poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Registered","inputs":[{"name":"recipientId","type":"address","indexed":true,"internalType":"address"},{"name":"data","type":"bytes","indexed":false,"internalType":"bytes"},{"name":"sender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RegistryUpdated","inputs":[{"name":"registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"SupportAdded","inputs":[{"name":"from","type":"address","indexed":false,"internalType":"address"},{"name":"proposalId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"totalStakedAmount","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"convictionLast","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WeightUpdated","inputs":[{"name":"weight","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"AmountOverMaxRatio","inputs":[]},{"type":"error","name":"CantIncreaseFixedSystem","inputs":[]},{"type":"error","name":"ConvictionUnderMinimumThreshold","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"MaxPointsReached","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"NotEnoughPointsToSupport","inputs":[{"name":"pointsSupport","type":"uint256","internalType":"uint256"},{"name":"pointsBalance","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"NotImplemented","inputs":[]},{"type":"error","name":"OnlyCommunityAllowed","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"PoolAmountNotEnough","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"_requestedAmount","type":"uint256","internalType":"uint256"},{"name":"_poolAmount","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"PoolIdCannotBeZero","inputs":[]},{"type":"error","name":"PoolIsEmpty","inputs":[]},{"type":"error","name":"ProposalDataIsEmpty","inputs":[]},{"type":"error","name":"ProposalIdCannotBeZero","inputs":[]},{"type":"error","name":"ProposalNotActive","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalNotInList","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ProposalSupportDuplicated","inputs":[{"name":"_proposalId","type":"uint256","internalType":"uint256"},{"name":"index","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SupportUnderflow","inputs":[{"name":"_support","type":"uint256","internalType":"uint256"},{"name":"_delta","type":"int256","internalType":"int256"},{"name":"_result","type":"int256","internalType":"int256"}]},{"type":"error","name":"TokenCannotBeZero","inputs":[]},{"type":"error","name":"TokenNotAllowed","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"UserCannotBeZero","inputs":[]},{"type":"error","name":"UserIsInactive","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x60c0604052600060065560006009553480156200001b57600080fd5b5060405162004ab338038062004ab38339810160408190526200003e91620000a6565b604080518082018252600a8152694356537472617465677960b01b6020808301919091526001600160a01b038416608052915183926200008191839101620000d8565b60408051601f19818403018152919052805160209091012060a0525062000128915050565b600060208284031215620000b957600080fd5b81516001600160a01b0381168114620000d157600080fd5b9392505050565b600060208083528351808285015260005b818110156200010757858101830151858201604001528201620000e9565b506000604082860101526040601f19601f8301168501019250505092915050565b60805160a0516149506200016360003960006105de0152600081816104720152818161188f015281816119220152611bab01526149506000f3fe60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea26469706673582212208598030103e0610af42491e498e133f0105c5816b19cb34235fa93ed5772fe1864736f6c63430008130033","sourceMap":"2822:37282:126:-:0;;;6387:1;6354:34;;6504:1;6467:38;;7496:72;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5210:135:11;;;;;;;;;;;-1:-1:-1;;;5210:135:11;;;;;;;;-1:-1:-1;;;;;5268:19:11;;;;5320:17;;7544:5:126;;5320:17:11;;5210:135;;5320:17;;:::i;:::-;;;;-1:-1:-1;;5320:17:11;;;;;;;;;5310:28;;5320:17;5310:28;;;;5297:41;;-1:-1:-1;2822:37282:126;;-1:-1:-1;;2822:37282:126;14:290:145;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:145;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:145:o;309:548::-;421:4;450:2;479;468:9;461:21;511:6;505:13;554:6;549:2;538:9;534:18;527:34;579:1;589:140;603:6;600:1;597:13;589:140;;;698:14;;;694:23;;688:30;664:17;;;683:2;660:26;653:66;618:10;;589:140;;;593:3;778:1;773:2;764:6;753:9;749:22;745:31;738:42;848:2;841;837:7;832:2;824:6;820:15;816:29;805:9;801:45;797:54;789:62;;;;309:548;;;;:::o;:::-;2822:37282:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061033f5760003560e01c806376365af7116101ae578063b5f620ce116100eb578063e0dd2c381161008f578063edd146cc1161006c578063edd146cc14610a09578063ef2920fc14610a29578063f5b0dfb714610a3c578063fc1711f214610a5c57005b8063e0dd2c381461099c578063e33add93146109bc578063eb11af93146109dc57005b8063c7f758a8116100c8578063c7f758a814610909578063d1e362321461093f578063dc96ff2d14610954578063df868ed31461098457005b8063b5f620ce14610896578063bcc5b93b146108b6578063c3292171146108ec57005b8063950559d711610152578063a47ff7e51161012f578063a47ff7e51461080f578063a574cea414610826578063aba9ffee14610853578063b2b878d01461086957005b8063950559d7146107b1578063a0cf0aea146107d1578063a1aab33f146107f957005b8063814516ad1161018b578063814516ad14610746578063817b1cd21461075b578063824ea8ed14610771578063868c57b81461079157005b806376365af7146106fa578063782aadff146107105780637c6570ba1461073057005b80632ed04b2b1161027c5780634d31d087116102205780635db64b99116101fd5780635db64b991461066d5780636003e4141461069a5780636453d9c4146106ba57806369fa25c4146106da57005b80634d31d0871461061757806354fac9191461063757806359a5db8b1461064d57005b806338fff2d01161025957806338fff2d0146105a5578063406244d8146105ba57806342fda9c7146105cf5780634ab4ba421461060257005b80632ed04b2b1461053e578063346db8cb1461055e578063351d9f961461057e57005b806311f22ae3116102e35780631ddf1e23116102c05780631ddf1e23146104ca5780632bbe0cae146104df5780632cefadbb146104f25780632dbd6fdd1461051257005b806311f22ae31461044357806315cc481e146104635780631aa91a9e146104aa57005b80630a6f0ee91161031c5780630a6f0ee9146103d75780630ba95909146103f75780630c0512e9146104165780630f529ba21461042c57005b8063013cf08b1461034857806301ffc9a714610387578063058aca44146103b757005b3661034657005b005b34801561035457600080fd5b506103686103633660046138e1565b610a7c565b60405161037e9a9998979695949392919061399b565b60405180910390f35b34801561039357600080fd5b506103a76103a2366004613a0e565b610b8a565b604051901515815260200161037e565b3480156103c357600080fd5b506103466103d2366004613a65565b610c23565b3480156103e357600080fd5b506103466103f2366004613c6d565b610c90565b34801561040357600080fd5b50600c545b60405190815260200161037e565b34801561042257600080fd5b5061040860065481565b34801561043857600080fd5b506104086298968081565b34801561044f57600080fd5b5061034661045e3660046138e1565b610cb0565b34801561046f57600080fd5b507f00000000000000000000000000000000000000000000000000000000000000005b6040516001600160a01b03909116815260200161037e565b3480156104b657600080fd5b506104086104c53660046138e1565b610cef565b3480156104d657600080fd5b50610346610d7a565b6104926104ed366004613ce5565b610d85565b3480156104fe57600080fd5b5061034661050d3660046138e1565b610da8565b34801561051e57600080fd5b50600b5461053190610100900460ff1681565b60405161037e9190613d47565b34801561054a57600080fd5b50610408610559366004613d55565b610df4565b34801561056a57600080fd5b50610408610579366004613d81565b610ec6565b34801561058a57600080fd5b50600b546105989060ff1681565b60405161037e9190613dbd565b3480156105b157600080fd5b50600154610408565b3480156105c657600080fd5b50610408600a81565b3480156105db57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610408565b34801561060e57600080fd5b50600254610408565b34801561062357600080fd5b506103a7610632366004613a65565b610f6b565b34801561064357600080fd5b5061040860035481565b34801561065957600080fd5b506104086106683660046138e1565b610f76565b34801561067957600080fd5b50610408610688366004613a65565b600f6020526000908152604090205481565b3480156106a657600080fd5b50600d54610492906001600160a01b031681565b3480156106c657600080fd5b506103466106d5366004613a65565b6110b3565b3480156106e657600080fd5b506103466106f53660046138e1565b6110c7565b34801561070657600080fd5b5061040860045481565b34801561071c57600080fd5b5061040861072b366004613d55565b611106565b34801561073c57600080fd5b5061040860095481565b34801561075257600080fd5b50610346611282565b34801561076757600080fd5b5061040860075481565b34801561077d57600080fd5b506103a761078c3660046138e1565b61138c565b34801561079d57600080fd5b506104086107ac366004613d55565b6113e9565b3480156107bd57600080fd5b506104086107cc3660046138e1565b61141a565b3480156107dd57600080fd5b5061049273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b34801561080557600080fd5b5061040860055481565b34801561081b57600080fd5b50600c546104089081565b34801561083257600080fd5b506108466108413660046138e1565b611444565b60405161037e9190613dcb565b34801561085f57600080fd5b5061040860085481565b34801561087557600080fd5b50610889610884366004613dde565b611523565b60405161037e9190613eb3565b3480156108a257600080fd5b506103466108b1366004613f21565b61153e565b3480156108c257600080fd5b506104086108d1366004613a65565b6001600160a01b03166000908152600f602052604090205490565b3480156108f857600080fd5b50600b54610100900460ff16610531565b34801561091557600080fd5b506109296109243660046138e1565b611547565b60405161037e9a99989796959493929190613f3e565b34801561094b57600080fd5b50600854610408565b34801561096057600080fd5b5061040861096f3660046138e1565b6000908152600e602052604090206002015490565b34801561099057600080fd5b5060005460ff166103a7565b3480156109a857600080fd5b506104086109b7366004613fa3565b611649565b3480156109c857600080fd5b506103466109d7366004613fc8565b611674565b3480156109e857600080fd5b506109fc6109f7366004613a65565b61168d565b60405161037e9190614073565b348015610a1557600080fd5b50610346610a2436600461408d565b611698565b610346610a37366004613ce5565b6117c6565b348015610a4857600080fd5b50610346610a573660046138e1565b6117e4565b348015610a6857600080fd5b50610346610a773660046138e1565b61180d565b600e602090815260009182526040918290208054600182015460028301546003840154600485015460058601546006870154600788015460088901548b51808d01909c52600a8a0180548d52600b8b0180549a9d999c989b979a6001600160a01b039788169a968816999790951697939660ff9093169593949192840191610b03906140d4565b80601f0160208091040260200160405190810160405280929190818152602001828054610b2f906140d4565b8015610b7c5780601f10610b5157610100808354040283529160200191610b7c565b820191906000526020600020905b815481529060010190602001808311610b5f57829003601f168201915b50505050508152505090508a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167ff1801e61000000000000000000000000000000000000000000000000000000001480610c1d57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b33610c2d8161184c565b600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fd6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd906020015b60405180910390a15050565b610c98611917565b610ca0611960565b610cab83838361199c565b505050565b33610cba8161184c565b60048290556040518281527f08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab90602001610c84565b6000818152600e6020526040812080548314610d265760405163c1d17bef60e01b8152600481018490526024015b60405180910390fd5b6001600882015460ff166004811115610d4157610d416138fa565b14610d62576040516344980d8f60e01b815260048101849052602401610d1d565b610d70818260020154611cd3565b6003015492915050565b610d8333611d0e565b565b6000610d8f611917565b610d97611960565b610da18383611e5f565b9392505050565b33610db28161184c565b60095460408051918252602082018490527f056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b910160405180910390a150600955565b6000610dfe612197565b60006002600b54610100900460ff166003811115610e1e57610e1e6138fa565b1480610e4557506001600b54610100900460ff166003811115610e4357610e436138fa565b145b15610e51575081610e5e565b610e5b84846121db565b90505b8060086000828254610e70919061411e565b9091555050604080516001600160a01b0386168152602081018590529081018290527f70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc19060600160405180910390a19392505050565b6000808490506000610eec629896806080600354901b610ee69190614147565b8361249f565b905060806f8000000000000000000000000000000060035462989680610f12919061411e565b610f2084600160801b61411e565b610f2d6298968089614169565b610f379190614169565b610f419190614147565b610f4b8885614169565b610f559190614180565b610f5f9190614180565b901c9695505050505050565b6000610c1d82612548565b60008060025411610fb3576040517fed4421ad00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610fbc82612568565b15610fda57604051630efd728560e21b815260040160405180910390fd5b600254600090610ff38468010000000000000000614169565b610ffd9190614147565b62989680600454680100000000000000006110189190614169565b6110229190614147565b61102c919061411e565b9050604061103960085490565b600354611049906298968061411e565b6298968060406110598680614169565b901c629896806080600554901b6110709190614147565b61107a9190614147565b6110849190614169565b61108e9190614147565b6110989190614169565b901c915060095482116110ad57600954610da1565b50919050565b6110bb612197565b6110c481611d0e565b50565b336110d18161184c565b60038290556040518281527f592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f290602001610c84565b6000611110612197565b60006002600b54610100900460ff166003811115611130576111306138fa565b0361113e57825b905061119b565b6001600b54610100900460ff16600381111561115c5761115c6138fa565b0361116b57611137848461258f565b6003600b54610100900460ff166003811115611189576111896138fa565b0361119b5761119884846126f5565b90505b600d5460405163011de97360e61b81526001600160a01b038681166004830152306024830152600092169063477a5cc090604401602060405180830381865afa1580156111ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112109190614193565b9050801561123057816008600082825461122a9190614180565b90915550505b604080516001600160a01b0387168152602081018690529081018390527f0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a9060600160405180910390a1509392505050565b600d546040517f0d4a8b490000000000000000000000000000000000000000000000000000000081523360048201819052306024830152916001600160a01b031690630d4a8b4990604401600060405180830381600087803b1580156112e757600080fd5b505af11580156112fb573d6000803e3d6000fd5b5050600d54604051637817ee4f60e01b81526001600160a01b0385811660048301523060248301529091169250637817ee4f9150604401602060405180830381865afa15801561134f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061137391906141b0565b600860008282546113849190614180565b909155505050565b6000818152600e602052604081206002810154829081906113ae90849061293c565b915091508160001480156113c0575080155b156113cd57826003015491505b60006113dc8460010154610f76565b9092101595945050505050565b6010602052816000526040600020818154811061140557600080fd5b90600052602060002001600091509150505481565b60006003546298968061142d919061411e565b61143a6298968084614169565b610c1d9190614147565b6040805180820190915260008152606060208201526000600e6000848152602001908152602001600020905080600a0160405180604001604052908160008201548152602001600182018054611499906140d4565b80601f01602080910402602001604051908101604052809291908181526020018280546114c5906140d4565b80156115125780601f106114e757610100808354040283529160200191611512565b820191906000526020600020905b8154815290600101906020018083116114f557829003601f168201915b505050505081525050915050919050565b606060405163d623472560e01b815260040160405180910390fd5b6110c481612994565b6000806000806000806000806000806000600e60008d81526020019081526020016000209050806001015460001461158b576115868160010154610f76565b61158e565b60005b92508060050160009054906101000a90046001600160a01b03168160040160009054906101000a90046001600160a01b03168260060160009054906101000a90046001600160a01b0316836001015484600201548560080160009054906101000a900460ff16866007015487600301548a896009016000336001600160a01b03166001600160a01b03168152602001908152602001600020549a509a509a509a509a509a509a509a509a509a50509193959799509193959799565b6000828152600e602090815260408083206001600160a01b0385168452600901909152812054610da1565b60405163d623472560e01b815260040160405180910390fd5b6000610c1d826129d5565b6116a1826129f5565b6000818060200190518101906116b79190614274565b80519091506001600160a01b03166116e257604051635df4b1ef60e01b815260040160405180910390fd5b8051600d805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0390921691909117905560208101516003556040810151600455606081015160055560a0810151600b805460ff19166001836002811115611749576117496138fa565b021790555060c0810151600b805461ff001916610100836003811115611771576117716138fa565b021790555060e081015151600c5560808101516009556040517f8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42906117b99085908490614310565b60405180910390a1505050565b6117ce611917565b6117d6611960565b6117e08282612a76565b5050565b6117ec611917565b80600260008282546117fe9190614180565b909155506110c4905081612b5f565b336118178161184c565b60058290556040518281527f30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb4990602001610c84565b6001546040517f29e40d4b00000000000000000000000000000000000000000000000000000000815260048101919091526001600160a01b0382811660248301527f000000000000000000000000000000000000000000000000000000000000000016906329e40d4b90604401602060405180830381865afa1580156118d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fa9190614193565b6110c45760405163075fd2b160e01b815260040160405180910390fd5b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d835760405163075fd2b160e01b815260040160405180910390fd5b600154600003610d83576040517f3da3f98c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008251116119d7576040517fc5f7c4c000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000828060200190518101906119ed91906141b0565b905080600003611a29576040517ff881a10d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000818152600e602052604090206001600b5460ff166002811115611a5057611a506138fa565b03611ccc5780548214611a795760405163c1d17bef60e01b815260048101839052602401610d1d565b60025481600101541115611ad15760018101546002546040517f5863b0b60000000000000000000000000000000000000000000000000000000081526004810185905260248101929092526044820152606401610d1d565b6001600882015460ff166004811115611aec57611aec6138fa565b14611b0d576040516344980d8f60e01b815260048101839052602401610d1d565b6000611b1883610cef565b90506000611b298360010154610f76565b90508082108015611b3e575060008360010154115b15611b75576040517fcce7930800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001546040517f068bcd8d0000000000000000000000000000000000000000000000000000000081526000916001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163068bcd8d91611be29160040190815260200190565b600060405180830381865afa158015611bff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611c27919081019061443c565b9050836001015460026000828254611c3f919061411e565b9091555050604081015160048501546001860154611c6792916001600160a01b031690612b8f565b60088401805460ff191660049081179091558401546001850154604080518881526001600160a01b0390931660208401528201527fa7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f358479060600160405180910390a15050505b5050505050565b600080611ce0848461293c565b91509150816000148015611cf2575080155b15611cfd5750505050565b600784015560039092019190915550565b600d54604051637817ee4f60e01b81526001600160a01b03838116600483015230602483015290911690637817ee4f90604401602060405180830381865afa158015611d5e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d8291906141b0565b60086000828254611d93919061411e565b9091555050600d546040517f22bcf9990000000000000000000000000000000000000000000000000000000081526001600160a01b038381166004830152306024830152909116906322bcf99990604401600060405180830381600087803b158015611dfe57600080fd5b505af1158015611e12573d6000803e3d6000fd5b50505050611e1f81612bd4565b6040516001600160a01b03821681527f1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b906020015b60405180910390a150565b60008083806020019051810190611e7691906144f0565b8051909150600003611eb4576040517f4e79178600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600b5460ff166002811115611ecd57611ecd6138fa565b0361207d57611edf8160200151612cff565b60608101516001600160a01b0316611f23576040517f596a094c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000306001600160a01b03166315cc481e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f879190614597565b6001600160a01b031663068bcd8d6001546040518263ffffffff1660e01b8152600401611fb691815260200190565b600060405180830381865afa158015611fd3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611ffb919081019061443c565b604001519050806001600160a01b031682606001516001600160a01b031614612050576040517fa29c498600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61205d8260400151612568565b1561207b57604051630efd728560e21b815260040160405180910390fd5b505b600060066000815461208e906145b4565b91829055506000818152600e602090815260408083208481556005810180546001600160a01b038b811673ffffffffffffffffffffffffffffffffffffffff19928316179092558885015160048401805491841691831691909117905560608901516006840180549190931691161790559086015160018083019190915560088201805460ff19169091179055436007820155600381019290925560808501518051600a8401908155918101519394509192600b84019061214f908261461b565b505060015460408051918252602082018590527ffcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b92500160405180910390a150949350505050565b600d546001600160a01b03163314610d83576040517faf0916a200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d54604080516336d8759760e21b815290516000926012926001600160a01b039091169163db61d65c916004808201926020929091908290030181865afa15801561222b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061224f9190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156122a8575060408051601f3d908101601f191682019092526122a5918101906146db565b60015b6122ef576122ea6040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b6122f5565b60ff1690505b6123346040518060400160405280601081526020017f5f616d6f756e74546f556e7374616b650000000000000000000000000000000081525084612db0565b600d546040516316308e2560e11b81526001600160a01b0386811660048301526000928692911690632c611c4a90602401602060405180830381865afa158015612382573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a691906141b0565b6123b0919061411e565b90506123f16040518060400160405280600d81526020017f6e6577546f74616c5374616b650000000000000000000000000000000000000081525082612db0565b600061241061240184600a6147e2565b61240b9084614169565b612e23565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009284921690637817ee4f90604401602060405180830381865afa158015612466573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248a91906141b0565b612494919061411e565b979650505050505050565b6000600160801b83106124f45760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b50600160801b82825b80156125405780600116600003612522576125188283612f0b565b915060011c6124fd565b61252c8383612f0b565b925061253960018261411e565b90506124fd565b505092915050565b60006001600160a01b03821615612560576001610c1d565b600092915050565b60006125776298968083614169565b6002546004546125879190614169565b111592915050565b6000808290506125d46040518060400160405280601281526020017f504f494e545320544f20494e435245415345000000000000000000000000000081525082612db0565b600d54604051637817ee4f60e01b81526001600160a01b0386811660048301523060248301526000921690637817ee4f90604401602060405180830381865afa158015612625573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061264991906141b0565b905061268a6040518060400160405280600b81526020017f4d454d424552504f57455200000000000000000000000000000000000000000081525082612db0565b600c546126978383614180565b11156126ae57600c546126ab90829061411e565b91505b6126ed6040518060400160405280601681526020017f504f494e545320544f20494e43524541534520454e440000000000000000000081525083612db0565b509392505050565b600d546040516316308e2560e11b81526001600160a01b0384811660048301526000928392859290911690632c611c4a90602401602060405180830381865afa158015612746573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061276a91906141b0565b6127749190614180565b600d54604080516336d8759760e21b815290519293506012926001600160a01b039092169163db61d65c916004808201926020929091908290030181865afa1580156127c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127e89190614597565b6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015612841575060408051601f3d908101601f1916820190925261283e918101906146db565b60015b612888576128836040518060400160405280601581526020017f4572726f722067657474696e6720646563696d616c0000000000000000000000815250612d3f565b61288e565b60ff1690505b60006128a861289e83600a6147e2565b61240b9085614169565b600d54604051637817ee4f60e01b81526001600160a01b03898116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa1580156128fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061292291906141b0565b90506000612930828461411e565b98975050505050505050565b6000804390508084600701541115612956576129566147ee565b8084600701540361296c5750600090508061298d565b61298a84600701548261297f919061411e565b856003015485610ec6565b91505b9250929050565b6000805460ff19168215159081179091556040519081527fd94c9bc4d43c51d8dc345a016d8e3d994432fac68e72832e4cf3a616bd8efae090602001611e54565b60006001600160a01b038216156129ed576002610c1d565b600392915050565b6129fd611917565b60015415612a37576040517f439a74c900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600003612a71576040517f7fcce2a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600155565b612a7f8161300a565b600d5460405163011de97360e61b81526001600160a01b038381166004830152306024830152600092169063477a5cc090604401602060405180830381865afa158015612ad0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612af49190614193565b905080612b2d576040517f5fccb67f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600083806020019051810190612b439190614804565b9050612b4f8382613130565b612b5983826132f3565b50505050565b6040518181527f46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f7633990602001611e54565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601612bc957610cab8282613717565b610cab838383613733565b6001600160a01b038116600090815260106020908152604080832080548251818502810185019093528083529192909190830182828015612c3457602002820191906000526020600020905b815481526020019060010190808311612c20575b5050505050905060005b8151811015610cab576000828281518110612c5b57612c5b6148af565b602002602001015190506000600e60008381526020019081526020016000209050612c8582613782565b15612cea576001600160a01b0385166000908152600982016020526040812080549082905560028301805491928392612cbf90849061411e565b925050819055508060076000828254612cd8919061411e565b90915550612ce890508282611cd3565b505b50508080612cf7906145b4565b915050612c3e565b6001600160a01b0381166110c4576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6110c481604051602401612d5391906148c5565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f41304fac000000000000000000000000000000000000000000000000000000001790526137bb565b6117e08282604051602401612dc69291906148d8565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f9710a9d0000000000000000000000000000000000000000000000000000000001790526137bb565b600081600003612e3557506000919050565b60006001612e42846137dc565b901c6001901b90506001818481612e5b57612e5b614131565b048201901c90506001818481612e7357612e73614131565b048201901c90506001818481612e8b57612e8b614131565b048201901c90506001818481612ea357612ea3614131565b048201901c90506001818481612ebb57612ebb614131565b048201901c90506001818481612ed357612ed3614131565b048201901c90506001818481612eeb57612eeb614131565b048201901c9050610da181828581612f0557612f05614131565b04613870565b6000600160801b831115612f875760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e3132380000000000000000000000000000000000000000000000006064820152608401610d1d565b600160801b8210612fda5760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e313238000000006044820152606401610d1d565b60806f80000000000000000000000000000000612ff78486614169565b6130019190614180565b901c9392505050565b6001600160a01b03811661304a576040517fd1f2828800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600d546001600160a01b031661307357604051635df4b1ef60e01b815260040160405180910390fd5b600d546040517fa230c5240000000000000000000000000000000000000000000000000000000081526001600160a01b0383811660048301529091169063a230c52490602401602060405180830381865afa1580156130d6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130fa9190614193565b6110c4576040517f6a5cfb6d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805b82518110156131ed5782818151811061314f5761314f6148af565b602002602001015160000151600003156131db576000838281518110613177576131776148af565b602002602001015160000151905061318e81613782565b6131ae5760405163c1d17bef60e01b815260048101829052602401610d1d565b8382815181106131c0576131c06148af565b602002602001015160200151836131d791906148fa565b9250505b806131e5816145b4565b915050613134565b506001600160a01b0383166000908152600f60205260408120546132119083613886565b600d54604051637817ee4f60e01b81526001600160a01b03878116600483015230602483015292935060009290911690637817ee4f90604401602060405180830381865afa158015613267573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061328b91906141b0565b9050808211156132d1576040517fd64182fe0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401610d1d565b506001600160a01b039093166000908152600f60205260409020929092555050565b606060005b8251811015612b59576000838281518110613315576133156148af565b602002602001015160000151905082516000036133715760408051600180825281830190925290602080830190803683370190505092508083600081518110613360576133606148af565b6020026020010181815250506134c4565b6000805b84518110156133f05782858281518110613391576133916148af565b6020026020010151036133de576040517fadebb154000000000000000000000000000000000000000000000000000000008152600481018490526024810182905260019250604401610d1d565b806133e8816145b4565b915050613375565b50806134c2576000845160016134069190614180565b67ffffffffffffffff81111561341e5761341e613a82565b604051908082528060200260200182016040528015613447578160200160208202803683370190505b50905060005b855181101561349f57858181518110613468576134686148af565b6020026020010151828281518110613482576134826148af565b602090810291909101015280613497816145b4565b91505061344d565b5082818651815181106134b4576134b46148af565b602090810291909101015293505b505b60008483815181106134d8576134d86148af565b6020908102919091018101518101516000848152600e835260408082206001600160a01b038b168352600981019094528120549193506135188285613886565b6001600160a01b038a1660009081526009850160205260408120829055909150805b6001600160a01b038b166000908152601060205260409020548110156135b15784546001600160a01b038c166000908152601060205260409020805483908110613586576135866148af565b90600052602060002001540361359f57600191506135b1565b806135a9816145b4565b91505061353a565b50806135e7576001600160a01b038a16600090815260106020908152604082208654815460018101835591845291909220909101555b818311613637576135f8838361411e565b600760008282546136099190614180565b909155506136199050838361411e565b84600201600082825461362c9190614180565b9091555061367b9050565b613641828461411e565b60076000828254613652919061411e565b909155506136629050828461411e565b846002016000828254613675919061411e565b90915550505b8360070154600003613692574360078501556136fe565b61369c8484611cd3565b60028401546003850154604080516001600160a01b038e168152602081018a9052908101859052606081019290925260808201527f0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f9060a00160405180910390a15b505050505050808061370f906145b4565b9150506132f8565b60008060008084865af16117e05763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d156001600051141716613778576390b8ec186000526004601cfd5b6000603452505050565b6000818152600e602052604081205415801590610c1d5750506000908152600e60205260409020600501546001600160a01b0316151590565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b600080608083901c156137f157608092831c92015b604083901c1561380357604092831c92015b602083901c1561381557602092831c92015b601083901c1561382757601092831c92015b600883901c1561383957600892831c92015b600483901c1561384b57600492831c92015b600283901c1561385d57600292831c92015b600183901c15610c1d5760010192915050565b600081831061387f5781610da1565b5090919050565b60008061389383856148fa565b90506000811215610da1576040517f3bbc7142000000000000000000000000000000000000000000000000000000008152600481018590526024810184905260448101829052606401610d1d565b6000602082840312156138f357600080fd5b5035919050565b634e487b7160e01b600052602160045260246000fd5b60058110613920576139206138fa565b9052565b60005b8381101561393f578181015183820152602001613927565b50506000910152565b60008151808452613960816020860160208601613924565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526139936040850182613948565b949350505050565b60006101408c83528b60208401528a60408401528960608401526001600160a01b03808a16608085015280891660a085015280881660c0850152508560e08401526139ea610100840186613910565b806101208401526139fd81840185613974565b9d9c50505050505050505050505050565b600060208284031215613a2057600080fd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114610da157600080fd5b6001600160a01b03811681146110c457600080fd5b600060208284031215613a7757600080fd5b8135610da181613a50565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405290565b604051610120810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160c0810167ffffffffffffffff81118282101715613abb57613abb613a82565b60405160a0810167ffffffffffffffff81118282101715613abb57613abb613a82565b604051601f8201601f1916810167ffffffffffffffff81118282101715613b5457613b54613a82565b604052919050565b600067ffffffffffffffff821115613b7657613b76613a82565b5060051b60200190565b600082601f830112613b9157600080fd5b81356020613ba6613ba183613b5c565b613b2b565b82815260059290921b84018101918181019086841115613bc557600080fd5b8286015b84811015613be9578035613bdc81613a50565b8352918301918301613bc9565b509695505050505050565b600067ffffffffffffffff821115613c0e57613c0e613a82565b50601f01601f191660200190565b600082601f830112613c2d57600080fd5b8135613c3b613ba182613bf4565b818152846020838601011115613c5057600080fd5b816020850160208301376000918101602001919091529392505050565b600080600060608486031215613c8257600080fd5b833567ffffffffffffffff80821115613c9a57600080fd5b613ca687838801613b80565b94506020860135915080821115613cbc57600080fd5b50613cc986828701613c1c565b9250506040840135613cda81613a50565b809150509250925092565b60008060408385031215613cf857600080fd5b823567ffffffffffffffff811115613d0f57600080fd5b613d1b85828601613c1c565b9250506020830135613d2c81613a50565b809150509250929050565b60048110613920576139206138fa565b60208101610c1d8284613d37565b60008060408385031215613d6857600080fd5b8235613d7381613a50565b946020939093013593505050565b600080600060608486031215613d9657600080fd5b505081359360208301359350604090920135919050565b60038110613920576139206138fa565b60208101610c1d8284613dad565b602081526000610da16020830184613974565b60008060408385031215613df157600080fd5b823567ffffffffffffffff80821115613e0957600080fd5b613e1586838701613b80565b9350602091508185013581811115613e2c57600080fd5b8501601f81018713613e3d57600080fd5b8035613e4b613ba182613b5c565b81815260059190911b82018401908481019089831115613e6a57600080fd5b8584015b83811015613ea257803586811115613e865760008081fd5b613e948c8983890101613c1c565b845250918601918601613e6e565b508096505050505050509250929050565b602080825282518282018190526000919060409081850190868401855b82811015613f0657613ef684835180516001600160a01b03168252602090810151910152565b9284019290850190600101613ed0565b5091979650505050505050565b80151581146110c457600080fd5b600060208284031215613f3357600080fd5b8135610da181613f13565b6001600160a01b038b811682528a811660208301528916604082015260608101889052608081018790526101408101613f7a60a0830188613910565b8560c08301528460e083015283610100830152826101208301529b9a5050505050505050505050565b60008060408385031215613fb657600080fd5b823591506020830135613d2c81613a50565b60006020808385031215613fdb57600080fd5b823567ffffffffffffffff811115613ff257600080fd5b8301601f8101851361400357600080fd5b8035614011613ba182613b5c565b81815260069190911b8201830190838101908783111561403057600080fd5b928401925b82841015612494576040848903121561404e5760008081fd5b614056613a98565b843581528585013586820152825260409093019290840190614035565b6020810160078310614087576140876138fa565b91905290565b600080604083850312156140a057600080fd5b82359150602083013567ffffffffffffffff8111156140be57600080fd5b6140ca85828601613c1c565b9150509250929050565b600181811c908216806140e857607f821691505b6020821081036110ad57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115610c1d57610c1d614108565b634e487b7160e01b600052601260045260246000fd5b60008261416457634e487b7160e01b600052601260045260246000fd5b500490565b8082028115828204841417610c1d57610c1d614108565b80820180821115610c1d57610c1d614108565b6000602082840312156141a557600080fd5b8151610da181613f13565b6000602082840312156141c257600080fd5b5051919050565b80516141d481613a50565b919050565b8051600381106141d457600080fd5b8051600481106141d457600080fd5b60006020828403121561420957600080fd5b6040516020810181811067ffffffffffffffff8211171561422c5761422c613a82565b6040529151825250919050565b60006040828403121561424b57600080fd5b614253613a98565b9050815161426081613a50565b808252506020820151602082015292915050565b6000610140828403121561428757600080fd5b61428f613ac1565b614298836141c9565b8152602083015160208201526040830151604082015260608301516060820152608083015160808201526142ce60a084016141d9565b60a08201526142df60c084016141e8565b60c08201526142f18460e085016141f7565b60e082015261010061430585828601614239565b908201529392505050565b6000610160820190508382526001600160a01b038351166020830152602083015160408301526040830151606083015260608301516080830152608083015160a083015260a083015161436660c0840182613dad565b5060c083015161437960e0840182613d37565b5060e083015151610100838101919091529092015180516001600160a01b03166101208301526020015161014090910152919050565b6000604082840312156143c157600080fd5b6143c9613a98565b905081518152602082015167ffffffffffffffff8111156143e957600080fd5b8201601f810184136143fa57600080fd5b8051614408613ba182613bf4565b81815285602083850101111561441d57600080fd5b61442e826020830160208601613924565b602084015250909392505050565b60006020828403121561444e57600080fd5b815167ffffffffffffffff8082111561446657600080fd5b9083019060c0828603121561447a57600080fd5b614482613ae5565b82518152602083015161449481613a50565b602082015260408301516144a781613a50565b60408201526060830151828111156144be57600080fd5b6144ca878286016143af565b6060830152506080830151608082015260a083015160a082015280935050505092915050565b60006020828403121561450257600080fd5b815167ffffffffffffffff8082111561451a57600080fd5b9083019060a0828603121561452e57600080fd5b614536613b08565b82518152602083015161454881613a50565b602082015260408381015190820152606083015161456581613a50565b606082015260808301518281111561457c57600080fd5b614588878286016143af565b60808301525095945050505050565b6000602082840312156145a957600080fd5b8151610da181613a50565b6000600182016145c6576145c6614108565b5060010190565b601f821115610cab57600081815260208120601f850160051c810160208610156145f45750805b601f850160051c820191505b8181101561461357828155600101614600565b505050505050565b815167ffffffffffffffff81111561463557614635613a82565b6146498161464384546140d4565b846145cd565b602080601f83116001811461467e57600084156146665750858301515b600019600386901b1c1916600185901b178555614613565b600085815260208120601f198616915b828110156146ad5788860151825594840194600190910190840161468e565b50858210156146cb5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000602082840312156146ed57600080fd5b815160ff81168114610da157600080fd5b600181815b8085111561473957816000190482111561471f5761471f614108565b8085161561472c57918102915b93841c9390800290614703565b509250929050565b60008261475057506001610c1d565b8161475d57506000610c1d565b8160018114614773576002811461477d57614799565b6001915050610c1d565b60ff84111561478e5761478e614108565b50506001821b610c1d565b5060208310610133831016604e8410600b84101617156147bc575081810a610c1d565b6147c683836146fe565b80600019048211156147da576147da614108565b029392505050565b6000610da18383614741565b634e487b7160e01b600052600160045260246000fd5b6000602080838503121561481757600080fd5b825167ffffffffffffffff81111561482e57600080fd5b8301601f8101851361483f57600080fd5b805161484d613ba182613b5c565b81815260069190911b8201830190838101908783111561486c57600080fd5b928401925b82841015612494576040848903121561488a5760008081fd5b614892613a98565b845181528585015186820152825260409093019290840190614871565b634e487b7160e01b600052603260045260246000fd5b602081526000610da16020830184613948565b6040815260006148eb6040830185613948565b90508260208301529392505050565b80820182811260008312801582168215821617156125405761254061410856fea26469706673582212208598030103e0610af42491e498e133f0105c5816b19cb34235fa93ed5772fe1864736f6c63430008130033","sourceMap":"2822:37282:126:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7028:60;;;;;;;;;;-1:-1:-1;7028:60:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;9003:202;;;;;;;;;;-1:-1:-1;9003:202:126;;;;;:::i;:::-;;:::i;:::-;;;2891:14:145;;2884:22;2866:41;;2854:2;2839:18;9003:202:126;2726:187:145;39640:219:126;;;;;;;;;;-1:-1:-1;39640:219:126;;;;;:::i;:::-;;:::i;10705:325:11:-;;;;;;;;;;-1:-1:-1;10705:325:11;;;;;:::i;:::-;;:::i;17263:99:126:-;;;;;;;;;;-1:-1:-1;17334:11:126;:21;17263:99;;;7277:25:145;;;7265:2;7250:18;17263:99:126;7131:177:145;6354:34:126;;;;;;;;;;;;;;;;5806:36;;;;;;;;;;;;5834:8;5806:36;;39330:155;;;;;;;;;;-1:-1:-1;39330:155:126;;;;;:::i;:::-;;:::i;6785:86:11:-;;;;;;;;;;-1:-1:-1;6860:4:11;6785:86;;;-1:-1:-1;;;;;7491:55:145;;;7473:74;;7461:2;7446:18;6785:86:11;7313:240:145;38531:520:126;;;;;;;;;;-1:-1:-1;38531:520:126;;;;;:::i;:::-;;:::i;12595:81::-;;;;;;;;;;;;;:::i;9429:344:11:-;;;;;;:::i;:::-;;:::i;39865:237:126:-;;;;;;;;;;-1:-1:-1;39865:237:126;;;;;:::i;:::-;;:::i;6784:45::-;;;;;;;;;;-1:-1:-1;6784:45:126;;;;;;;;;;;;;;;;;;:::i;14137:681::-;;;;;;;;;;-1:-1:-1;14137:681:126;;;;;:::i;:::-;;:::i;32689:1145::-;;;;;;;;;;-1:-1:-1;32689:1145:126;;;;;:::i;:::-;;:::i;6678:47::-;;;;;;;;;;-1:-1:-1;6678:47:126;;;;;;;;;;;;;;;:::i;6953:92:11:-;;;;;;;;;;-1:-1:-1;7032:6:11;;6953:92;;6095:49:126;;;;;;;;;;;;6142:2;6095:49;;7135:100:11;;;;;;;;;;-1:-1:-1;7218:10:11;7135:100;;7326:108;;;;;;;;;;-1:-1:-1;7417:10:11;;7326:108;;12395:145;;;;;;;;;;-1:-1:-1;12395:145:11;;;;;:::i;:::-;;:::i;6272:20:126:-;;;;;;;;;;;;;;;;34415:1482;;;;;;;;;;-1:-1:-1;34415:1482:126;;;;;:::i;:::-;;:::i;7144:53::-;;;;;;;;;;-1:-1:-1;7144:53:126;;;;;:::i;:::-;;;;;;;;;;;;;;6919:42;;;;;;;;;;-1:-1:-1;6919:42:126;;;;-1:-1:-1;;;;;6919:42:126;;;12682:128;;;;;;;;;;-1:-1:-1;12682:128:126;;;;;:::i;:::-;;:::i;39187:137::-;;;;;;;;;;-1:-1:-1;39187:137:126;;;;;:::i;:::-;;:::i;6298:23::-;;;;;;;;;;;;;;;;13173:958;;;;;;;;;;-1:-1:-1;13173:958:126;;;;;:::i;:::-;;:::i;6467:38::-;;;;;;;;;;;;;;;;12336:253;;;;;;;;;;;;;:::i;6394:26::-;;;;;;;;;;;;;;;;20535:735;;;;;;;;;;-1:-1:-1;20535:735:126;;;;;:::i;:::-;;:::i;7235:57::-;;;;;;;;;;-1:-1:-1;7235:57:126;;;;;:::i;:::-;;:::i;39057:124::-;;;;;;;;;;-1:-1:-1;39057:124:126;;;;;:::i;:::-;;:::i;4412:75:9:-;;;;;;;;;;;;4445:42;4412:75;;6327:21:126;;;;;;;;;;;;;;;;6835:51;;;;;;;;;;-1:-1:-1;6835:51:126;;;;;;25319:198;;;;;;;;;;-1:-1:-1;25319:198:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;6426:35::-;;;;;;;;;;;;;;;;21909:288;;;;;;;;;;-1:-1:-1;21909:288:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;22892:86::-;;;;;;;;;;-1:-1:-1;22892:86:126;;;;;:::i;:::-;;:::i;26114:127::-;;;;;;;;;;-1:-1:-1;26114:127:126;;;;;:::i;:::-;-1:-1:-1;;;;;26208:26:126;26182:7;26208:26;;;:18;:26;;;;;;;26114:127;17368:110;;;;;;;;;;-1:-1:-1;17460:11:126;;;;;;;17368:110;;24275:1038;;;;;;;;;;-1:-1:-1;24275:1038:126;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;;;;;:::i;37102:112::-;;;;;;;;;;-1:-1:-1;37187:20:126;;37102:112;;25900:145;;;;;;;;;;-1:-1:-1;25900:145:126;;;;;:::i;:::-;25977:7;26003:22;;;:9;:22;;;;;:35;;;;25900:145;7566:101:11;;;;;;;;;;-1:-1:-1;7622:4:11;14479:10;;;7566:101;;25718:176:126;;;;;;;;;;-1:-1:-1;25718:176:126;;;;;:::i;:::-;;:::i;17594:226::-;;;;;;;;;;-1:-1:-1;17594:226:126;;;;;:::i;:::-;;:::i;7823:146:11:-;;;;;;;;;;-1:-1:-1;7823:146:11;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;7574:1028:126:-;;;;;;;;;;-1:-1:-1;7574:1028:126;;;;;:::i;:::-;;:::i;10092:220:11:-;;;;;;:::i;:::-;;:::i;8816:197::-;;;;;;;;;;-1:-1:-1;8816:197:11;;;;;:::i;:::-;;:::i;39491:143:126:-;;;;;;;;;;-1:-1:-1;39491:143:126;;;;;:::i;:::-;;:::i;7028:60::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7028:60:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;9003:202::-;9088:4;9111:47;;;9126:32;9111:47;;:87;;-1:-1:-1;952:25:83;937:40;;;;9162:36:126;9104:94;9003:202;-1:-1:-1;;9003:202:126:o;39640:219::-;39723:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39745:17:126::1;:57:::0;;-1:-1:-1;;39745:57:126::1;-1:-1:-1::0;;;;;39745:57:126;::::1;::::0;;::::1;::::0;;;39817:35:::1;::::0;7473:74:145;;;39817:35:126::1;::::0;7461:2:145;7446:18;39817:35:126::1;;;;;;;;39640:219:::0;;:::o;10705:325:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10924:42:::2;10936:13;10951:5;10958:7;10924:11;:42::i;:::-;10705:325:::0;;;:::o;39330:155:126:-;39395:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39417:8:126::1;:20:::0;;;39452:26:::1;::::0;7277:25:145;;;39452:26:126::1;::::0;7265:2:145;7250:18;39452:26:126::1;7131:177:145::0;38531:520:126;38601:7;38663:21;;;:9;:21;;;;;38699:19;;:33;;38695:100;;38755:29;;-1:-1:-1;;;38755:29:126;;;;;7277:25:145;;;7250:18;;38755:29:126;;;;;;;;38695:100;38836:36;38809:23;;;;;;:63;;;;;;;;:::i;:::-;;38805:130;;38895:29;;-1:-1:-1;;;38895:29:126;;;;;7277:25:145;;;7250:18;;38895:29:126;7131:177:145;38805:130:126;38945:59;38972:8;38982;:21;;;38945:26;:59::i;:::-;39021:23;;;;38531:520;-1:-1:-1;;38531:520:126:o;12595:81::-;12640:29;12658:10;12640:17;:29::i;:::-;12595:81::o;9429:344:11:-;9584:19;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;9683:34:::2;9702:5;9709:7;9683:18;:34::i;:::-;9669:48:::0;9429:344;-1:-1:-1;;;9429:344:11:o;39865:237:126:-;39950:10;5954:30:11;5976:7;5954:21;:30::i;:::-;40003:19:126::1;::::0;39977:67:::1;::::0;;16754:25:145;;;16810:2;16795:18;;16788:34;;;39977:67:126::1;::::0;16727:18:145;39977:67:126::1;;;;;;;-1:-1:-1::0;40054:19:126::1;:41:::0;39865:237::o;14137:681::-;14221:7;14240:23;:21;:23::i;:::-;14319:24;14376:36;14361:11;;;;;;;:51;;;;;;;;:::i;:::-;;:103;;;-1:-1:-1;14431:33:126;14416:11;;;;;;;:48;;;;;;;;:::i;:::-;;14361:103;14357:298;;;-1:-1:-1;14528:16:126;14357:298;;;14595:49;14618:7;14627:16;14595:22;:49::i;:::-;14576:68;;14357:298;14688:16;14664:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;14719:59:126;;;-1:-1:-1;;;;;17375:55:145;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14719:59:126;;17345:2:145;17330:18;14719:59:126;;;;;;;14795:16;14137:681;-1:-1:-1;;;14137:681:126:o;32689:1145::-;32823:7;32846:9;32858:11;32846:23;;33184:17;33204:27;5834:8;33219:3;33210:5;;:12;;33209:18;;;;:::i;:::-;33229:1;33204:4;:27::i;:::-;33184:47;;33824:3;5977:34;33801:5;;5834:8;33797:9;;;;:::i;:::-;33772:19;33782:9;-1:-1:-1;;;33772:19:126;:::i;:::-;33754:14;5834:8;33754:10;:14;:::i;:::-;:38;;;;:::i;:::-;33753:54;;;;:::i;:::-;33727:21;33739:9;33727;:21;:::i;:::-;33726:82;;;;:::i;:::-;33725:94;;;;:::i;:::-;33724:103;;;32689:1145;-1:-1:-1;;;;;;32689:1145:126:o;12395:145:11:-;12481:4;12504:29;12522:10;12504:17;:29::i;34415:1482:126:-;34490:18;34658:1;34644:10;;:15;34640:66;;34682:13;;;;;;;;;;;;;;34640:66;35146:33;35162:16;35146:15;:33::i;:::-;35142:91;;;35202:20;;-1:-1:-1;;;35202:20:126;;;;;;;;;;;35142:91;35455:10;;35381:13;;35425:26;:16;35444:7;35425:26;:::i;:::-;35424:41;;;;:::i;:::-;5834:8;35398;;35409:7;35398:18;;;;:::i;:::-;35397:24;;;;:::i;:::-;:68;;;;:::i;:::-;35381:84;;35618:2;35576:28;37187:20;;;37102:112;35576:28;35566:5;;35562:9;;5834:8;35562:9;:::i;:::-;5834:8;35549:2;35531:13;35539:5;;35531:13;:::i;:::-;35530:21;;5834:8;35517:3;35507:6;;:13;;35506:19;;;;:::i;:::-;35505:47;;;;:::i;:::-;35504:53;;;;:::i;:::-;35503:69;;;;:::i;:::-;35502:102;;;;:::i;:::-;35488:132;;35475:145;;35836:19;;35823:10;:32;:67;;35871:19;;35823:67;;;-1:-1:-1;35858:10:126;35810:80;-1:-1:-1;34415:1482:126:o;12682:128::-;12744:23;:21;:23::i;:::-;12777:26;12795:7;12777:17;:26::i;:::-;12682:128;:::o;39187:137::-;39246:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39268:5:126::1;:14:::0;;;39297:20:::1;::::0;7277:25:145;;;39297:20:126::1;::::0;7265:2:145;7250:18;39297:20:126::1;7131:177:145::0;13173:958:126;13255:7;13319:23;:21;:23::i;:::-;13352:24;13409:36;13394:11;;;;;;;:51;;;;;;;;:::i;:::-;;13390:441;;13503:14;13480:38;13461:57;;13390:441;;;13554:33;13539:11;;;;;;;:48;;;;;;;;:::i;:::-;;13535:296;;13622:44;13642:7;13651:14;13622:19;:44::i;13535:296::-;13702:36;13687:11;;;;;;;:51;;;;;;;;:::i;:::-;;13683:148;;13773:47;13796:7;13805:14;13773:22;:47::i;:::-;13754:66;;13683:148;13859:17;;:69;;-1:-1:-1;;;13859:69:126;;-1:-1:-1;;;;;18552:15:145;;;13859:69:126;;;18534:34:145;13922:4:126;18584:18:145;;;18577:43;13840:16:126;;13859:17;;:45;;18446:18:145;;13859:69:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13840:88;;13942:11;13938:82;;;13993:16;13969:20;;:40;;;;;;;:::i;:::-;;;;-1:-1:-1;;13938:82:126;14034:57;;;-1:-1:-1;;;;;17375:55:145;;17357:74;;17462:2;17447:18;;17440:34;;;17490:18;;;17483:34;;;14034:57:126;;17345:2:145;17330:18;14034:57:126;;;;;;;-1:-1:-1;14108:16:126;13173:958;-1:-1:-1;;;13173:958:126:o;12336:253::-;12418:17;;:65;;;;;12398:10;12418:65;;;18534:34:145;;;12477:4:126;18584:18:145;;;18577:43;12398:10:126;-1:-1:-1;;;;;12418:17:126;;:42;;18446:18:145;;12418:65:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12517:17:126;;:65;;-1:-1:-1;;;12517:65:126;;-1:-1:-1;;;;;18552:15:145;;;12517:65:126;;;18534:34:145;12576:4:126;18584:18:145;;;18577:43;12517:17:126;;;;-1:-1:-1;12517:42:126;;-1:-1:-1;18446:18:145;;12517:65:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12493:20;;:89;;;;;;;:::i;:::-;;;;-1:-1:-1;;;12336:253:126:o;20535:735::-;20604:18;20677:21;;;:9;:21;;;;;20887;;;;20604:18;;;;20843:66;;20677:21;;20843:33;:66::i;:::-;20783:126;;;;20924:14;20942:1;20924:19;:39;;;;-1:-1:-1;20947:16:126;;20924:39;20920:110;;;20996:8;:23;;;20979:40;;20920:110;21039:17;21059:44;21078:8;:24;;;21059:18;:44::i;:::-;21236:27;;;;;20535:735;-1:-1:-1;;;;;20535:735:126:o;7235:57::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;39057:124::-;39120:7;39167:5;;5834:8;39163:9;;;;:::i;:::-;39148:10;5834:8;39148:6;:10;:::i;:::-;39147:26;;;;:::i;25319:198::-;-1:-1:-1;;;;;;;;;;;;;;;;;25411:40:126;25454:9;:22;25464:11;25454:22;;;;;;;;;;;25411:65;;25493:8;:17;;25486:24;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;25319:198;;;:::o;21909:288::-;21995:22;22079:16;;-1:-1:-1;;;22079:16:126;;;;;;;;;;;22892:86;22948:23;22963:7;22948:14;:23::i;24275:1038::-;24377:17;24408:19;24441:22;24477:23;24514:20;24548:44;24606:17;24637:22;24673:17;24704:25;24754:40;24797:9;:22;24807:11;24797:22;;;;;;;;;;;24754:65;;24842:8;:24;;;24870:1;24842:29;:80;;24878:44;24897:8;:24;;;24878:18;:44::i;:::-;24842:80;;;24874:1;24842:80;24830:92;;24953:8;:18;;;;;;;;;;-1:-1:-1;;;;;24953:18:126;24985:8;:20;;;;;;;;;;-1:-1:-1;;;;;24985:20:126;25019:8;:23;;;;;;;;;;-1:-1:-1;;;;;25019:23:126;25056:8;:24;;;25094:8;:21;;;25129:8;:23;;;;;;;;;;;;25166:8;:18;;;25198:8;:23;;;25235:9;25258:8;:26;;:38;25285:10;-1:-1:-1;;;;;25258:38:126;-1:-1:-1;;;;;25258:38:126;;;;;;;;;;;;;24932:374;;;;;;;;;;;;;;;;;;;;;24275:1038;;;;;;;;;;;:::o;25718:176::-;25809:7;26374:22;;;:9;:22;;;;;;;;-1:-1:-1;;;;;26374:48:126;;;;:40;;:48;;;;;;25835:52;26247:182;17594:226;17737:16;;-1:-1:-1;;;17737:16:126;;;;;;;;;;;7823:146:11;7904:6;7929:33;7949:12;7929:19;:33::i;7574:1028:126:-;7650:28;7670:7;7650:19;:28::i;:::-;7688:41;7743:5;7732:52;;;;;;;;;;;;:::i;:::-;8139:20;;7688:96;;-1:-1:-1;;;;;;8139:34:126;8135:94;;8196:22;;-1:-1:-1;;;8196:22:126;;;;;;;;;;;8135:94;8277:20;;8239:17;:59;;-1:-1:-1;;8239:59:126;-1:-1:-1;;;;;8239:59:126;;;;;;;;;8316:8;;;;8308:5;:16;8345:11;;;;8334:8;:22;8375:9;;;;8366:6;:18;8409:15;;;;8394:12;:30;;-1:-1:-1;;8394:30:126;-1:-1:-1;8409:15:126;8394:30;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8448:14:126;;;;8434:11;:28;;-1:-1:-1;;8434:28:126;;8448:14;8434:28;;;;;;;;:::i;:::-;;;;;-1:-1:-1;8486:14:126;;;;8472:28;:11;:28;8532:21;;;;8510:19;:43;8569:26;;;;;;8583:7;;8486:2;;8569:26;:::i;:::-;;;;;;;;7640:962;7574:1028;;:::o;10092:220:11:-;5660:16;:14;:16::i;:::-;6532:23:::1;:21;:23::i;:::-;10240:25:::2;10250:5;10257:7;10240:9;:25::i;:::-;10092:220:::0;;:::o;8816:197::-;5660:16;:14;:16::i;:::-;8956:7:::1;8942:10;;:21;;;;;;;:::i;:::-;::::0;;;-1:-1:-1;8973:33:11::1;::::0;-1:-1:-1;8998:7:11;8973:24:::1;:33::i;39491:143:126:-:0;39552:10;5954:30:11;5976:7;5954:21;:30::i;:::-;39574:6:126::1;:16:::0;;;39605:22:::1;::::0;7277:25:145;;;39605:22:126::1;::::0;7265:2:145;7250:18;39605:22:126::1;7131:177:145::0;13122:142:11;13218:6;;13199:35;;;;;;;;22607:25:145;;;;-1:-1:-1;;;;;22668:55:145;;;22648:18;;;22641:83;13199:4:11;:18;;;;22580::145;;13199:35:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13194:63;;13243:14;;-1:-1:-1;;;13243:14:11;;;;;;;;;;;12814:111;12868:10;-1:-1:-1;;;;;12890:4:11;12868:27;;12864:54;;12904:14;;-1:-1:-1;;;12904:14:11;;;;;;;;;;;13771:105;13832:6;;13842:1;13832:11;13828:41;;13852:17;;;;;;;;;;;;;;18773:1756:126;18968:1;18952:5;:12;:17;18948:76;;18992:21;;;;;;;;;;;;;;18948:76;19034:18;19066:5;19055:28;;;;;;;;;;;;:::i;:::-;19034:49;;19098:10;19112:1;19098:15;19094:77;;19136:24;;;;;;;;;;;;;;19094:77;19180:40;19223:21;;;:9;:21;;;;;19275:35;19259:12;;;;:51;;;;;;;;:::i;:::-;;19255:1208;;19330:19;;:33;;19326:108;;19390:29;;-1:-1:-1;;;19390:29:126;;;;;7277:25:145;;;7250:18;;19390:29:126;7131:177:145;19326:108:126;19479:10;;19452:8;:24;;;:37;19448:152;;;19548:24;;;;19574:10;;19516:69;;;;;;;;22937:25:145;;;22978:18;;;22971:34;;;;23021:18;;;23014:34;22910:18;;19516:69:126;22735:319:145;19448:152:126;19645:36;19618:23;;;;;;:63;;;;;;;;:::i;:::-;;19614:138;;19708:29;;-1:-1:-1;;;19708:29:126;;;;;7277:25:145;;;7250:18;;19708:29:126;7131:177:145;19614:138:126;19766:22;19791:36;19816:10;19791:24;:36::i;:::-;19766:61;;19841:17;19861:44;19880:8;:24;;;19861:18;:44::i;:::-;19841:64;;19941:9;19924:14;:26;:58;;;;;19981:1;19954:8;:24;;;:28;19924:58;19920:137;;;20009:33;;;;;;;;;;;;;;19920:137;20109:6;;20096:20;;;;;20071:22;;-1:-1:-1;;;;;20096:4:126;:12;;;;:20;;;;7277:25:145;;;7265:2;7250:18;;7131:177;20096:20:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;20096:20:126;;;;;;;;;;;;:::i;:::-;20071:45;;20145:8;:24;;;20131:10;;:38;;;;;;;:::i;:::-;;;;-1:-1:-1;;20207:10:126;;;;20219:20;;;;;20241:24;;;20191:75;;20207:10;-1:-1:-1;;;;;20219:20:126;;20191:15;:75::i;:::-;20297:23;;;:64;;-1:-1:-1;;20297:64:126;20323:38;20297:64;;;;;;20405:20;;;20297:64;20427:24;;;20381:71;;;25025:25:145;;;-1:-1:-1;;;;;20405:20:126;;;25081:2:145;25066:18;;25059:83;25158:18;;25151:34;20381:71:126;;25013:2:145;24998:18;20381:71:126;;;;;;;19312:1151;;;19255:1208;18859:1670;;18773:1756;;;:::o;37404:396::-;37523:18;37543:19;37566:56;37600:9;37611:10;37566:33;:56::i;:::-;37522:100;;;;37636:10;37650:1;37636:15;:35;;;;-1:-1:-1;37655:16:126;;37636:35;37632:72;;;37687:7;;37404:396;;:::o;37632:72::-;37713:19;;;:33;37756:24;;;;:37;;;;-1:-1:-1;37404:396:126:o;12816:351::-;12903:17;;:66;;-1:-1:-1;;;12903:66:126;;-1:-1:-1;;;;;18552:15:145;;;12903:66:126;;;18534:34:145;12963:4:126;18584:18:145;;;18577:43;12903:17:126;;;;:42;;18446:18:145;;12903:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12879:20;;:90;;;;;;;:::i;:::-;;;;-1:-1:-1;;12979:17:126;;:68;;;;;-1:-1:-1;;;;;18552:15:145;;;12979:68:126;;;18534:34:145;13041:4:126;18584:18:145;;;18577:43;12979:17:126;;;;:44;;18446:18:145;;12979:68:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13102:17;13111:7;13102:8;:17::i;:::-;13134:26;;-1:-1:-1;;;;;7491:55:145;;7473:74;;13134:26:126;;7461:2:145;7446:18;13134:26:126;;;;;;;;12816:351;:::o;10385:1945::-;10477:7;10556:45;10615:5;10604:50;;;;;;;;;;;;:::i;:::-;10769:15;;10556:98;;-1:-1:-1;10769:15:126;:20;10765:78;;10812:20;;;;;;;;;;;;;;10765:78;10935:35;10919:12;;;;:51;;;;;;;;:::i;:::-;;10915:721;;10986:39;11004:8;:20;;;10986:17;:39::i;:::-;11091:23;;;;-1:-1:-1;;;;;11091:37:126;11087:102;;11155:19;;;;;;;;;;;;;;11087:102;11202:17;11222:4;-1:-1:-1;;;;;11222:12:126;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;11222:22:126;;11245:6;;11222:30;;;;;;;;;;;;;7277:25:145;;7265:2;7250:18;;7131:177;11222:30:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11222:30:126;;;;;;;;;;;;:::i;:::-;:36;;;11202:56;;11303:9;-1:-1:-1;;;;;11276:36:126;:8;:23;;;-1:-1:-1;;;;;11276:36:126;;11272:234;;11474:17;;;;;;;;;;;;;;11272:234;11523:41;11539:8;:24;;;11523:15;:41::i;:::-;11519:107;;;11591:20;;-1:-1:-1;;;11591:20:126;;;;;;;;;;;11519:107;10972:664;10915:721;11645:18;11668:15;;11666:17;;;;;:::i;:::-;;;;;-1:-1:-1;11693:33:126;11729:21;;;:9;:21;;;;;;;;11761:25;;;11796:11;;;:21;;-1:-1:-1;;;;;11796:21:126;;;-1:-1:-1;;11796:21:126;;;;;;;11843:20;;;;11827:13;;;:36;;;;;;;;;;;;;;11892:23;;;;11873:16;;;:42;;;;;;;;;;;11945:24;;;;-1:-1:-1;11925:17:126;;;:44;;;;12030:16;;;:55;;-1:-1:-1;;12030:55:126;;;;;;12109:12;12095:11;;;:26;-1:-1:-1;12131:16:126;;:20;;;;12210:17;;;;12197:30;;:10;;;:30;;;;;;;11666:17;;-1:-1:-1;11729:21:126;;12197:30;;;;;;;;:::i;:::-;-1:-1:-1;;12259:6:126;;12243:35;;;16754:25:145;;;16810:2;16795:18;;16788:34;;;12243:35:126;;-1:-1:-1;16727:18:145;12243:35:126;;;;;;;-1:-1:-1;12311:10:126;10385:1945;-1:-1:-1;;;;10385:1945:126:o;9759:162::-;9841:17;;-1:-1:-1;;;;;9841:17:126;9819:10;:40;9815:100;;9882:22;;;;;;;;;;;;;;16455:802;16620:17;;:31;;;-1:-1:-1;;;16620:31:126;;;;16553:7;;16590:2;;-1:-1:-1;;;;;16620:17:126;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;16606:56:126;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;16606:58:126;;;;;;;;-1:-1:-1;;16606:58:126;;;;;;;;;;;;:::i;:::-;;;16602:208;;16763:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;16602:208;;;16714:17;;;-1:-1:-1;16602:208:126;16819:49;;;;;;;;;;;;;;;;;;16851:16;16819:11;:49::i;:::-;16902:17;;:48;;-1:-1:-1;;;16902:48:126;;-1:-1:-1;;;;;7491:55:145;;;16902:48:126;;;7473:74:145;16878:21:126;;16953:16;;16902:17;;;:39;;7446:18:145;;16902:48:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:67;;;;:::i;:::-;16878:91;;16979:43;;;;;;;;;;;;;;;;;;17008:13;16979:11;:43::i;:::-;17032:22;17057:40;17083:13;17089:7;17083:2;:13;:::i;:::-;17067:29;;:13;:29;:::i;:::-;17057:9;:40::i;:::-;17134:17;;:66;;-1:-1:-1;;;17134:66:126;;-1:-1:-1;;;;;18552:15:145;;;17134:66:126;;;18534:34:145;17194:4:126;18584:18:145;;;18577:43;17032:65:126;;-1:-1:-1;17107:24:126;;17032:65;;17134:17;;:42;;18446:18:145;;17134:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:83;;;;:::i;:::-;17107:110;16455:802;-1:-1:-1;;;;;;;16455:802:126:o;36649:447::-;36710:15;-1:-1:-1;;;36745:2:126;:12;36737:53;;;;-1:-1:-1;;;36737:53:126;;30927:2:145;36737:53:126;;;30909:21:145;30966:2;30946:18;;;30939:30;31005;30985:18;;;30978:58;31053:18;;36737:53:126;30725:352:145;36737:53:126;-1:-1:-1;;;;36812:2:126;36836;36875:215;36882:5;;36875:215;;36907:1;36911;36907:5;36916:1;36907:10;36903:177;;36941:10;36946:1;36949;36941:4;:10::i;:::-;36937:14;-1:-1:-1;36975:1:126;36969:7;36875:215;;36903:177;37025:16;37030:7;37039:1;37025:4;:16::i;:::-;37015:26;-1:-1:-1;37059:6:126;37064:1;37059:6;;:::i;:::-;;;36875:215;;;36727:369;;36649:447;;;;:::o;22695:191::-;22774:4;-1:-1:-1;;;;;22840:24:126;;;:39;;22875:4;22840:39;;;22867:5;22833:46;22695:191;-1:-1:-1;;22695:191:126:o;26777:174::-;26851:19;26924:20;5834:8;26924:16;:20;:::i;:::-;26910:10;;26899:8;;:21;;;;:::i;:::-;:45;;;26777:174;-1:-1:-1;;26777:174:126:o;14956:615::-;15049:7;15068:24;15095:14;15068:41;;15119:51;;;;;;;;;;;;;;;;;;15153:16;15119:11;:51::i;:::-;15202:17;;:66;;-1:-1:-1;;;15202:66:126;;-1:-1:-1;;;;;18552:15:145;;;15202:66:126;;;18534:34:145;15262:4:126;18584:18:145;;;18577:43;15180:19:126;;15202:17;;:42;;18446:18:145;;15202:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15180:88;;15278:39;;;;;;;;;;;;;;;;;;15305:11;15278;:39::i;:::-;15364:11;:21;15331:30;15345:16;15331:11;:30;:::i;:::-;:54;15327:139;;;15420:11;:21;:35;;15444:11;;15420:35;:::i;:::-;15401:54;;15327:139;15475:55;;;;;;;;;;;;;;;;;;15513:16;15475:11;:55::i;:::-;-1:-1:-1;15548:16:126;14956:615;-1:-1:-1;;;14956:615:126:o;15577:730::-;15713:17;;:48;;-1:-1:-1;;;15713:48:126;;-1:-1:-1;;;;;7491:55:145;;;15713:48:126;;;7473:74:145;15673:7:126;;;;15764:14;;15713:17;;;;:39;;7446:18:145;;15713:48:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:65;;;;:::i;:::-;15837:17;;:31;;;-1:-1:-1;;;15837:31:126;;;;15692:86;;-1:-1:-1;15807:2:126;;-1:-1:-1;;;;;15837:17:126;;;;:29;;:31;;;;;;;;;;;;;;;:17;:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;15823:56:126;;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15823:58:126;;;;;;;;-1:-1:-1;;15823:58:126;;;;;;;;;;;;:::i;:::-;;;15819:208;;15980:36;;;;;;;;;;;;;;;;;;:11;:36::i;:::-;15819:208;;;15931:17;;;-1:-1:-1;15819:208:126;16036:22;16061:37;16084:13;16090:7;16084:2;:13;:::i;:::-;16071:26;;:10;:26;:::i;16061:37::-;16132:17;;:66;;-1:-1:-1;;;16132:66:126;;-1:-1:-1;;;;;18552:15:145;;;16132:66:126;;;18534:34:145;16192:4:126;18584:18:145;;;18577:43;16036:62:126;;-1:-1:-1;16108:21:126;;16132:17;;;;:42;;18446:18:145;;16132:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16108:90;-1:-1:-1;16209:24:126;16236:30;16108:90;16236:14;:30;:::i;:::-;16209:57;15577:730;-1:-1:-1;;;;;;;;15577:730:126:o;37806:719::-;37959:18;37979:19;38028:12;38014:26;;38080:11;38057:9;:19;;;:34;;38050:42;;;;:::i;:::-;38129:11;38106:9;:19;;;:34;38102:173;;-1:-1:-1;38230:1:126;;-1:-1:-1;38230:1:126;38222:13;;38102:173;38341:177;38388:9;:19;;;38374:11;:33;;;;:::i;:::-;38460:9;:24;;;38498:10;38341:19;:177::i;:::-;38328:190;;37806:719;;;;;;:::o;14116:118:11:-;14173:10;:20;;-1:-1:-1;;14173:20:11;;;;;;;;;;14208:19;;2866:41:145;;;14208:19:11;;2854:2:145;2839:18;14208:19:11;2726:187:145;21560:220:126;21643:6;-1:-1:-1;;;;;21711:26:126;;;:62;;21758:15;21711:62;;;21740:15;21704:69;21560:220;-1:-1:-1;;21560:220:126:o;8269:350:11:-;5660:16;:14;:16::i;:::-;8428:6:::1;::::0;:11;8424:45:::1;;8448:21;;;;;;;;;;;;;;8424:45;8556:7;8567:1;8556:12:::0;8552:34:::1;;8577:9;;;;;;;;;;;;;;8552:34;8596:6;:16:::0;8269:350::o;17966:551:126:-;18050:28;18070:7;18050:19;:28::i;:::-;18165:17;;:69;;-1:-1:-1;;;18165:69:126;;-1:-1:-1;;;;;18552:15:145;;;18165:69:126;;;18534:34:145;18228:4:126;18584:18:145;;;18577:43;18134:28:126;;18165:17;;:45;;18446:18:145;;18165:69:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18134:100;;18249:23;18244:78;;18295:16;;;;;;;;;;;;;;18244:78;18331:42;18387:5;18376:53;;;;;;;;;;;;:::i;:::-;18331:98;;18439:37;18464:7;18473:2;18439:24;:37::i;:::-;18486:24;18498:7;18507:2;18486:11;:24::i;:::-;18040:477;;17966:551;;:::o;22473:127::-;22565:28;;7277:25:145;;;22565:28:126;;7265:2:145;7250:18;22565:28:126;7131:177:145;6721:269:10;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;22984:729:126:-;-1:-1:-1;;;;;23118:29:126;;23086;23118;;;:20;:29;;;;;;;;23086:61;;;;;;;;;;;;;;;;;;;23118:29;;23086:61;;;23118:29;23086:61;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23162:9;23157:550;23181:12;:19;23177:1;:23;23157:550;;;23221:18;23242:12;23255:1;23242:15;;;;;;;;:::i;:::-;;;;;;;23221:36;;23271:40;23314:9;:21;23324:10;23314:21;;;;;;;;;;;23271:64;;23353:26;23368:10;23353:14;:26::i;:::-;23349:348;;;-1:-1:-1;;;;;23422:35:126;;23399:20;23422:35;;;:26;;;:35;;;;;;;23475:39;;;;23532:21;;;:37;;23422:35;;;;23532:37;;23422:35;;23532:37;:::i;:::-;;;;;;;;23602:12;23587:11;;:27;;;;;;;:::i;:::-;;;;-1:-1:-1;23632:50:126;;-1:-1:-1;23659:8:126;23669:12;23632:26;:50::i;:::-;23381:316;23349:348;23207:500;;23202:3;;;;;:::i;:::-;;;;23157:550;;9927:132;-1:-1:-1;;;;;10000:22:126;;9996:56;;10031:21;;;;;;;;;;;;;;5630:121:35;5685:59;5740:2;5701:42;;;;;;;;:::i;:::-;;;;-1:-1:-1;;5701:42:35;;;;;;;;;;;;;;;;;;;;5685:15;:59::i;6548:139::-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:35;;;;;;;;;;;;;;;;;;;;6612:15;:68::i;6530:1642:86:-;6578:7;6601:1;6606;6601:6;6597:45;;-1:-1:-1;6630:1:86;;6530:1642;-1:-1:-1;6530:1642:86:o;6597:45::-;7321:14;7355:1;7344:7;7349:1;7344:4;:7::i;:::-;:12;;7338:1;:19;;7321:36;;7816:1;7805:6;7801:1;:10;;;;;:::i;:::-;;7792:6;:19;7791:26;;7782:35;;7865:1;7854:6;7850:1;:10;;;;;:::i;:::-;;7841:6;:19;7840:26;;7831:35;;7914:1;7903:6;7899:1;:10;;;;;:::i;:::-;;7890:6;:19;7889:26;;7880:35;;7963:1;7952:6;7948:1;:10;;;;;:::i;:::-;;7939:6;:19;7938:26;;7929:35;;8012:1;8001:6;7997:1;:10;;;;;:::i;:::-;;7988:6;:19;7987:26;;7978:35;;8061:1;8050:6;8046:1;:10;;;;;:::i;:::-;;8037:6;:19;8036:26;;8027:35;;8110:1;8099:6;8095:1;:10;;;;;:::i;:::-;;8086:6;:19;8085:26;;8076:35;;8132:23;8136:6;8148;8144:1;:10;;;;;:::i;:::-;;8132:3;:23::i;36158:269:126:-;36219:15;-1:-1:-1;;;36254:2:126;:13;;36246:66;;;;-1:-1:-1;;;36246:66:126;;33373:2:145;36246:66:126;;;33355:21:145;33412:2;33392:18;;;33385:30;33451:34;33431:18;;;33424:62;33522:10;33502:18;;;33495:38;33550:19;;36246:66:126;33171:404:145;36246:66:126;-1:-1:-1;;;36330:2:126;:12;36322:53;;;;-1:-1:-1;;;36322:53:126;;33782:2:145;36322:53:126;;;33764:21:145;33821:2;33801:18;;;33794:30;33860;33840:18;;;33833:58;33908:18;;36322:53:126;33580:352:145;36322:53:126;36417:3;5977:34;36394:7;36399:2;36394;:7;:::i;:::-;36393:19;;;;:::i;:::-;36392:28;;;36158:269;-1:-1:-1;;;36158:269:126:o;9376:377::-;-1:-1:-1;;;;;9449:21:126;;9445:77;;9493:18;;;;;;;;;;;;;;9445:77;9543:17;;-1:-1:-1;;;;;9543:17:126;9531:100;;9598:22;;-1:-1:-1;;;9598:22:126;;;;;;;;;;;9531:100;9645:17;;:35;;;;;-1:-1:-1;;;;;7491:55:145;;;9645:35:126;;;7473:74:145;9645:17:126;;;;:26;;7446:18:145;;9645:35:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9640:93;;9703:19;;;;;;;;;;;;;;26957:1548;27097:22;27138:9;27133:630;27157:16;:23;27153:1;:27;27133:630;;;27260:16;27277:1;27260:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27294:1;27260:35;27256:187;27420:8;27256:187;27456:18;27477:16;27494:1;27477:19;;;;;;;;:::i;:::-;;;;;;;:30;;;27456:51;;27526:26;27541:10;27526:14;:26::i;:::-;27521:167;;27579:29;;-1:-1:-1;;;27579:29:126;;;;;7277:25:145;;;7250:18;;27579:29:126;7131:177:145;27521:167:126;27720:16;27737:1;27720:19;;;;;;;;:::i;:::-;;;;;;;:32;;;27701:51;;;;;:::i;:::-;;;27187:576;27133:630;27182:3;;;;:::i;:::-;;;;27133:630;;;-1:-1:-1;;;;;;26208:26:126;;27859:29;26208:26;;;:18;:26;;;;;;27891:60;;27935:15;27891:11;:60::i;:::-;28062:17;;:66;;-1:-1:-1;;;28062:66:126;;-1:-1:-1;;;;;18552:15:145;;;28062:66:126;;;18534:34:145;28122:4:126;18584:18:145;;;18577:43;27859:92:126;;-1:-1:-1;28033:26:126;;28062:17;;;;:42;;18446:18:145;;28062:66:126;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;28033:95;;28318:18;28294:21;:42;28290:147;;;28359:67;;;;;;;;16754:25:145;;;16795:18;;;16788:34;;;16727:18;;28359:67:126;16580:248:145;28290:147:126;-1:-1:-1;;;;;;28447:27:126;;;;;;;:18;:27;;;;;:51;;;;-1:-1:-1;;26957:1548:126:o;28511:3479::-;28626:29;28670:9;28665:3319;28689:16;:23;28685:1;:27;28665:3319;;;28733:18;28754:16;28771:1;28754:19;;;;;;;;:::i;:::-;;;;;;;:30;;;28733:51;;28857:12;:19;28880:1;28857:24;28853:920;;28916:16;;;28930:1;28916:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;28916:16:126;28901:31;;28968:10;28950:12;28963:1;28950:15;;;;;;;;:::i;:::-;;;;;;:28;;;;;28853:920;;;29027:10;29068:9;29063:318;29087:12;:19;29083:1;:23;29063:318;;;29183:10;29164:12;29177:1;29164:15;;;;;;;;:::i;:::-;;;;;;;:29;29160:203;;29266:40;;;;;;;;16754:25:145;;;16795:18;;;16788:34;;;29229:4:126;;-1:-1:-1;16727:18:145;;29266:40:126;16580:248:145;29160:203:126;29108:3;;;;:::i;:::-;;;;29063:318;;;;29403:5;29398:361;;29432:21;29470:12;:19;29492:1;29470:23;;;;:::i;:::-;29456:38;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;29456:38:126;;29432:62;;29521:9;29516:124;29540:12;:19;29536:1;:23;29516:124;;;29602:12;29615:1;29602:15;;;;;;;;:::i;:::-;;;;;;;29592:4;29597:1;29592:7;;;;;;;;:::i;:::-;;;;;;;;;;:25;29561:3;;;;:::i;:::-;;;;29516:124;;;;29689:10;29661:4;29666:12;:19;29661:25;;;;;;;;:::i;:::-;;;;;;;;;;:38;29736:4;-1:-1:-1;29398:361:126;29009:764;28853:920;29786:12;29801:16;29818:1;29801:19;;;;;;;;:::i;:::-;;;;;;;;;;;;:32;;;29848:40;29891:21;;;:9;:21;;;;;;-1:-1:-1;;;;;30045:35:126;;;;:26;;;:35;;;;;;29801:32;;-1:-1:-1;30268:40:126;30045:35;29801:32;30268:11;:40::i;:::-;-1:-1:-1;;;;;30443:35:126;;;;;;:26;;;:35;;;;;:50;;;30245:63;;-1:-1:-1;30443:35:126;30765:246;-1:-1:-1;;;;;30789:29:126;;;;;;:20;:29;;;;;:36;30785:40;;30765:246;;;30890:19;;-1:-1:-1;;;;;30854:29:126;;30890:19;30854:29;;;:20;:29;;;;;:32;;30884:1;;30854:32;;;;;;:::i;:::-;;;;;;;;;:55;30850:147;;30947:4;30933:18;;30973:5;;30850:147;30827:3;;;;:::i;:::-;;;;30765:246;;;;31029:11;31024:106;;-1:-1:-1;;;;;31060:29:126;;;;;;:20;:29;;;;;;;31095:19;;31060:55;;;;;;;;;;;;;;;;;;31024:106;31309:12;31285:20;:36;31281:370;;31356:35;31371:20;31356:12;:35;:::i;:::-;31341:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31434:35:126;;-1:-1:-1;31449:20:126;31434:12;:35;:::i;:::-;31409:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;31281:370:126;;-1:-1:-1;31281:370:126;;31523:35;31546:12;31523:20;:35;:::i;:::-;31508:11;;:50;;;;;;;:::i;:::-;;;;-1:-1:-1;31601:35:126;;-1:-1:-1;31624:12:126;31601:20;:35;:::i;:::-;31576:8;:21;;;:60;;;;;;;:::i;:::-;;;;-1:-1:-1;;31281:370:126;31668:8;:18;;;31690:1;31668:23;31664:310;;31732:12;31711:18;;;:33;31664:310;;;31783:58;31810:8;31820:20;31783:26;:58::i;:::-;31912:21;;;;31935:23;;;;31864:95;;;-1:-1:-1;;;;;34435:55:145;;34417:74;;34522:2;34507:18;;34500:34;;;34550:18;;;34543:34;;;34608:2;34593:18;;34586:34;;;;34651:3;34636:19;;34629:35;31864:95:126;;34404:3:145;34389:19;31864:95:126;;;;;;;31664:310;28719:3265;;;;;;28714:3;;;;;:::i;:::-;;;;28665:3319;;2455:490:14;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;26586:185:126:-;26654:4;26677:22;;;:9;:22;;;;;:33;:37;;;;:87;;-1:-1:-1;;26762:1:126;26718:22;;;:9;:22;;;;;:32;;;-1:-1:-1;;;;;26718:32:126;:46;;;26586:185::o;181:376:35:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;8633:983:86:-;8685:7;;8769:3;8760:12;;;:16;8756:99;;8806:3;8796:13;;;;8827;8756:99;8881:2;8872:11;;;:15;8868:96;;8917:2;8907:12;;;;8937;8868:96;8990:2;8981:11;;;:15;8977:96;;9026:2;9016:12;;;;9046;8977:96;9099:2;9090:11;;;:15;9086:96;;9135:2;9125:12;;;;9155;9086:96;9208:1;9199:10;;;:14;9195:93;;9243:1;9233:11;;;;9262;9195:93;9314:1;9305:10;;;:14;9301:93;;9349:1;9339:11;;;;9368;9301:93;9420:1;9411:10;;;:14;9407:93;;9455:1;9445:11;;;;9474;9407:93;9526:1;9517:10;;;:14;9513:64;;9561:1;9551:11;9603:6;8633:983;-1:-1:-1;;8633:983:86:o;588:104::-;646:7;676:1;672;:5;:13;;684:1;672:13;;;-1:-1:-1;680:1:86;;588:104;-1:-1:-1;588:104:86:o;31996:276:126:-;32073:7;;32108:25;32127:6;32115:8;32108:25;:::i;:::-;32092:41;;32157:1;32148:6;:10;32144:90;;;32181:42;;;;;;;;22937:25:145;;;22978:18;;;22971:34;;;23021:18;;;23014:34;;;22910:18;;32181:42:126;22735:319:145;14:180;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:145;;14:180;-1:-1:-1;14:180:145:o;199:184::-;-1:-1:-1;;;248:1:145;241:88;348:4;345:1;338:15;372:4;369:1;362:15;388:145;474:1;467:5;464:12;454:46;;480:18;;:::i;:::-;509;;388:145::o;538:250::-;623:1;633:113;647:6;644:1;641:13;633:113;;;723:11;;;717:18;704:11;;;697:39;669:2;662:10;633:113;;;-1:-1:-1;;780:1:145;762:16;;755:27;538:250::o;793:271::-;835:3;873:5;867:12;900:6;895:3;888:19;916:76;985:6;978:4;973:3;969:14;962:4;955:5;951:16;916:76;:::i;:::-;1046:2;1025:15;-1:-1:-1;;1021:29:145;1012:39;;;;1053:4;1008:50;;793:271;-1:-1:-1;;793:271:145:o;1069:252::-;1156:5;1150:12;1145:3;1138:25;1120:3;1209:4;1202:5;1198:16;1192:23;1247:4;1240;1235:3;1231:14;1224:28;1268:47;1309:4;1304:3;1300:14;1286:12;1268:47;:::i;:::-;1261:54;1069:252;-1:-1:-1;;;;1069:252:145:o;1326:1058::-;1740:4;1769:3;1799:6;1788:9;1781:25;1842:6;1837:2;1826:9;1822:18;1815:34;1885:6;1880:2;1869:9;1865:18;1858:34;1928:6;1923:2;1912:9;1908:18;1901:34;-1:-1:-1;;;;;2045:2:145;2037:6;2033:15;2027:3;2016:9;2012:19;2005:44;2098:2;2090:6;2086:15;2080:3;2069:9;2065:19;2058:44;2151:2;2143:6;2139:15;2133:3;2122:9;2118:19;2111:44;;2192:6;2186:3;2175:9;2171:19;2164:35;2208:59;2262:3;2251:9;2247:19;2239:6;2208:59;:::i;:::-;2304:2;2298:3;2287:9;2283:19;2276:31;2324:54;2374:2;2363:9;2359:18;2351:6;2324:54;:::i;:::-;2316:62;1326:1058;-1:-1:-1;;;;;;;;;;;;;1326:1058:145:o;2389:332::-;2447:6;2500:2;2488:9;2479:7;2475:23;2471:32;2468:52;;;2516:1;2513;2506:12;2468:52;2555:9;2542:23;2605:66;2598:5;2594:78;2587:5;2584:89;2574:117;;2687:1;2684;2677:12;2918:154;-1:-1:-1;;;;;2997:5:145;2993:54;2986:5;2983:65;2973:93;;3062:1;3059;3052:12;3077:247;3136:6;3189:2;3177:9;3168:7;3164:23;3160:32;3157:52;;;3205:1;3202;3195:12;3157:52;3244:9;3231:23;3263:31;3288:5;3263:31;:::i;3329:184::-;-1:-1:-1;;;3378:1:145;3371:88;3478:4;3475:1;3468:15;3502:4;3499:1;3492:15;3518:257;3590:4;3584:11;;;3622:17;;3669:18;3654:34;;3690:22;;;3651:62;3648:88;;;3716:18;;:::i;:::-;3752:4;3745:24;3518:257;:::o;3780:255::-;3852:2;3846:9;3894:6;3882:19;;3931:18;3916:34;;3952:22;;;3913:62;3910:88;;;3978:18;;:::i;4040:253::-;4112:2;4106:9;4154:4;4142:17;;4189:18;4174:34;;4210:22;;;4171:62;4168:88;;;4236:18;;:::i;4298:253::-;4370:2;4364:9;4412:4;4400:17;;4447:18;4432:34;;4468:22;;;4429:62;4426:88;;;4494:18;;:::i;4556:275::-;4627:2;4621:9;4692:2;4673:13;;-1:-1:-1;;4669:27:145;4657:40;;4727:18;4712:34;;4748:22;;;4709:62;4706:88;;;4774:18;;:::i;:::-;4810:2;4803:22;4556:275;;-1:-1:-1;4556:275:145:o;4836:183::-;4896:4;4929:18;4921:6;4918:30;4915:56;;;4951:18;;:::i;:::-;-1:-1:-1;4996:1:145;4992:14;5008:4;4988:25;;4836:183::o;5024:737::-;5078:5;5131:3;5124:4;5116:6;5112:17;5108:27;5098:55;;5149:1;5146;5139:12;5098:55;5185:6;5172:20;5211:4;5235:60;5251:43;5291:2;5251:43;:::i;:::-;5235:60;:::i;:::-;5329:15;;;5415:1;5411:10;;;;5399:23;;5395:32;;;5360:12;;;;5439:15;;;5436:35;;;5467:1;5464;5457:12;5436:35;5503:2;5495:6;5491:15;5515:217;5531:6;5526:3;5523:15;5515:217;;;5611:3;5598:17;5628:31;5653:5;5628:31;:::i;:::-;5672:18;;5710:12;;;;5548;;5515:217;;;-1:-1:-1;5750:5:145;5024:737;-1:-1:-1;;;;;;5024:737:145:o;5766:186::-;5814:4;5847:18;5839:6;5836:30;5833:56;;;5869:18;;:::i;:::-;-1:-1:-1;5935:2:145;5914:15;-1:-1:-1;;5910:29:145;5941:4;5906:40;;5766:186::o;5957:462::-;5999:5;6052:3;6045:4;6037:6;6033:17;6029:27;6019:55;;6070:1;6067;6060:12;6019:55;6106:6;6093:20;6137:48;6153:31;6181:2;6153:31;:::i;6137:48::-;6210:2;6201:7;6194:19;6256:3;6249:4;6244:2;6236:6;6232:15;6228:26;6225:35;6222:55;;;6273:1;6270;6263:12;6222:55;6338:2;6331:4;6323:6;6319:17;6312:4;6303:7;6299:18;6286:55;6386:1;6361:16;;;6379:4;6357:27;6350:38;;;;6365:7;5957:462;-1:-1:-1;;;5957:462:145:o;6424:702::-;6535:6;6543;6551;6604:2;6592:9;6583:7;6579:23;6575:32;6572:52;;;6620:1;6617;6610:12;6572:52;6660:9;6647:23;6689:18;6730:2;6722:6;6719:14;6716:34;;;6746:1;6743;6736:12;6716:34;6769:61;6822:7;6813:6;6802:9;6798:22;6769:61;:::i;:::-;6759:71;;6883:2;6872:9;6868:18;6855:32;6839:48;;6912:2;6902:8;6899:16;6896:36;;;6928:1;6925;6918:12;6896:36;;6951:51;6994:7;6983:8;6972:9;6968:24;6951:51;:::i;:::-;6941:61;;;7052:2;7041:9;7037:18;7024:32;7065:31;7090:5;7065:31;:::i;:::-;7115:5;7105:15;;;6424:702;;;;;:::o;7558:455::-;7635:6;7643;7696:2;7684:9;7675:7;7671:23;7667:32;7664:52;;;7712:1;7709;7702:12;7664:52;7752:9;7739:23;7785:18;7777:6;7774:30;7771:50;;;7817:1;7814;7807:12;7771:50;7840:49;7881:7;7872:6;7861:9;7857:22;7840:49;:::i;:::-;7830:59;;;7939:2;7928:9;7924:18;7911:32;7952:31;7977:5;7952:31;:::i;:::-;8002:5;7992:15;;;7558:455;;;;;:::o;8249:142::-;8332:1;8325:5;8322:12;8312:46;;8338:18;;:::i;8396:213::-;8545:2;8530:18;;8557:46;8534:9;8585:6;8557:46;:::i;8614:315::-;8682:6;8690;8743:2;8731:9;8722:7;8718:23;8714:32;8711:52;;;8759:1;8756;8749:12;8711:52;8798:9;8785:23;8817:31;8842:5;8817:31;:::i;:::-;8867:5;8919:2;8904:18;;;;8891:32;;-1:-1:-1;;;8614:315:145:o;8934:316::-;9011:6;9019;9027;9080:2;9068:9;9059:7;9055:23;9051:32;9048:52;;;9096:1;9093;9086:12;9048:52;-1:-1:-1;;9119:23:145;;;9189:2;9174:18;;9161:32;;-1:-1:-1;9240:2:145;9225:18;;;9212:32;;8934:316;-1:-1:-1;8934:316:145:o;9255:143::-;9339:1;9332:5;9329:12;9319:46;;9345:18;;:::i;9403:215::-;9553:2;9538:18;;9565:47;9542:9;9594:6;9565:47;:::i;10063:261::-;10244:2;10233:9;10226:21;10207:4;10264:54;10314:2;10303:9;10299:18;10291:6;10264:54;:::i;10329:1357::-;10456:6;10464;10517:2;10505:9;10496:7;10492:23;10488:32;10485:52;;;10533:1;10530;10523:12;10485:52;10573:9;10560:23;10602:18;10643:2;10635:6;10632:14;10629:34;;;10659:1;10656;10649:12;10629:34;10682:61;10735:7;10726:6;10715:9;10711:22;10682:61;:::i;:::-;10672:71;;10762:2;10752:12;;10817:2;10806:9;10802:18;10789:32;10846:2;10836:8;10833:16;10830:36;;;10862:1;10859;10852:12;10830:36;10885:24;;10940:4;10932:13;;10928:27;-1:-1:-1;10918:55:145;;10969:1;10966;10959:12;10918:55;11005:2;10992:16;11028:60;11044:43;11084:2;11044:43;:::i;11028:60::-;11122:15;;;11204:1;11200:10;;;;11192:19;;11188:28;;;11153:12;;;;11228:19;;;11225:39;;;11260:1;11257;11250:12;11225:39;11292:2;11288;11284:11;11304:352;11320:6;11315:3;11312:15;11304:352;;;11406:3;11393:17;11442:2;11429:11;11426:19;11423:109;;;11486:1;11515:2;11511;11504:14;11423:109;11557:56;11605:7;11600:2;11586:11;11582:2;11578:20;11574:29;11557:56;:::i;:::-;11545:69;;-1:-1:-1;11634:12:145;;;;11337;;11304:352;;;11308:3;11675:5;11665:15;;;;;;;;10329:1357;;;;;:::o;11899:740::-;12132:2;12184:21;;;12254:13;;12157:18;;;12276:22;;;12103:4;;12132:2;12317;;12335:18;;;;12376:15;;;12103:4;12419:194;12433:6;12430:1;12427:13;12419:194;;;12482:51;12529:3;12520:6;12514:13;11774:12;;-1:-1:-1;;;;;11770:61:145;11758:74;;11881:4;11870:16;;;11864:23;11848:14;;11841:47;11691:203;12482:51;12553:12;;;;12588:15;;;;12455:1;12448:9;12419:194;;;-1:-1:-1;12630:3:145;;11899:740;-1:-1:-1;;;;;;;11899:740:145:o;12644:118::-;12730:5;12723:13;12716:21;12709:5;12706:32;12696:60;;12752:1;12749;12742:12;12767:241;12823:6;12876:2;12864:9;12855:7;12851:23;12847:32;12844:52;;;12892:1;12889;12882:12;12844:52;12931:9;12918:23;12950:28;12972:5;12950:28;:::i;13013:953::-;-1:-1:-1;;;;;13509:15:145;;;13491:34;;13561:15;;;13556:2;13541:18;;13534:43;13613:15;;13608:2;13593:18;;13586:43;13660:2;13645:18;;13638:34;;;13703:3;13688:19;;13681:35;;;13417:3;13402:19;;13725:59;13779:3;13764:19;;13756:6;13725:59;:::i;:::-;13821:6;13815:3;13804:9;13800:19;13793:35;13865:6;13859:3;13848:9;13844:19;13837:35;13909:6;13903:3;13892:9;13888:19;13881:35;13953:6;13947:3;13936:9;13932:19;13925:35;13013:953;;;;;;;;;;;;;:::o;13971:315::-;14039:6;14047;14100:2;14088:9;14079:7;14075:23;14071:32;14068:52;;;14116:1;14113;14106:12;14068:52;14152:9;14139:23;14129:33;;14212:2;14201:9;14197:18;14184:32;14225:31;14250:5;14225:31;:::i;14291:1202::-;14409:6;14440:2;14483;14471:9;14462:7;14458:23;14454:32;14451:52;;;14499:1;14496;14489:12;14451:52;14539:9;14526:23;14572:18;14564:6;14561:30;14558:50;;;14604:1;14601;14594:12;14558:50;14627:22;;14680:4;14672:13;;14668:27;-1:-1:-1;14658:55:145;;14709:1;14706;14699:12;14658:55;14745:2;14732:16;14768:60;14784:43;14824:2;14784:43;:::i;14768:60::-;14862:15;;;14944:1;14940:10;;;;14932:19;;14928:28;;;14893:12;;;;14968:19;;;14965:39;;;15000:1;14997;14990:12;14965:39;15024:11;;;;15044:419;15060:6;15055:3;15052:15;15044:419;;;15142:4;15136:3;15127:7;15123:17;15119:28;15116:118;;;15188:1;15217:2;15213;15206:14;15116:118;15260:22;;:::i;:::-;15309:17;;15295:32;;15376:12;;;15363:26;15347:14;;;15340:50;15403:18;;15086:4;15077:14;;;;15441:12;;;;15044:419;;15498:242;15641:2;15626:18;;15674:1;15663:13;;15653:47;;15680:18;;:::i;:::-;15709:25;;;15498:242;:::o;15745:388::-;15822:6;15830;15883:2;15871:9;15862:7;15858:23;15854:32;15851:52;;;15899:1;15896;15889:12;15851:52;15935:9;15922:23;15912:33;;15996:2;15985:9;15981:18;15968:32;16023:18;16015:6;16012:30;16009:50;;;16055:1;16052;16045:12;16009:50;16078:49;16119:7;16110:6;16099:9;16095:22;16078:49;:::i;:::-;16068:59;;;15745:388;;;;;:::o;16138:437::-;16217:1;16213:12;;;;16260;;;16281:61;;16335:4;16327:6;16323:17;16313:27;;16281:61;16388:2;16380:6;16377:14;16357:18;16354:38;16351:218;;-1:-1:-1;;;16422:1:145;16415:88;16526:4;16523:1;16516:15;16554:4;16551:1;16544:15;16833:184;-1:-1:-1;;;16882:1:145;16875:88;16982:4;16979:1;16972:15;17006:4;17003:1;16996:15;17022:128;17089:9;;;17110:11;;;17107:37;;;17124:18;;:::i;17528:184::-;-1:-1:-1;;;17577:1:145;17570:88;17677:4;17674:1;17667:15;17701:4;17698:1;17691:15;17717:274;17757:1;17783;17773:189;;-1:-1:-1;;;17815:1:145;17808:88;17919:4;17916:1;17909:15;17947:4;17944:1;17937:15;17773:189;-1:-1:-1;17976:9:145;;17717:274::o;17996:168::-;18069:9;;;18100;;18117:15;;;18111:22;;18097:37;18087:71;;18138:18;;:::i;18169:125::-;18234:9;;;18255:10;;;18252:36;;;18268:18;;:::i;18631:245::-;18698:6;18751:2;18739:9;18730:7;18726:23;18722:32;18719:52;;;18767:1;18764;18757:12;18719:52;18799:9;18793:16;18818:28;18840:5;18818:28;:::i;18881:184::-;18951:6;19004:2;18992:9;18983:7;18979:23;18975:32;18972:52;;;19020:1;19017;19010:12;18972:52;-1:-1:-1;19043:16:145;;18881:184;-1:-1:-1;18881:184:145:o;19070:138::-;19149:13;;19171:31;19149:13;19171:31;:::i;:::-;19070:138;;;:::o;19213:157::-;19302:13;;19344:1;19334:12;;19324:40;;19360:1;19357;19350:12;19375:156;19463:13;;19505:1;19495:12;;19485:40;;19521:1;19518;19511:12;19536:420;19611:5;19659:4;19647:9;19642:3;19638:19;19634:30;19631:50;;;19677:1;19674;19667:12;19631:50;19710:2;19704:9;19752:4;19744:6;19740:17;19823:6;19811:10;19808:22;19787:18;19775:10;19772:34;19769:62;19766:88;;;19834:18;;:::i;:::-;19870:2;19863:22;19933:16;;19918:32;;-1:-1:-1;19903:6:145;19536:420;-1:-1:-1;19536:420:145:o;19961:356::-;20030:5;20078:4;20066:9;20061:3;20057:19;20053:30;20050:50;;;20096:1;20093;20086:12;20050:50;20118:22;;:::i;:::-;20109:31;;20170:9;20164:16;20189:33;20214:7;20189:33;:::i;:::-;20245:7;20238:5;20231:22;;20306:2;20295:9;20291:18;20285:25;20280:2;20273:5;20269:14;20262:49;19961:356;;;;:::o;20322:972::-;20427:6;20480:3;20468:9;20459:7;20455:23;20451:33;20448:53;;;20497:1;20494;20487:12;20448:53;20523:22;;:::i;:::-;20568:40;20598:9;20568:40;:::i;:::-;20561:5;20554:55;20662:2;20651:9;20647:18;20641:25;20636:2;20629:5;20625:14;20618:49;20720:2;20709:9;20705:18;20699:25;20694:2;20687:5;20683:14;20676:49;20778:2;20767:9;20763:18;20757:25;20752:2;20745:5;20741:14;20734:49;20837:3;20826:9;20822:19;20816:26;20810:3;20803:5;20799:15;20792:51;20876:60;20931:3;20920:9;20916:19;20876:60;:::i;:::-;20870:3;20863:5;20859:15;20852:85;20970:59;21024:3;21013:9;21009:19;20970:59;:::i;:::-;20964:3;20957:5;20953:15;20946:84;21063:76;21131:7;21125:3;21114:9;21110:19;21063:76;:::i;:::-;21057:3;21050:5;21046:15;21039:101;21159:3;21194:69;21255:7;21250:2;21239:9;21235:18;21194:69;:::i;:::-;21178:14;;;21171:93;21182:5;20322:972;-1:-1:-1;;;20322:972:145:o;21299:1129::-;21489:4;21531:3;21520:9;21516:19;21508:27;;21562:6;21551:9;21544:25;-1:-1:-1;;;;;21615:6:145;21609:13;21605:62;21600:2;21589:9;21585:18;21578:90;21722:2;21714:6;21710:15;21704:22;21699:2;21688:9;21684:18;21677:50;21781:2;21773:6;21769:15;21763:22;21758:2;21747:9;21743:18;21736:50;21841:2;21833:6;21829:15;21823:22;21817:3;21806:9;21802:19;21795:51;21901:3;21893:6;21889:16;21883:23;21877:3;21866:9;21862:19;21855:52;21954:3;21946:6;21942:16;21936:23;21968:63;22026:3;22015:9;22011:19;21997:12;21968:63;:::i;:::-;;22080:3;22072:6;22068:16;22062:23;22094:64;22153:3;22142:9;22138:19;22122:14;22094:64;:::i;:::-;-1:-1:-1;22207:3:145;22195:16;;22189:23;22270:21;22231:3;22250:18;;;22243:49;;;;22329:15;;;22323:22;11774:12;;-1:-1:-1;;;;;11770:61:145;22417:3;22402:19;;11758:74;11881:4;11870:16;11864:23;11848:14;;;;11841:47;21299:1129;;-1:-1:-1;21299:1129:145:o;23059:726::-;23125:5;23173:4;23161:9;23156:3;23152:19;23148:30;23145:50;;;23191:1;23188;23181:12;23145:50;23213:22;;:::i;:::-;23204:31;;23264:9;23258:16;23251:5;23244:31;23319:2;23308:9;23304:18;23298:25;23346:18;23338:6;23335:30;23332:50;;;23378:1;23375;23368:12;23332:50;23401:22;;23454:4;23446:13;;23442:23;-1:-1:-1;23432:51:145;;23479:1;23476;23469:12;23432:51;23508:2;23502:9;23533:48;23549:31;23577:2;23549:31;:::i;23533:48::-;23604:2;23597:5;23590:17;23644:3;23639:2;23634;23630;23626:11;23622:20;23619:29;23616:49;;;23661:1;23658;23651:12;23616:49;23674:67;23738:2;23733;23726:5;23722:14;23717:2;23713;23709:11;23674:67;:::i;:::-;23768:2;23757:14;;23750:29;-1:-1:-1;23761:5:145;;23059:726;-1:-1:-1;;;23059:726:145:o;23790:1028::-;23882:6;23935:2;23923:9;23914:7;23910:23;23906:32;23903:52;;;23951:1;23948;23941:12;23903:52;23984:9;23978:16;24013:18;24054:2;24046:6;24043:14;24040:34;;;24070:1;24067;24060:12;24040:34;24093:22;;;;24149:4;24131:16;;;24127:27;24124:47;;;24167:1;24164;24157:12;24124:47;24193:22;;:::i;:::-;24244:2;24238:9;24231:5;24224:24;24286:2;24282;24278:11;24272:18;24299:33;24324:7;24299:33;:::i;:::-;24359:2;24348:14;;24341:31;24410:2;24402:11;;24396:18;24423:33;24396:18;24423:33;:::i;:::-;24483:2;24472:14;;24465:31;24535:2;24527:11;;24521:18;24551:16;;;24548:36;;;24580:1;24577;24570:12;24548:36;24616:65;24673:7;24662:8;24658:2;24654:17;24616:65;:::i;:::-;24611:2;24604:5;24600:14;24593:89;;24729:3;24725:2;24721:12;24715:19;24709:3;24702:5;24698:15;24691:44;24782:3;24778:2;24774:12;24768:19;24762:3;24755:5;24751:15;24744:44;24807:5;24797:15;;;;;23790:1028;;;;:::o;25196:986::-;25299:6;25352:2;25340:9;25331:7;25327:23;25323:32;25320:52;;;25368:1;25365;25358:12;25320:52;25401:9;25395:16;25430:18;25471:2;25463:6;25460:14;25457:34;;;25487:1;25484;25477:12;25457:34;25510:22;;;;25566:4;25548:16;;;25544:27;25541:47;;;25584:1;25581;25574:12;25541:47;25610:22;;:::i;:::-;25661:2;25655:9;25648:5;25641:24;25703:2;25699;25695:11;25689:18;25716:33;25741:7;25716:33;:::i;:::-;25776:2;25765:14;;25758:31;25835:2;25827:11;;;25821:18;25805:14;;;25798:42;25878:2;25870:11;;25864:18;25891:33;25864:18;25891:33;:::i;:::-;25951:2;25940:14;;25933:31;26003:3;25995:12;;25989:19;26020:16;;;26017:36;;;26049:1;26046;26039:12;26017:36;26086:65;26143:7;26132:8;26128:2;26124:17;26086:65;:::i;:::-;26080:3;26069:15;;26062:90;-1:-1:-1;26073:5:145;25196:986;-1:-1:-1;;;;;25196:986:145:o;26187:265::-;26271:6;26324:2;26312:9;26303:7;26299:23;26295:32;26292:52;;;26340:1;26337;26330:12;26292:52;26372:9;26366:16;26391:31;26416:5;26391:31;:::i;26457:135::-;26496:3;26517:17;;;26514:43;;26537:18;;:::i;:::-;-1:-1:-1;26584:1:145;26573:13;;26457:135::o;26723:545::-;26825:2;26820:3;26817:11;26814:448;;;26861:1;26886:5;26882:2;26875:17;26931:4;26927:2;26917:19;27001:2;26989:10;26985:19;26982:1;26978:27;26972:4;26968:38;27037:4;27025:10;27022:20;27019:47;;;-1:-1:-1;27060:4:145;27019:47;27115:2;27110:3;27106:12;27103:1;27099:20;27093:4;27089:31;27079:41;;27170:82;27188:2;27181:5;27178:13;27170:82;;;27233:17;;;27214:1;27203:13;27170:82;;;27174:3;;;26723:545;;;:::o;27444:1352::-;27570:3;27564:10;27597:18;27589:6;27586:30;27583:56;;;27619:18;;:::i;:::-;27648:97;27738:6;27698:38;27730:4;27724:11;27698:38;:::i;:::-;27692:4;27648:97;:::i;:::-;27800:4;;27864:2;27853:14;;27881:1;27876:663;;;;28583:1;28600:6;28597:89;;;-1:-1:-1;28652:19:145;;;28646:26;28597:89;-1:-1:-1;;27401:1:145;27397:11;;;27393:24;27389:29;27379:40;27425:1;27421:11;;;27376:57;28699:81;;27846:944;;27876:663;26670:1;26663:14;;;26707:4;26694:18;;-1:-1:-1;;27912:20:145;;;28030:236;28044:7;28041:1;28038:14;28030:236;;;28133:19;;;28127:26;28112:42;;28225:27;;;;28193:1;28181:14;;;;28060:19;;28030:236;;;28034:3;28294:6;28285:7;28282:19;28279:201;;;28355:19;;;28349:26;-1:-1:-1;;28438:1:145;28434:14;;;28450:3;28430:24;28426:37;28422:42;28407:58;28392:74;;28279:201;-1:-1:-1;;;;;28526:1:145;28510:14;;;28506:22;28493:36;;-1:-1:-1;27444:1352:145:o;29073:273::-;29141:6;29194:2;29182:9;29173:7;29169:23;29165:32;29162:52;;;29210:1;29207;29200:12;29162:52;29242:9;29236:16;29292:4;29285:5;29281:16;29274:5;29271:27;29261:55;;29312:1;29309;29302:12;29351:422;29440:1;29483:5;29440:1;29497:270;29518:7;29508:8;29505:21;29497:270;;;29577:4;29573:1;29569:6;29565:17;29559:4;29556:27;29553:53;;;29586:18;;:::i;:::-;29636:7;29626:8;29622:22;29619:55;;;29656:16;;;;29619:55;29735:22;;;;29695:15;;;;29497:270;;;29501:3;29351:422;;;;;:::o;29778:806::-;29827:5;29857:8;29847:80;;-1:-1:-1;29898:1:145;29912:5;;29847:80;29946:4;29936:76;;-1:-1:-1;29983:1:145;29997:5;;29936:76;30028:4;30046:1;30041:59;;;;30114:1;30109:130;;;;30021:218;;30041:59;30071:1;30062:10;;30085:5;;;30109:130;30146:3;30136:8;30133:17;30130:43;;;30153:18;;:::i;:::-;-1:-1:-1;;30209:1:145;30195:16;;30224:5;;30021:218;;30323:2;30313:8;30310:16;30304:3;30298:4;30295:13;30291:36;30285:2;30275:8;30272:16;30267:2;30261:4;30258:12;30254:35;30251:77;30248:159;;;-1:-1:-1;30360:19:145;;;30392:5;;30248:159;30439:34;30464:8;30458:4;30439:34;:::i;:::-;30509:6;30505:1;30501:6;30497:19;30488:7;30485:32;30482:58;;;30520:18;;:::i;:::-;30558:20;;29778:806;-1:-1:-1;;;29778:806:145:o;30589:131::-;30649:5;30678:36;30705:8;30699:4;30678:36;:::i;31082:184::-;-1:-1:-1;;;31131:1:145;31124:88;31231:4;31228:1;31221:15;31255:4;31252:1;31245:15;31271:1185;31400:6;31431:2;31474;31462:9;31453:7;31449:23;31445:32;31442:52;;;31490:1;31487;31480:12;31442:52;31523:9;31517:16;31556:18;31548:6;31545:30;31542:50;;;31588:1;31585;31578:12;31542:50;31611:22;;31664:4;31656:13;;31652:27;-1:-1:-1;31642:55:145;;31693:1;31690;31683:12;31642:55;31722:2;31716:9;31745:60;31761:43;31801:2;31761:43;:::i;31745:60::-;31839:15;;;31921:1;31917:10;;;;31909:19;;31905:28;;;31870:12;;;;31945:19;;;31942:39;;;31977:1;31974;31967:12;31942:39;32001:11;;;;32021:405;32037:6;32032:3;32029:15;32021:405;;;32119:4;32113:3;32104:7;32100:17;32096:28;32093:118;;;32165:1;32194:2;32190;32183:14;32093:118;32237:22;;:::i;:::-;32286:10;;32272:25;;32339:12;;;32333:19;32317:14;;;32310:43;32366:18;;32063:4;32054:14;;;;32404:12;;;;32021:405;;32461:184;-1:-1:-1;;;32510:1:145;32503:88;32610:4;32607:1;32600:15;32634:4;32631:1;32624:15;32650:220;32799:2;32788:9;32781:21;32762:4;32819:45;32860:2;32849:9;32845:18;32837:6;32819:45;:::i;32875:291::-;33052:2;33041:9;33034:21;33015:4;33072:45;33113:2;33102:9;33098:18;33090:6;33072:45;:::i;:::-;33064:53;;33153:6;33148:2;33137:9;33133:18;33126:34;32875:291;;;;;:::o;33937:216::-;34001:9;;;34029:11;;;33976:3;34059:9;;34087:10;;34083:19;;34112:10;;34104:19;;34080:44;34077:70;;;34127:18;;:::i","linkReferences":{},"immutableReferences":{"3335":[{"start":1138,"length":32},{"start":6287,"length":32},{"start":6434,"length":32},{"start":7083,"length":32}],"3337":[{"start":1502,"length":32}]}},"methodIdentifiers":{"D()":"0f529ba2","MAX_STAKED_PROPOSALS()":"406244d8","NATIVE()":"a0cf0aea","_minThresholdPoints()":"7c6570ba","activatePoints()":"814516ad","allocate(bytes,address)":"ef2920fc","calculateConviction(uint256,uint256,uint256)":"346db8cb","calculateThreshold(uint256)":"59a5db8b","canExecuteProposal(uint256)":"824ea8ed","deactivatePoints()":"1ddf1e23","deactivatePoints(address)":"6453d9c4","decay()":"54fac919","decreasePower(address,uint256)":"2ed04b2b","distribute(address[],bytes,address)":"0a6f0ee9","getAllo()":"15cc481e","getMaxAmount()":"0ba95909","getMaxConviction(uint256)":"950559d7","getMetadata(uint256)":"a574cea4","getPayouts(address[],bytes[])":"b2b878d0","getPointSystem()":"c3292171","getPoolAmount()":"4ab4ba42","getPoolId()":"38fff2d0","getProposal(uint256)":"c7f758a8","getProposalStakedAmount(uint256)":"dc96ff2d","getProposalVoterStake(uint256,address)":"e0dd2c38","getRecipientStatus(address)":"eb11af93","getStrategyId()":"42fda9c7","getTotalVoterStakePct(address)":"bcc5b93b","increasePoolAmount(uint256)":"f5b0dfb7","increasePower(address,uint256)":"782aadff","initialize(uint256,bytes)":"edd146cc","isPoolActive()":"df868ed3","isValidAllocator(address)":"4d31d087","maxRatio()":"76365af7","pointConfig()":"a47ff7e5","pointSystem()":"2dbd6fdd","proposalCounter()":"0c0512e9","proposalType()":"351d9f96","proposals(uint256)":"013cf08b","registerRecipient(bytes,address)":"2bbe0cae","registryCommunity()":"6003e414","setDecay(uint256)":"69fa25c4","setMaxRatio(uint256)":"11f22ae3","setMinThresholdPoints(uint256)":"2cefadbb","setPoolActive(bool)":"b5f620ce","setRegistryCommunity(address)":"058aca44","setWeight(uint256)":"fc1711f2","supportProposal((uint256,int256)[])":"e33add93","supportsInterface(bytes4)":"01ffc9a7","totalEffectiveActivePoints()":"d1e36232","totalPointsActivated()":"aba9ffee","totalStaked()":"817b1cd2","totalVoterStakePct(address)":"5db64b99","updateProposalConviction(uint256)":"1aa91a9e","voterStakedProposals(address,uint256)":"868c57b8","weight()":"a1aab33f"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AmountOverMaxRatio\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CantIncreaseFixedSystem\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ConvictionUnderMinimumThreshold\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MaxPointsReached\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"pointsSupport\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"pointsBalance\",\"type\":\"uint256\"}],\"name\":\"NotEnoughPointsToSupport\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotImplemented\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"OnlyCommunityAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_poolAmount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountNotEnough\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PoolIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalDataIsEmpty\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ProposalIdCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotActive\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalNotInList\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"index\",\"type\":\"uint256\"}],\"name\":\"ProposalSupportDuplicated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_support\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"_delta\",\"type\":\"int256\"},{\"internalType\":\"int256\",\"name\":\"_result\",\"type\":\"int256\"}],\"name\":\"SupportUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TokenNotAllowed\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserIsInactive\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Allocated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"DecayUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Distributed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"indexed\":false,\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"data\",\"type\":\"tuple\"}],\"name\":\"InitializedCV\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"}],\"name\":\"MaxRatioUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"before\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"}],\"name\":\"MinThresholdPointsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"PointsDeactivated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"active\",\"type\":\"bool\"}],\"name\":\"PoolActive\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"PoolAmountIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensUnStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToDecrease\",\"type\":\"uint256\"}],\"name\":\"PowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokensStaked\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"PowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"ProposalCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"Registered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"}],\"name\":\"RegistryUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"totalStakedAmount\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"}],\"name\":\"SupportAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"}],\"name\":\"WeightUpdated\",\"type\":\"event\"},{\"stateMutability\":\"payable\",\"type\":\"fallback\"},{\"inputs\":[],\"name\":\"D\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_STAKED_PROPOSALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"_minThresholdPoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"activatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"allocate\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"}],\"name\":\"calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_requestedAmount\",\"type\":\"uint256\"}],\"name\":\"calculateThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"canExecuteProposal\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"canBeExecuted\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decay\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUnstake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_recipientIds\",\"type\":\"address[]\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"distribute\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAllo\",\"outputs\":[{\"internalType\":\"contract IAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getMaxAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"getMaxConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getMetadata\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"},{\"internalType\":\"bytes[]\",\"name\":\"\",\"type\":\"bytes[]\"}],\"name\":\"getPayouts\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"recipientAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"internalType\":\"struct IStrategy.PayoutSummary[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPoolId\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposal\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"voterStakedPoints\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"}],\"name\":\"getProposalStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_proposalId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getProposalVoterStake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_recipientId\",\"type\":\"address\"}],\"name\":\"getRecipientStatus\",\"outputs\":[{\"internalType\":\"enum IStrategy.Status\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getStrategyId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_voter\",\"type\":\"address\"}],\"name\":\"getTotalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"}],\"name\":\"increasePoolAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isPoolActive\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_allocator\",\"type\":\"address\"}],\"name\":\"isValidAllocator\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"maxRatio\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointConfig\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalCounter\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proposalType\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"proposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"requestedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"convictionLast\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"beneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"submitter\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"requestedToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"blockLast\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalStatus\",\"name\":\"proposalStatus\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_sender\",\"type\":\"address\"}],\"name\":\"registerRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryCommunity\",\"outputs\":[{\"internalType\":\"contract RegistryCommunity\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decay\",\"type\":\"uint256\"}],\"name\":\"setDecay\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_maxRatio\",\"type\":\"uint256\"}],\"name\":\"setMaxRatio\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints_\",\"type\":\"uint256\"}],\"name\":\"setMinThresholdPoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"_active\",\"type\":\"bool\"}],\"name\":\"setPoolActive\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"setRegistryCommunity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_weight\",\"type\":\"uint256\"}],\"name\":\"setWeight\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"},{\"internalType\":\"int256\",\"name\":\"deltaSupport\",\"type\":\"int256\"}],\"internalType\":\"struct StrategyStruct.ProposalSupport[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"name\":\"supportProposal\",\"outputs\":[],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalEffectiveActivePoints\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalPointsActivated\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalStaked\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"totalVoterStakePct\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"proposalId\",\"type\":\"uint256\"}],\"name\":\"updateProposalConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"voterStakedProposals\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"weight\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"stateMutability\":\"payable\",\"type\":\"receive\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"params\":{\"amount\":\"The amount allocated\",\"recipientId\":\"The ID of the recipient\",\"token\":\"The token allocated\"}},\"Distributed(address,address,uint256,address)\":{\"params\":{\"amount\":\"The amount distributed\",\"recipientAddress\":\"The recipient\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}},\"Initialized(uint256,bytes)\":{\"params\":{\"data\":\"The data passed to the 'initialize' function\",\"poolId\":\"The ID of the pool\"}},\"PoolActive(bool)\":{\"params\":{\"active\":\"The status of the pool\"}},\"Registered(address,bytes,address)\":{\"params\":{\"data\":\"The data passed to the 'registerRecipient' function\",\"recipientId\":\"The ID of the recipient\",\"sender\":\"The sender\"}}},\"kind\":\"dev\",\"methods\":{\"allocate(bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to allocate to the recipient\",\"_sender\":\"The address of the sender\"}},\"calculateConviction(uint256,uint256,uint256)\":{\"details\":\"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\",\"params\":{\"_lastConv\":\"Last conviction record\",\"_oldAmount\":\"Amount of tokens staked until now\",\"_timePassed\":\"Number of blocks since last conviction record\"},\"returns\":{\"_0\":\"Current conviction\"}},\"calculateThreshold(uint256)\":{\"details\":\"Formula: \\u03c1 * totalStaked / (1 - a) / (\\u03b2 - requestedAmount / total)**2 For the Solidity implementation we amplify \\u03c1 and \\u03b2 and simplify the formula: weight = \\u03c1 * D maxRatio = \\u03b2 * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\",\"params\":{\"_requestedAmount\":\"Requested amount of tokens on certain proposal\"},\"returns\":{\"_threshold\":\"Threshold a proposal's conviction should surpass in order to be able to executed it.\"}},\"distribute(address[],bytes,address)\":{\"details\":\"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to distribute to the recipients\",\"_recipientIds\":\"The IDs of the recipients\",\"_sender\":\"The address of the sender\"}},\"getAllo()\":{\"returns\":{\"_0\":\"The Allo contract\"}},\"getPayouts(address[],bytes[])\":{\"returns\":{\"_0\":\"Input the values you would send to distribute(), get the amounts each recipient in the array would receive\"}},\"getPoolAmount()\":{\"returns\":{\"_0\":\"The balance of the pool\"}},\"getPoolId()\":{\"returns\":{\"_0\":\"The ID of the pool\"}},\"getProposal(uint256)\":{\"details\":\"Get proposal details\",\"params\":{\"_proposalId\":\"Proposal id\"},\"returns\":{\"beneficiary\":\"Proposal beneficiary\",\"blockLast\":\"Last block when conviction was calculated\",\"convictionLast\":\"Last conviction calculated\",\"proposalStatus\":\"Proposal status\",\"requestedAmount\":\"Proposal requested amount\",\"requestedToken\":\"Proposal requested token\",\"stakedAmount\":\"Proposal staked points\",\"submitter\":\"Proposal submitter\",\"threshold\":\"Proposal threshold\"}},\"getProposalVoterStake(uint256,address)\":{\"params\":{\"_proposalId\":\"Proposal id\",\"_voter\":\"Voter address\"},\"returns\":{\"_0\":\"Proposal voter stake\"}},\"getRecipientStatus(address)\":{\"params\":{\"_recipientId\":\"The ID of the recipient\"},\"returns\":{\"_0\":\"The status of the recipient\"}},\"getStrategyId()\":{\"returns\":{\"_0\":\"The ID of the strategy\"}},\"increasePoolAmount(uint256)\":{\"details\":\"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.\",\"params\":{\"_amount\":\"The amount to increase the pool by\"}},\"initialize(uint256,bytes)\":{\"params\":{\"_data\":\"The encoded data\",\"_poolId\":\"The ID of the pool\"}},\"isPoolActive()\":{\"returns\":{\"_0\":\"'true' if the pool is active, otherwise 'false'\"}},\"isValidAllocator(address)\":{\"details\":\"How the allocator is determined is up to the strategy implementation.\",\"params\":{\"_allocator\":\"The address to check if it is a valid allocator for the strategy.\"},\"returns\":{\"_0\":\"'true' if the address is a valid allocator, 'false' otherwise\"}},\"registerRecipient(bytes,address)\":{\"details\":\"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.\",\"params\":{\"_data\":\"The data to use to register the recipient\",\"_sender\":\"The address of the sender\"},\"returns\":{\"recipientId\":\"The recipientId\"}},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"events\":{\"Allocated(address,uint256,address,address)\":{\"notice\":\"Emitted when a recipient is allocated to.\"},\"Distributed(address,address,uint256,address)\":{\"notice\":\"Emitted when tokens are distributed.\"},\"Initialized(uint256,bytes)\":{\"notice\":\"Emitted when strategy is initialized.\"},\"PoolActive(bool)\":{\"notice\":\"Emitted when pool is set to active status.\"},\"Registered(address,bytes,address)\":{\"notice\":\"Emitted when a recipient is registered.\"}},\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"allocate(bytes,address)\":{\"notice\":\"Allocates to a recipient.\"},\"distribute(address[],bytes,address)\":{\"notice\":\"Distributes funds (tokens) to recipients.\"},\"getAllo()\":{\"notice\":\"Getter for the 'Allo' contract.\"},\"getPoolAmount()\":{\"notice\":\"Getter for the 'poolAmount'.\"},\"getPoolId()\":{\"notice\":\"Getter for the 'poolId'.\"},\"getProposalVoterStake(uint256,address)\":{\"notice\":\"Get stake of voter `_voter` on proposal #`_proposalId`\"},\"getRecipientStatus(address)\":{\"notice\":\"Getter for the status of a recipient.\"},\"getStrategyId()\":{\"notice\":\"Getter for the 'strategyId'.\"},\"increasePoolAmount(uint256)\":{\"notice\":\"Increases the pool amount.\"},\"initialize(uint256,bytes)\":{\"notice\":\"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize().\"},\"isPoolActive()\":{\"notice\":\"Getter for whether or not the pool is active.\"},\"isValidAllocator(address)\":{\"notice\":\"Checks if the '_allocator' is a valid allocator.\"},\"registerRecipient(bytes,address)\":{\"notice\":\"Registers a recipient.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"CVStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_allo","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[],"type":"error","name":"AmountOverMaxRatio"},{"inputs":[],"type":"error","name":"CantIncreaseFixedSystem"},{"inputs":[],"type":"error","name":"ConvictionUnderMinimumThreshold"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"MaxPointsReached"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[{"internalType":"uint256","name":"pointsSupport","type":"uint256"},{"internalType":"uint256","name":"pointsBalance","type":"uint256"}],"type":"error","name":"NotEnoughPointsToSupport"},{"inputs":[],"type":"error","name":"NotImplemented"},{"inputs":[],"type":"error","name":"OnlyCommunityAllowed"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"_requestedAmount","type":"uint256"},{"internalType":"uint256","name":"_poolAmount","type":"uint256"}],"type":"error","name":"PoolAmountNotEnough"},{"inputs":[],"type":"error","name":"PoolIdCannotBeZero"},{"inputs":[],"type":"error","name":"PoolIsEmpty"},{"inputs":[],"type":"error","name":"ProposalDataIsEmpty"},{"inputs":[],"type":"error","name":"ProposalIdCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotActive"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"type":"error","name":"ProposalNotInList"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"}],"type":"error","name":"ProposalSupportDuplicated"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_support","type":"uint256"},{"internalType":"int256","name":"_delta","type":"int256"},{"internalType":"int256","name":"_result","type":"int256"}],"type":"error","name":"SupportUnderflow"},{"inputs":[],"type":"error","name":"TokenCannotBeZero"},{"inputs":[],"type":"error","name":"TokenNotAllowed"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"UserCannotBeZero"},{"inputs":[],"type":"error","name":"UserIsInactive"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"token","type":"address","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Allocated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"decay","type":"uint256","indexed":false}],"type":"event","name":"DecayUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"address","name":"beneficiary","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"address","name":"recipientAddress","type":"address","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Distributed","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"bytes","name":"data","type":"bytes","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"struct StrategyStruct.InitializeParams","name":"data","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}],"indexed":false}],"type":"event","name":"InitializedCV","anonymous":false},{"inputs":[{"internalType":"uint256","name":"maxRatio","type":"uint256","indexed":false}],"type":"event","name":"MaxRatioUpdated","anonymous":false},{"inputs":[{"internalType":"uint256","name":"before","type":"uint256","indexed":false},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256","indexed":false}],"type":"event","name":"MinThresholdPointsUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false}],"type":"event","name":"PointsDeactivated","anonymous":false},{"inputs":[{"internalType":"bool","name":"active","type":"bool","indexed":false}],"type":"event","name":"PoolActive","anonymous":false},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"PoolAmountIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensUnStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToDecrease","type":"uint256","indexed":false}],"type":"event","name":"PowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"member","type":"address","indexed":false},{"internalType":"uint256","name":"tokensStaked","type":"uint256","indexed":false},{"internalType":"uint256","name":"pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"PowerIncreased","anonymous":false},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false}],"type":"event","name":"ProposalCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"recipientId","type":"address","indexed":true},{"internalType":"bytes","name":"data","type":"bytes","indexed":false},{"internalType":"address","name":"sender","type":"address","indexed":false}],"type":"event","name":"Registered","anonymous":false},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address","indexed":false}],"type":"event","name":"RegistryUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":false},{"internalType":"uint256","name":"proposalId","type":"uint256","indexed":false},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false},{"internalType":"uint256","name":"totalStakedAmount","type":"uint256","indexed":false},{"internalType":"uint256","name":"convictionLast","type":"uint256","indexed":false}],"type":"event","name":"SupportAdded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"weight","type":"uint256","indexed":false}],"type":"event","name":"WeightUpdated","anonymous":false},{"inputs":[],"stateMutability":"payable","type":"fallback"},{"inputs":[],"stateMutability":"view","type":"function","name":"D","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_STAKED_PROPOSALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"_minThresholdPoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"activatePoints"},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"allocate"},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_requestedAmount","type":"uint256"}],"stateMutability":"view","type":"function","name":"calculateThreshold","outputs":[{"internalType":"uint256","name":"_threshold","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"canExecuteProposal","outputs":[{"internalType":"bool","name":"canBeExecuted","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[],"stateMutability":"view","type":"function","name":"decay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUnstake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address[]","name":"_recipientIds","type":"address[]"},{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"distribute"},{"inputs":[],"stateMutability":"view","type":"function","name":"getAllo","outputs":[{"internalType":"contract IAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getMaxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMaxConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getMetadata","outputs":[{"internalType":"struct Metadata","name":"","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"address[]","name":"","type":"address[]"},{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"pure","type":"function","name":"getPayouts","outputs":[{"internalType":"struct IStrategy.PayoutSummary[]","name":"","type":"tuple[]","components":[{"internalType":"address","name":"recipientAddress","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getPoolId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposal","outputs":[{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"uint256","name":"threshold","type":"uint256"},{"internalType":"uint256","name":"voterStakedPoints","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getProposalStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"},{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getProposalVoterStake","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_recipientId","type":"address"}],"stateMutability":"view","type":"function","name":"getRecipientStatus","outputs":[{"internalType":"enum IStrategy.Status","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStrategyId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_voter","type":"address"}],"stateMutability":"view","type":"function","name":"getTotalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePoolAmount"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"isPoolActive","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_allocator","type":"address"}],"stateMutability":"view","type":"function","name":"isValidAllocator","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"maxRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointConfig","outputs":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proposalType","outputs":[{"internalType":"enum StrategyStruct.ProposalType","name":"","type":"uint8"}]},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"proposals","outputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"uint256","name":"requestedAmount","type":"uint256"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"uint256","name":"convictionLast","type":"uint256"},{"internalType":"address","name":"beneficiary","type":"address"},{"internalType":"address","name":"submitter","type":"address"},{"internalType":"address","name":"requestedToken","type":"address"},{"internalType":"uint256","name":"blockLast","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalStatus","name":"proposalStatus","type":"uint8"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}]},{"inputs":[{"internalType":"bytes","name":"_data","type":"bytes"},{"internalType":"address","name":"_sender","type":"address"}],"stateMutability":"payable","type":"function","name":"registerRecipient","outputs":[{"internalType":"address","name":"recipientId","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryCommunity","outputs":[{"internalType":"contract RegistryCommunity","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"_decay","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setDecay"},{"inputs":[{"internalType":"uint256","name":"_maxRatio","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMaxRatio"},{"inputs":[{"internalType":"uint256","name":"minThresholdPoints_","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setMinThresholdPoints"},{"inputs":[{"internalType":"bool","name":"_active","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setPoolActive"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setRegistryCommunity"},{"inputs":[{"internalType":"uint256","name":"_weight","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setWeight"},{"inputs":[{"internalType":"struct StrategyStruct.ProposalSupport[]","name":"","type":"tuple[]","components":[{"internalType":"uint256","name":"proposalId","type":"uint256"},{"internalType":"int256","name":"deltaSupport","type":"int256"}]}],"stateMutability":"pure","type":"function","name":"supportProposal"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalEffectiveActivePoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalPointsActivated","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalStaked","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"totalVoterStakePct","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"proposalId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"updateProposalConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"voterStakedProposals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"weight","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"payable","type":"receive"}],"devdoc":{"kind":"dev","methods":{"allocate(bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to allocate to the recipient","_sender":"The address of the sender"}},"calculateConviction(uint256,uint256,uint256)":{"details":"Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a) Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128","params":{"_lastConv":"Last conviction record","_oldAmount":"Amount of tokens staked until now","_timePassed":"Number of blocks since last conviction record"},"returns":{"_0":"Current conviction"}},"calculateThreshold(uint256)":{"details":"Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2 For the Solidity implementation we amplify ρ and β and simplify the formula: weight = ρ * D maxRatio = β * D decay = a * D threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2","params":{"_requestedAmount":"Requested amount of tokens on certain proposal"},"returns":{"_threshold":"Threshold a proposal's conviction should surpass in order to be able to executed it."}},"distribute(address[],bytes,address)":{"details":"The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to distribute to the recipients","_recipientIds":"The IDs of the recipients","_sender":"The address of the sender"}},"getAllo()":{"returns":{"_0":"The Allo contract"}},"getPayouts(address[],bytes[])":{"returns":{"_0":"Input the values you would send to distribute(), get the amounts each recipient in the array would receive"}},"getPoolAmount()":{"returns":{"_0":"The balance of the pool"}},"getPoolId()":{"returns":{"_0":"The ID of the pool"}},"getProposal(uint256)":{"details":"Get proposal details","params":{"_proposalId":"Proposal id"},"returns":{"beneficiary":"Proposal beneficiary","blockLast":"Last block when conviction was calculated","convictionLast":"Last conviction calculated","proposalStatus":"Proposal status","requestedAmount":"Proposal requested amount","requestedToken":"Proposal requested token","stakedAmount":"Proposal staked points","submitter":"Proposal submitter","threshold":"Proposal threshold"}},"getProposalVoterStake(uint256,address)":{"params":{"_proposalId":"Proposal id","_voter":"Voter address"},"returns":{"_0":"Proposal voter stake"}},"getRecipientStatus(address)":{"params":{"_recipientId":"The ID of the recipient"},"returns":{"_0":"The status of the recipient"}},"getStrategyId()":{"returns":{"_0":"The ID of the strategy"}},"increasePoolAmount(uint256)":{"details":"Increases the 'poolAmount' by '_amount'. Only 'Allo' contract can call this.","params":{"_amount":"The amount to increase the pool by"}},"initialize(uint256,bytes)":{"params":{"_data":"The encoded data","_poolId":"The ID of the pool"}},"isPoolActive()":{"returns":{"_0":"'true' if the pool is active, otherwise 'false'"}},"isValidAllocator(address)":{"details":"How the allocator is determined is up to the strategy implementation.","params":{"_allocator":"The address to check if it is a valid allocator for the strategy."},"returns":{"_0":"'true' if the address is a valid allocator, 'false' otherwise"}},"registerRecipient(bytes,address)":{"details":"Registers a recipient and returns the ID of the recipient. The encoded '_data' will be determined by the strategy implementation. Only 'Allo' contract can call this when it is initialized.","params":{"_data":"The data to use to register the recipient","_sender":"The address of the sender"},"returns":{"recipientId":"The recipientId"}},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"},"allocate(bytes,address)":{"notice":"Allocates to a recipient."},"distribute(address[],bytes,address)":{"notice":"Distributes funds (tokens) to recipients."},"getAllo()":{"notice":"Getter for the 'Allo' contract."},"getPoolAmount()":{"notice":"Getter for the 'poolAmount'."},"getPoolId()":{"notice":"Getter for the 'poolId'."},"getProposalVoterStake(uint256,address)":{"notice":"Get stake of voter `_voter` on proposal #`_proposalId`"},"getRecipientStatus(address)":{"notice":"Getter for the status of a recipient."},"getStrategyId()":{"notice":"Getter for the 'strategyId'."},"increasePoolAmount(uint256)":{"notice":"Increases the pool amount."},"initialize(uint256,bytes)":{"notice":"@dev The default BaseStrategy version will not use the data if a strategy wants to use it, they will overwrite it, use it, and then call super.initialize()."},"isPoolActive()":{"notice":"Getter for whether or not the pool is active."},"isValidAllocator(address)":{"notice":"Checks if the '_allocator' is a valid allocator."},"registerRecipient(bytes,address)":{"notice":"Registers a recipient."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"CVStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":3339,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolActive","offset":0,"slot":"0","type":"t_bool"},{"astId":3341,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolId","offset":0,"slot":"1","type":"t_uint256"},{"astId":3343,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"poolAmount","offset":0,"slot":"2","type":"t_uint256"},{"astId":73059,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"decay","offset":0,"slot":"3","type":"t_uint256"},{"astId":73061,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"maxRatio","offset":0,"slot":"4","type":"t_uint256"},{"astId":73063,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"weight","offset":0,"slot":"5","type":"t_uint256"},{"astId":73066,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalCounter","offset":0,"slot":"6","type":"t_uint256"},{"astId":73068,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalStaked","offset":0,"slot":"7","type":"t_uint256"},{"astId":73070,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalPointsActivated","offset":0,"slot":"8","type":"t_uint256"},{"astId":73073,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"_minThresholdPoints","offset":0,"slot":"9","type":"t_uint256"},{"astId":73075,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"surpressStateMutabilityWarning","offset":0,"slot":"10","type":"t_uint256"},{"astId":73078,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalType","offset":0,"slot":"11","type":"t_enum(ProposalType)72797"},{"astId":73081,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointSystem","offset":1,"slot":"11","type":"t_enum(PointSystem)72802"},{"astId":73084,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointConfig","offset":0,"slot":"12","type":"t_struct(PointSystemConfig)72855_storage"},{"astId":73087,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"registryCommunity","offset":0,"slot":"13","type":"t_contract(RegistryCommunity)77675"},{"astId":73092,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposals","offset":0,"slot":"14","type":"t_mapping(t_uint256,t_struct(Proposal)72847_storage)"},{"astId":73096,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"totalVoterStakePct","offset":0,"slot":"15","type":"t_mapping(t_address,t_uint256)"},{"astId":73101,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"voterStakedProposals","offset":0,"slot":"16","type":"t_mapping(t_address,t_array(t_uint256)dyn_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)dyn_storage":{"encoding":"dynamic_array","label":"uint256[]","numberOfBytes":"32","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_contract(RegistryCommunity)77675":{"encoding":"inplace","label":"contract RegistryCommunity","numberOfBytes":"20"},"t_enum(PointSystem)72802":{"encoding":"inplace","label":"enum StrategyStruct.PointSystem","numberOfBytes":"1"},"t_enum(ProposalStatus)72820":{"encoding":"inplace","label":"enum StrategyStruct.ProposalStatus","numberOfBytes":"1"},"t_enum(ProposalType)72797":{"encoding":"inplace","label":"enum StrategyStruct.ProposalType","numberOfBytes":"1"},"t_mapping(t_address,t_array(t_uint256)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256[])","numberOfBytes":"32","value":"t_array(t_uint256)dyn_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_uint256,t_struct(Proposal)72847_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => struct StrategyStruct.Proposal)","numberOfBytes":"32","value":"t_struct(Proposal)72847_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(PointSystemConfig)72855_storage":{"encoding":"inplace","label":"struct StrategyStruct.PointSystemConfig","numberOfBytes":"32","members":[{"astId":72854,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"maxAmount","offset":0,"slot":"0","type":"t_uint256"}]},"t_struct(Proposal)72847_storage":{"encoding":"inplace","label":"struct StrategyStruct.Proposal","numberOfBytes":"384","members":[{"astId":72822,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalId","offset":0,"slot":"0","type":"t_uint256"},{"astId":72824,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"requestedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":72826,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"stakedAmount","offset":0,"slot":"2","type":"t_uint256"},{"astId":72828,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"convictionLast","offset":0,"slot":"3","type":"t_uint256"},{"astId":72830,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"beneficiary","offset":0,"slot":"4","type":"t_address"},{"astId":72832,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"submitter","offset":0,"slot":"5","type":"t_address"},{"astId":72834,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"requestedToken","offset":0,"slot":"6","type":"t_address"},{"astId":72836,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"blockLast","offset":0,"slot":"7","type":"t_uint256"},{"astId":72839,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"proposalStatus","offset":0,"slot":"8","type":"t_enum(ProposalStatus)72820"},{"astId":72843,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"voterStakedPoints","offset":0,"slot":"9","type":"t_mapping(t_address,t_uint256)"},{"astId":72846,"contract":"pkg/contracts/src/CVStrategy.sol:CVStrategy","label":"metadata","offset":0,"slot":"10","type":"t_struct(Metadata)3098_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75562,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75561],"ERC165":[58097],"ERC20":[56822],"IAllo":[2610],"IERC165":[58303],"IPointStrategy":[72793],"Math":[59169],"Metadata":[3098],"RegistryCommunity":[77675],"StrategyStruct":[72884],"console":[29549]},"nodeType":"SourceUnit","src":"42:40063:126","nodes":[{"id":72748,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72751,"nodeType":"ImportDirective","src":"68:82:126","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72749,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72750,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72754,"nodeType":"ImportDirective","src":"152:68:126","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":77676,"symbolAliases":[{"foreign":{"id":72752,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"160:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72753,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72757,"nodeType":"ImportDirective","src":"221:87:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":58098,"symbolAliases":[{"foreign":{"id":72755,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58097,"src":"229:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72756,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58303,"src":"237:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72759,"nodeType":"ImportDirective","src":"309:68:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":56823,"symbolAliases":[{"foreign":{"id":72758,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"317:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72761,"nodeType":"ImportDirective","src":"379:46:126","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":29550,"symbolAliases":[{"foreign":{"id":72760,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"387:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72763,"nodeType":"ImportDirective","src":"427:65:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":59170,"symbolAliases":[{"foreign":{"id":72762,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"435:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72793,"nodeType":"ContractDefinition","src":"494:355:126","nodes":[{"id":72768,"nodeType":"FunctionDefinition","src":"525:52:126","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:126","parameters":{"id":72766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72765,"mutability":"mutable","name":"_member","nameLocation":"559:7:126","nodeType":"VariableDeclaration","scope":72768,"src":"551:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72764,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:126"},"returnParameters":{"id":72767,"nodeType":"ParameterList","parameters":[],"src":"576:0:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72777,"nodeType":"FunctionDefinition","src":"582:91:126","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:126","parameters":{"id":72773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72770,"mutability":"mutable","name":"_member","nameLocation":"613:7:126","nodeType":"VariableDeclaration","scope":72777,"src":"605:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72769,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72772,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:126","nodeType":"VariableDeclaration","scope":72777,"src":"622:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72771,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:126"},"returnParameters":{"id":72776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72777,"src":"664:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72774,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72786,"nodeType":"FunctionDefinition","src":"678:92:126","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:126","parameters":{"id":72782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72779,"mutability":"mutable","name":"_member","nameLocation":"709:7:126","nodeType":"VariableDeclaration","scope":72786,"src":"701:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72778,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72781,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:126","nodeType":"VariableDeclaration","scope":72786,"src":"718:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72780,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:126"},"returnParameters":{"id":72785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72786,"src":"761:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72783,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72792,"nodeType":"FunctionDefinition","src":"775:72:126","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:126","parameters":{"id":72787,"nodeType":"ParameterList","parameters":[],"src":"798:2:126"},"returnParameters":{"id":72791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72792,"src":"819:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72789,"nodeType":"UserDefinedTypeName","pathNode":{"id":72788,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:126","834:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"819:26:126"},"referencedDeclaration":72802,"src":"819:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[72793],"name":"IPointStrategy","nameLocation":"504:14:126","scope":75562,"usedErrors":[]},{"id":72884,"nodeType":"ContractDefinition","src":"851:1969:126","nodes":[{"id":72797,"nodeType":"EnumDefinition","src":"880:79:126","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":72794,"name":"Signaling","nameLocation":"908:9:126","nodeType":"EnumValue","src":"908:9:126"},{"id":72795,"name":"Funding","nameLocation":"927:7:126","nodeType":"EnumValue","src":"927:7:126"},{"id":72796,"name":"Streaming","nameLocation":"944:9:126","nodeType":"EnumValue","src":"944:9:126"}],"name":"ProposalType","nameLocation":"885:12:126"},{"id":72802,"nodeType":"EnumDefinition","src":"965:92:126","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":72798,"name":"Fixed","nameLocation":"992:5:126","nodeType":"EnumValue","src":"992:5:126"},{"id":72799,"name":"Capped","nameLocation":"1007:6:126","nodeType":"EnumValue","src":"1007:6:126"},{"id":72800,"name":"Unlimited","nameLocation":"1023:9:126","nodeType":"EnumValue","src":"1023:9:126"},{"id":72801,"name":"Quadratic","nameLocation":"1042:9:126","nodeType":"EnumValue","src":"1042:9:126"}],"name":"PointSystem","nameLocation":"970:11:126"},{"id":72814,"nodeType":"StructDefinition","src":"1063:243:126","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":72804,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:126","nodeType":"VariableDeclaration","scope":72814,"src":"1126:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72803,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72806,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:126","nodeType":"VariableDeclaration","scope":72814,"src":"1150:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72805,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72808,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:126","nodeType":"VariableDeclaration","scope":72814,"src":"1217:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72810,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:126","nodeType":"VariableDeclaration","scope":72814,"src":"1250:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72809,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72813,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:126","nodeType":"VariableDeclaration","scope":72814,"src":"1282:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72812,"nodeType":"UserDefinedTypeName","pathNode":{"id":72811,"name":"Metadata","nameLocations":["1282:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:126"},"referencedDeclaration":3098,"src":"1282:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:126","scope":72884,"visibility":"public"},{"id":72820,"nodeType":"EnumDefinition","src":"1312:289:126","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":72815,"name":"Inactive","nameLocation":"1342:8:126","nodeType":"EnumValue","src":"1342:8:126"},{"id":72816,"name":"Active","nameLocation":"1372:6:126","nodeType":"EnumValue","src":"1372:6:126"},{"id":72817,"name":"Paused","nameLocation":"1435:6:126","nodeType":"EnumValue","src":"1435:6:126"},{"id":72818,"name":"Cancelled","nameLocation":"1500:9:126","nodeType":"EnumValue","src":"1500:9:126"},{"id":72819,"name":"Executed","nameLocation":"1553:8:126","nodeType":"EnumValue","src":"1553:8:126"}],"name":"ProposalStatus","nameLocation":"1317:14:126"},{"id":72847,"nodeType":"StructDefinition","src":"1607:405:126","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":72822,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:126","nodeType":"VariableDeclaration","scope":72847,"src":"1633:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72824,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:126","nodeType":"VariableDeclaration","scope":72847,"src":"1661:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72823,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72826,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:126","nodeType":"VariableDeclaration","scope":72847,"src":"1694:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72825,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72828,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1724:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72827,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72830,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:126","nodeType":"VariableDeclaration","scope":72847,"src":"1756:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72829,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:126","nodeType":"VariableDeclaration","scope":72847,"src":"1785:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72831,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72834,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1812:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72833,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72836,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:126","nodeType":"VariableDeclaration","scope":72847,"src":"1844:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72839,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1871:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":72838,"nodeType":"UserDefinedTypeName","pathNode":{"id":72837,"name":"ProposalStatus","nameLocations":["1871:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72820,"src":"1871:14:126"},"referencedDeclaration":72820,"src":"1871:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":72843,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:126","nodeType":"VariableDeclaration","scope":72847,"src":"1910:45:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":72842,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":72840,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":72841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":72846,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:126","nodeType":"VariableDeclaration","scope":72847,"src":"1988:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72845,"nodeType":"UserDefinedTypeName","pathNode":{"id":72844,"name":"Metadata","nameLocations":["1988:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:126"},"referencedDeclaration":3098,"src":"1988:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:126","scope":72884,"visibility":"public"},{"id":72852,"nodeType":"StructDefinition","src":"2018:126:126","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":72849,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:126","nodeType":"VariableDeclaration","scope":72852,"src":"2051:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72848,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72851,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:126","nodeType":"VariableDeclaration","scope":72852,"src":"2079:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72850,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:126","scope":72884,"visibility":"public"},{"id":72855,"nodeType":"StructDefinition","src":"2150:89:126","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":72854,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"2215:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72853,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:126","scope":72884,"visibility":"public"},{"id":72860,"nodeType":"StructDefinition","src":"2245:88:126","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":72857,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:126","nodeType":"VariableDeclaration","scope":72860,"src":"2274:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72856,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72859,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:126","nodeType":"VariableDeclaration","scope":72860,"src":"2309:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:126","scope":72884,"visibility":"public"},{"id":72883,"nodeType":"StructDefinition","src":"2339:479:126","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":72862,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:126","nodeType":"VariableDeclaration","scope":72883,"src":"2373:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72861,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72864,"mutability":"mutable","name":"decay","nameLocation":"2445:5:126","nodeType":"VariableDeclaration","scope":72883,"src":"2437:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72863,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72866,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:126","nodeType":"VariableDeclaration","scope":72883,"src":"2507:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72865,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72868,"mutability":"mutable","name":"weight","nameLocation":"2569:6:126","nodeType":"VariableDeclaration","scope":72883,"src":"2561:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72870,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:126","nodeType":"VariableDeclaration","scope":72883,"src":"2585:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72873,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:126","nodeType":"VariableDeclaration","scope":72883,"src":"2646:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":72872,"nodeType":"UserDefinedTypeName","pathNode":{"id":72871,"name":"ProposalType","nameLocations":["2646:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"2646:12:126"},"referencedDeclaration":72797,"src":"2646:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":72876,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2716:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72875,"nodeType":"UserDefinedTypeName","pathNode":{"id":72874,"name":"PointSystem","nameLocations":["2716:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"2716:11:126"},"referencedDeclaration":72802,"src":"2716:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":72879,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2749:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":72878,"nodeType":"UserDefinedTypeName","pathNode":{"id":72877,"name":"PointSystemConfig","nameLocations":["2749:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"2749:17:126"},"referencedDeclaration":72855,"src":"2749:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":72882,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2788:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72860_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":72881,"nodeType":"UserDefinedTypeName","pathNode":{"id":72880,"name":"SybilConfig","nameLocations":["2788:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"2788:11:126"},"referencedDeclaration":72860,"src":"2788:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72860_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:126","scope":72884,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[72884],"name":"StrategyStruct","nameLocation":"859:14:126","scope":75562,"usedErrors":[]},{"id":75561,"nodeType":"ContractDefinition","src":"2822:37282:126","nodes":[{"id":72893,"nodeType":"UsingForDirective","src":"2888:23:126","nodes":[],"global":false,"libraryName":{"id":72891,"name":"Math","nameLocations":["2894:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":59169,"src":"2894:4:126"},"typeName":{"id":72892,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":72895,"nodeType":"ErrorDefinition","src":"3082:25:126","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:126","parameters":{"id":72894,"nodeType":"ParameterList","parameters":[],"src":"3104:2:126"}},{"id":72897,"nodeType":"ErrorDefinition","src":"3126:26:126","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:126","parameters":{"id":72896,"nodeType":"ParameterList","parameters":[],"src":"3149:2:126"}},{"id":72899,"nodeType":"ErrorDefinition","src":"3170:23:126","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:126","parameters":{"id":72898,"nodeType":"ParameterList","parameters":[],"src":"3190:2:126"}},{"id":72901,"nodeType":"ErrorDefinition","src":"3212:20:126","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:126","parameters":{"id":72900,"nodeType":"ParameterList","parameters":[],"src":"3229:2:126"}},{"id":72903,"nodeType":"ErrorDefinition","src":"3251:23:126","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:126","parameters":{"id":72902,"nodeType":"ParameterList","parameters":[],"src":"3271:2:126"}},{"id":72905,"nodeType":"ErrorDefinition","src":"3292:26:126","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:126","parameters":{"id":72904,"nodeType":"ParameterList","parameters":[],"src":"3315:2:126"}},{"id":72907,"nodeType":"ErrorDefinition","src":"3336:24:126","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:126","parameters":{"id":72906,"nodeType":"ParameterList","parameters":[],"src":"3357:2:126"}},{"id":72909,"nodeType":"ErrorDefinition","src":"3379:27:126","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:126","parameters":{"id":72908,"nodeType":"ParameterList","parameters":[],"src":"3403:2:126"}},{"id":72911,"nodeType":"ErrorDefinition","src":"3425:27:126","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:126","parameters":{"id":72910,"nodeType":"ParameterList","parameters":[],"src":"3449:2:126"}},{"id":72913,"nodeType":"ErrorDefinition","src":"3470:28:126","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:126","parameters":{"id":72912,"nodeType":"ParameterList","parameters":[],"src":"3495:2:126"}},{"id":72915,"nodeType":"ErrorDefinition","src":"3516:29:126","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:126","parameters":{"id":72914,"nodeType":"ParameterList","parameters":[],"src":"3542:2:126"}},{"id":72923,"nodeType":"ErrorDefinition","src":"3564:72:126","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:126","parameters":{"id":72922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72917,"mutability":"mutable","name":"_support","nameLocation":"3595:8:126","nodeType":"VariableDeclaration","scope":72923,"src":"3587:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72916,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72919,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:126","nodeType":"VariableDeclaration","scope":72923,"src":"3605:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72918,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":72921,"mutability":"mutable","name":"_result","nameLocation":"3627:7:126","nodeType":"VariableDeclaration","scope":72923,"src":"3620:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72920,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:126"}},{"id":72925,"nodeType":"ErrorDefinition","src":"3655:25:126","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:126","parameters":{"id":72924,"nodeType":"ParameterList","parameters":[],"src":"3677:2:126"}},{"id":72927,"nodeType":"ErrorDefinition","src":"3699:32:126","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:126","parameters":{"id":72926,"nodeType":"ParameterList","parameters":[],"src":"3728:2:126"}},{"id":72933,"nodeType":"ErrorDefinition","src":"3750:77:126","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:126","parameters":{"id":72932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72929,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:126","nodeType":"VariableDeclaration","scope":72933,"src":"3781:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72928,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72931,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:126","nodeType":"VariableDeclaration","scope":72933,"src":"3804:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:126"}},{"id":72935,"nodeType":"ErrorDefinition","src":"3847:28:126","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:126","parameters":{"id":72934,"nodeType":"ParameterList","parameters":[],"src":"3872:2:126"}},{"id":72937,"nodeType":"ErrorDefinition","src":"3893:31:126","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:126","parameters":{"id":72936,"nodeType":"ParameterList","parameters":[],"src":"3921:2:126"}},{"id":72941,"nodeType":"ErrorDefinition","src":"3942:45:126","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:126","parameters":{"id":72940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72939,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:126","nodeType":"VariableDeclaration","scope":72941,"src":"3966:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72938,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:126"}},{"id":72945,"nodeType":"ErrorDefinition","src":"4006:45:126","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:126","parameters":{"id":72944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72943,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:126","nodeType":"VariableDeclaration","scope":72945,"src":"4030:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72942,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:126"}},{"id":72951,"nodeType":"ErrorDefinition","src":"4070:68:126","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:126","parameters":{"id":72950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72947,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:126","nodeType":"VariableDeclaration","scope":72951,"src":"4102:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72946,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72949,"mutability":"mutable","name":"index","nameLocation":"4131:5:126","nodeType":"VariableDeclaration","scope":72951,"src":"4123:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72948,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:126"}},{"id":72953,"nodeType":"ErrorDefinition","src":"4156:40:126","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:126","parameters":{"id":72952,"nodeType":"ParameterList","parameters":[],"src":"4193:2:126"}},{"id":72955,"nodeType":"ErrorDefinition","src":"4215:29:126","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:126","parameters":{"id":72954,"nodeType":"ParameterList","parameters":[],"src":"4241:2:126"}},{"id":72963,"nodeType":"ErrorDefinition","src":"4263:94:126","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:126","parameters":{"id":72962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72957,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:126","nodeType":"VariableDeclaration","scope":72963,"src":"4289:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72956,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72959,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:126","nodeType":"VariableDeclaration","scope":72963,"src":"4310:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72958,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72961,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:126","nodeType":"VariableDeclaration","scope":72963,"src":"4336:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72960,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:126"}},{"id":72970,"nodeType":"EventDefinition","src":"4542:74:126","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:126","parameters":{"id":72969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72965,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:126","nodeType":"VariableDeclaration","scope":72970,"src":"4562:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72964,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72968,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:126","nodeType":"VariableDeclaration","scope":72970,"src":"4578:36:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":72967,"nodeType":"UserDefinedTypeName","pathNode":{"id":72966,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:126","4593:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"4578:31:126"},"referencedDeclaration":72883,"src":"4578:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:126"}},{"id":72978,"nodeType":"EventDefinition","src":"4621:75:126","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:126","parameters":{"id":72977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72972,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:126","nodeType":"VariableDeclaration","scope":72978,"src":"4639:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72971,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72974,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:126","nodeType":"VariableDeclaration","scope":72978,"src":"4659:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72973,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72976,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:126","nodeType":"VariableDeclaration","scope":72978,"src":"4680:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72975,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:126"}},{"id":72984,"nodeType":"EventDefinition","src":"4701:58:126","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:126","parameters":{"id":72983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72980,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:126","nodeType":"VariableDeclaration","scope":72984,"src":"4723:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72982,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:126","nodeType":"VariableDeclaration","scope":72984,"src":"4739:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72981,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:126"}},{"id":72988,"nodeType":"EventDefinition","src":"4764:42:126","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:126","parameters":{"id":72987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72986,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:126","nodeType":"VariableDeclaration","scope":72988,"src":"4790:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72985,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:126"}},{"id":72996,"nodeType":"EventDefinition","src":"4811:85:126","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:126","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72990,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:126","nodeType":"VariableDeclaration","scope":72996,"src":"4832:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72989,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72992,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:126","nodeType":"VariableDeclaration","scope":72996,"src":"4848:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72991,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72994,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:126","nodeType":"VariableDeclaration","scope":72996,"src":"4870:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72993,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:126"}},{"id":73004,"nodeType":"EventDefinition","src":"4901:87:126","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:126","parameters":{"id":73003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72998,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:126","nodeType":"VariableDeclaration","scope":73004,"src":"4922:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72997,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73000,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:126","nodeType":"VariableDeclaration","scope":73004,"src":"4938:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73002,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:126","nodeType":"VariableDeclaration","scope":73004,"src":"4962:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:126"}},{"id":73016,"nodeType":"EventDefinition","src":"4993:134:126","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:126","parameters":{"id":73015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73006,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:126","nodeType":"VariableDeclaration","scope":73016,"src":"5021:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73005,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73008,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:126","nodeType":"VariableDeclaration","scope":73016,"src":"5035:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73007,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73010,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:126","nodeType":"VariableDeclaration","scope":73016,"src":"5055:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73012,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:126","nodeType":"VariableDeclaration","scope":73016,"src":"5071:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73011,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73014,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:126","nodeType":"VariableDeclaration","scope":73016,"src":"5098:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73013,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:126"}},{"id":73020,"nodeType":"EventDefinition","src":"5132:40:126","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:126","parameters":{"id":73019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73018,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:126","nodeType":"VariableDeclaration","scope":73020,"src":"5156:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73017,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:126"}},{"id":73024,"nodeType":"EventDefinition","src":"5177:34:126","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:126","parameters":{"id":73023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73022,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:126","nodeType":"VariableDeclaration","scope":73024,"src":"5196:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:126"}},{"id":73028,"nodeType":"EventDefinition","src":"5216:40:126","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:126","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73026,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:126","nodeType":"VariableDeclaration","scope":73028,"src":"5238:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73025,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:126"}},{"id":73032,"nodeType":"EventDefinition","src":"5261:36:126","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:126","parameters":{"id":73031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73030,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:126","nodeType":"VariableDeclaration","scope":73032,"src":"5281:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:126"}},{"id":73036,"nodeType":"EventDefinition","src":"5302:49:126","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:126","parameters":{"id":73035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73034,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:126","nodeType":"VariableDeclaration","scope":73036,"src":"5324:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73033,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:126"}},{"id":73042,"nodeType":"EventDefinition","src":"5356:76:126","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:126","parameters":{"id":73041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73038,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:126","nodeType":"VariableDeclaration","scope":73042,"src":"5388:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73040,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:126","nodeType":"VariableDeclaration","scope":73042,"src":"5404:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73039,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:126"}},{"id":73045,"nodeType":"VariableDeclaration","src":"5806:36:126","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73043,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:126","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73048,"nodeType":"VariableDeclaration","src":"5856:70:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73046,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:126","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73051,"nodeType":"VariableDeclaration","src":"5942:69:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73049,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:126","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73054,"nodeType":"VariableDeclaration","src":"6027:53:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73052,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73057,"nodeType":"VariableDeclaration","src":"6095:49:126","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73055,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73059,"nodeType":"VariableDeclaration","src":"6272:20:126","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73058,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73061,"nodeType":"VariableDeclaration","src":"6298:23:126","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73063,"nodeType":"VariableDeclaration","src":"6327:21:126","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73062,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73066,"nodeType":"VariableDeclaration","src":"6354:34:126","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73064,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73068,"nodeType":"VariableDeclaration","src":"6394:26:126","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73067,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73070,"nodeType":"VariableDeclaration","src":"6426:35:126","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73069,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73073,"nodeType":"VariableDeclaration","src":"6467:38:126","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73071,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73075,"nodeType":"VariableDeclaration","src":"6546:47:126","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73074,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73078,"nodeType":"VariableDeclaration","src":"6678:47:126","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73077,"nodeType":"UserDefinedTypeName","pathNode":{"id":73076,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:126","6693:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"6678:27:126"},"referencedDeclaration":72797,"src":"6678:27:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73081,"nodeType":"VariableDeclaration","src":"6784:45:126","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73080,"nodeType":"UserDefinedTypeName","pathNode":{"id":73079,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:126","6799:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"6784:26:126"},"referencedDeclaration":72802,"src":"6784:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73084,"nodeType":"VariableDeclaration","src":"6835:51:126","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73083,"nodeType":"UserDefinedTypeName","pathNode":{"id":73082,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:126","6850:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"6835:32:126"},"referencedDeclaration":72855,"src":"6835:32:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73087,"nodeType":"VariableDeclaration","src":"6919:42:126","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"},"typeName":{"id":73086,"nodeType":"UserDefinedTypeName","pathNode":{"id":73085,"name":"RegistryCommunity","nameLocations":["6919:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":77675,"src":"6919:17:126"},"referencedDeclaration":77675,"src":"6919:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73092,"nodeType":"VariableDeclaration","src":"7028:60:126","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73091,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73088,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73090,"nodeType":"UserDefinedTypeName","pathNode":{"id":73089,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:126","7062:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"7047:23:126"},"referencedDeclaration":72847,"src":"7047:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73096,"nodeType":"VariableDeclaration","src":"7144:53:126","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73095,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73093,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73094,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73101,"nodeType":"VariableDeclaration","src":"7235:57:126","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73100,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73097,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73098,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73099,"nodeType":"ArrayTypeName","src":"7254:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73114,"nodeType":"FunctionDefinition","src":"7496:72:126","nodes":[],"body":{"id":73113,"nodeType":"Block","src":"7566:2:126","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73108,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73103,"src":"7544:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73106,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:126","typeDescriptions":{}}},"id":73109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73111,"kind":"baseConstructorSpecifier","modifierName":{"id":73105,"name":"BaseStrategy","nameLocations":["7523:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:126"},"nodeType":"ModifierInvocation","src":"7523:42:126"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73103,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:126","nodeType":"VariableDeclaration","scope":73114,"src":"7508:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73102,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:126"},"returnParameters":{"id":73112,"nodeType":"ParameterList","parameters":[],"src":"7566:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73198,"nodeType":"FunctionDefinition","src":"7574:1028:126","nodes":[],"body":{"id":73197,"nodeType":"Block","src":"7640:962:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":73122,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"7670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73121,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73124,"nodeType":"ExpressionStatement","src":"7650:28:126"},{"assignments":[73129],"declarations":[{"constant":false,"id":73129,"mutability":"mutable","name":"ip","nameLocation":"7727:2:126","nodeType":"VariableDeclaration","scope":73197,"src":"7688:41:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73128,"nodeType":"UserDefinedTypeName","pathNode":{"id":73127,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:126","7703:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"7688:31:126"},"referencedDeclaration":72883,"src":"7688:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73137,"initialValue":{"arguments":[{"id":73132,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73118,"src":"7743:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73133,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"7751:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:126","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":72883,"src":"7751:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:126","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73138,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8139:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"8139:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:126","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":73141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73140,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:126","typeDescriptions":{}}},"id":73143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73149,"nodeType":"IfStatement","src":"8135:94:126","trueBody":{"id":73148,"nodeType":"Block","src":"8175:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73145,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"8196:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73147,"nodeType":"RevertStatement","src":"8189:29:126"}]}},{"expression":{"id":73155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73150,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"8239:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73152,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8277:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"8277:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73151,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"8259:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77675_$","typeString":"type(contract RegistryCommunity)"}},"id":73154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"src":"8239:59:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73156,"nodeType":"ExpressionStatement","src":"8239:59:126"},{"expression":{"id":73160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73157,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"8308:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73158,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8316:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:126","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72864,"src":"8316:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73161,"nodeType":"ExpressionStatement","src":"8308:16:126"},{"expression":{"id":73165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73162,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"8334:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73163,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8345:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:126","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72866,"src":"8345:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73166,"nodeType":"ExpressionStatement","src":"8334:22:126"},{"expression":{"id":73170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73167,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"8366:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73168,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8375:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:126","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72868,"src":"8375:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73171,"nodeType":"ExpressionStatement","src":"8366:18:126"},{"expression":{"id":73175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73172,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"8394:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73173,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8409:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:126","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72873,"src":"8409:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"id":73176,"nodeType":"ExpressionStatement","src":"8394:30:126"},{"expression":{"id":73180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73177,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"8434:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73178,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8448:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:126","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"8448:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"id":73181,"nodeType":"ExpressionStatement","src":"8434:28:126"},{"expression":{"id":73185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73182,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"8472:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73183,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8486:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:126","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72879,"src":"8486:14:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73186,"nodeType":"ExpressionStatement","src":"8472:28:126"},{"expression":{"id":73190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73187,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"8510:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73188,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8532:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:126","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73191,"nodeType":"ExpressionStatement","src":"8510:43:126"},{"eventCall":{"arguments":[{"id":73193,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"8583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73194,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8592:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73192,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72970,"src":"8569:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$72883_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73196,"nodeType":"EmitStatement","src":"8564:31:126"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:126","parameters":{"id":73119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73116,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:126","nodeType":"VariableDeclaration","scope":73198,"src":"7594:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73115,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73118,"mutability":"mutable","name":"_data","nameLocation":"7624:5:126","nodeType":"VariableDeclaration","scope":73198,"src":"7611:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73117,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:126"},"returnParameters":{"id":73120,"nodeType":"ParameterList","parameters":[],"src":"7640:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73202,"nodeType":"FunctionDefinition","src":"8773:83:126","nodes":[],"body":{"id":73201,"nodeType":"Block","src":"8801:55:126","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73199,"nodeType":"ParameterList","parameters":[],"src":"8781:2:126"},"returnParameters":{"id":73200,"nodeType":"ParameterList","parameters":[],"src":"8801:0:126"},"scope":75561,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73206,"nodeType":"FunctionDefinition","src":"8862:135:126","nodes":[],"body":{"id":73205,"nodeType":"Block","src":"8889:108:126","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73203,"nodeType":"ParameterList","parameters":[],"src":"8869:2:126"},"returnParameters":{"id":73204,"nodeType":"ParameterList","parameters":[],"src":"8889:0:126"},"scope":75561,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73227,"nodeType":"FunctionDefinition","src":"9003:202:126","nodes":[],"body":{"id":73226,"nodeType":"Block","src":"9094:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73214,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73208,"src":"9111:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73216,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"9131:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":73215,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:126","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":73218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:126","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73208,"src":"9186:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73220,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75561_$","typeString":"type(contract super CVStrategy)"}},"id":73221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:126","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58096,"src":"9162:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73213,"id":73225,"nodeType":"Return","src":"9104:94:126"}]},"baseFunctions":[58096],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:126","overrides":{"id":73210,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:126"},"parameters":{"id":73209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73208,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:126","nodeType":"VariableDeclaration","scope":73227,"src":"9030:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:126"},"returnParameters":{"id":73213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73227,"src":"9088:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73211,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:126"},"scope":75561,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73268,"nodeType":"FunctionDefinition","src":"9376:377:126","nodes":[],"body":{"id":73267,"nodeType":"Block","src":"9435:318:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73232,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73229,"src":"9449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:126","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":73234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73233,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:126","typeDescriptions":{}}},"id":73236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73242,"nodeType":"IfStatement","src":"9445:77:126","trueBody":{"id":73241,"nodeType":"Block","src":"9472:50:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73238,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72895,"src":"9493:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73240,"nodeType":"RevertStatement","src":"9486:25:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73245,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9543:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":73244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73243,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:126","typeDescriptions":{}}},"id":73246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:126","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":73248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73247,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:126","typeDescriptions":{}}},"id":73250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73256,"nodeType":"IfStatement","src":"9531:100:126","trueBody":{"id":73255,"nodeType":"Block","src":"9577:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73252,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"9598:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73254,"nodeType":"RevertStatement","src":"9591:29:126"}]}},{"condition":{"id":73261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:126","subExpression":{"arguments":[{"id":73259,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73229,"src":"9672:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73257,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9645:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:126","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"9645:26:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73266,"nodeType":"IfStatement","src":"9640:93:126","trueBody":{"id":73265,"nodeType":"Block","src":"9682:51:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73262,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72897,"src":"9703:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73264,"nodeType":"RevertStatement","src":"9696:26:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:126","parameters":{"id":73230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73229,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:126","nodeType":"VariableDeclaration","scope":73268,"src":"9405:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73228,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:126"},"returnParameters":{"id":73231,"nodeType":"ParameterList","parameters":[],"src":"9435:0:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73284,"nodeType":"FunctionDefinition","src":"9759:162:126","nodes":[],"body":{"id":73283,"nodeType":"Block","src":"9805:116:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:126","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73275,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9841:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":73274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73273,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:126","typeDescriptions":{}}},"id":73276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73282,"nodeType":"IfStatement","src":"9815:100:126","trueBody":{"id":73281,"nodeType":"Block","src":"9861:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73278,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72955,"src":"9882:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73280,"nodeType":"RevertStatement","src":"9875:29:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:126","parameters":{"id":73269,"nodeType":"ParameterList","parameters":[],"src":"9789:2:126"},"returnParameters":{"id":73270,"nodeType":"ParameterList","parameters":[],"src":"9805:0:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73300,"nodeType":"FunctionDefinition","src":"9927:132:126","nodes":[],"body":{"id":73299,"nodeType":"Block","src":"9986:73:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73289,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73286,"src":"10000:8:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:126","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":73291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73290,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:126","typeDescriptions":{}}},"id":73293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73298,"nodeType":"IfStatement","src":"9996:56:126","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73295,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"10031:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73297,"nodeType":"RevertStatement","src":"10024:28:126"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:126","parameters":{"id":73287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73286,"mutability":"mutable","name":"_address","nameLocation":"9962:8:126","nodeType":"VariableDeclaration","scope":73300,"src":"9954:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73285,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:126"},"returnParameters":{"id":73288,"nodeType":"ParameterList","parameters":[],"src":"9986:0:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73475,"nodeType":"FunctionDefinition","src":"10385:1945:126","nodes":[],"body":{"id":73474,"nodeType":"Block","src":"10486:1844:126","nodes":[],"statements":[{"expression":{"id":73310,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"10541:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73311,"nodeType":"ExpressionStatement","src":"10541:5:126"},{"assignments":[73316],"declarations":[{"constant":false,"id":73316,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:126","nodeType":"VariableDeclaration","scope":73474,"src":"10556:45:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73315,"nodeType":"UserDefinedTypeName","pathNode":{"id":73314,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:126","10571:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72814,"src":"10556:29:126"},"referencedDeclaration":72814,"src":"10556:29:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73324,"initialValue":{"arguments":[{"id":73319,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"10615:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73320,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"10623:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:126","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"10623:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73322,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:126","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73325,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"10769:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:126","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":72804,"src":"10769:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73333,"nodeType":"IfStatement","src":"10765:78:126","trueBody":{"id":73332,"nodeType":"Block","src":"10791:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73329,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"10812:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73331,"nodeType":"RevertStatement","src":"10805:27:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73334,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"10919:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73335,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"10935:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72797,"src":"10935:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72797_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72795,"src":"10935:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73385,"nodeType":"IfStatement","src":"10915:721:126","trueBody":{"id":73384,"nodeType":"Block","src":"10972:664:126","statements":[{"expression":{"arguments":[{"expression":{"id":73340,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11004:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11004:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73339,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73300,"src":"10986:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73343,"nodeType":"ExpressionStatement","src":"10986:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73344,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11091:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11091:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:126","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":73347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73346,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:126","typeDescriptions":{}}},"id":73349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73355,"nodeType":"IfStatement","src":"11087:102:126","trueBody":{"id":73354,"nodeType":"Block","src":"11130:59:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73351,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"11155:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73353,"nodeType":"RevertStatement","src":"11148:26:126"}]}},{"assignments":[73357],"declarations":[{"constant":false,"id":73357,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:126","nodeType":"VariableDeclaration","scope":73384,"src":"11202:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73356,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73365,"initialValue":{"expression":{"arguments":[{"id":73362,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73358,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}},"id":73359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:126","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73366,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11276:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11276:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73368,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73357,"src":"11303:9:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73374,"nodeType":"IfStatement","src":"11272:234:126","trueBody":{"id":73373,"nodeType":"Block","src":"11314:192:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73370,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"11474:15:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73372,"nodeType":"RevertStatement","src":"11467:24:126"}]}},{"condition":{"arguments":[{"expression":{"id":73376,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11539:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"11539:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73375,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"11523:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73383,"nodeType":"IfStatement","src":"11519:107:126","trueBody":{"id":73382,"nodeType":"Block","src":"11566:60:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73379,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"11591:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73381,"nodeType":"RevertStatement","src":"11584:27:126"}]}}]}},{"assignments":[73387],"declarations":[{"constant":false,"id":73387,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:126","nodeType":"VariableDeclaration","scope":73474,"src":"11645:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73386,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73390,"initialValue":{"id":73389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:126","subExpression":{"id":73388,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73066,"src":"11668:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:126"},{"assignments":[73395],"declarations":[{"constant":false,"id":73395,"mutability":"mutable","name":"p","nameLocation":"11725:1:126","nodeType":"VariableDeclaration","scope":73474,"src":"11693:33:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73394,"nodeType":"UserDefinedTypeName","pathNode":{"id":73393,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:126","11708:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"11693:23:126"},"referencedDeclaration":72847,"src":"11693:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73399,"initialValue":{"baseExpression":{"id":73396,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"11729:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73398,"indexExpression":{"id":73397,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"11739:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:126"},{"expression":{"id":73404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73400,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11761:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"11761:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"11776:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73405,"nodeType":"ExpressionStatement","src":"11761:25:126"},{"expression":{"id":73410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73406,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11796:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"11796:11:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73409,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73304,"src":"11810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73411,"nodeType":"ExpressionStatement","src":"11796:21:126"},{"expression":{"id":73417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73412,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11827:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"11827:13:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73415,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11843:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11843:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73418,"nodeType":"ExpressionStatement","src":"11827:36:126"},{"expression":{"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73419,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11873:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"11873:16:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73422,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11892:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11892:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73425,"nodeType":"ExpressionStatement","src":"11873:42:126"},{"expression":{"id":73431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73426,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11925:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"11925:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73429,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11945:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"11945:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73432,"nodeType":"ExpressionStatement","src":"11925:44:126"},{"expression":{"id":73439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73433,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12030:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"12030:16:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73436,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"12049:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"12049:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"12049:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73440,"nodeType":"ExpressionStatement","src":"12030:55:126"},{"expression":{"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12095:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"12095:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73444,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:126","memberName":"number","nodeType":"MemberAccess","src":"12109:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73447,"nodeType":"ExpressionStatement","src":"12095:26:126"},{"expression":{"id":73452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73448,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12131:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"12131:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73453,"nodeType":"ExpressionStatement","src":"12131:20:126"},{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73454,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12197:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72846,"src":"12197:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73457,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12210:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72813,"src":"12210:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73460,"nodeType":"ExpressionStatement","src":"12197:30:126"},{"eventCall":{"arguments":[{"id":73462,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73463,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"12267:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73461,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72984,"src":"12243:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73465,"nodeType":"EmitStatement","src":"12238:40:126"},{"expression":{"arguments":[{"arguments":[{"id":73470,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"12311:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73468,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:126","typeDescriptions":{}}},"id":73471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73466,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:126","typeDescriptions":{}}},"id":73472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73309,"id":73473,"nodeType":"Return","src":"12288:35:126"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:126","overrides":{"id":73306,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:126"},"parameters":{"id":73305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73302,"mutability":"mutable","name":"_data","nameLocation":"10426:5:126","nodeType":"VariableDeclaration","scope":73475,"src":"10413:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73301,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73304,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:126","nodeType":"VariableDeclaration","scope":73475,"src":"10433:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73303,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:126"},"returnParameters":{"id":73309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73475,"src":"10477:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73307,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73505,"nodeType":"FunctionDefinition","src":"12336:253:126","nodes":[],"body":{"id":73504,"nodeType":"Block","src":"12371:218:126","nodes":[],"statements":[{"assignments":[73479],"declarations":[{"constant":false,"id":73479,"mutability":"mutable","name":"member","nameLocation":"12389:6:126","nodeType":"VariableDeclaration","scope":73504,"src":"12381:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73478,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73482,"initialValue":{"expression":{"id":73480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:126"},{"expression":{"arguments":[{"id":73486,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73479,"src":"12461:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73489,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73487,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:126","typeDescriptions":{}}},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73483,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12418:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:126","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76634,"src":"12418:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73492,"nodeType":"ExpressionStatement","src":"12418:65:126"},{"expression":{"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73493,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"12493:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73496,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73479,"src":"12560:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73499,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73497,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:126","typeDescriptions":{}}},"id":73500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73494,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12517:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"12517:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73503,"nodeType":"ExpressionStatement","src":"12493:89:126"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:126","parameters":{"id":73476,"nodeType":"ParameterList","parameters":[],"src":"12359:2:126"},"returnParameters":{"id":73477,"nodeType":"ParameterList","parameters":[],"src":"12371:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73514,"nodeType":"FunctionDefinition","src":"12595:81:126","nodes":[],"body":{"id":73513,"nodeType":"Block","src":"12630:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73509,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73508,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"12640:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73512,"nodeType":"ExpressionStatement","src":"12640:29:126"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:126","parameters":{"id":73506,"nodeType":"ParameterList","parameters":[],"src":"12620:2:126"},"returnParameters":{"id":73507,"nodeType":"ParameterList","parameters":[],"src":"12630:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73527,"nodeType":"FunctionDefinition","src":"12682:128:126","nodes":[],"body":{"id":73526,"nodeType":"Block","src":"12734:76:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73519,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"12744:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73521,"nodeType":"ExpressionStatement","src":"12744:23:126"},{"expression":{"arguments":[{"id":73523,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73516,"src":"12795:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73522,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"12777:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73525,"nodeType":"ExpressionStatement","src":"12777:26:126"}]},"baseFunctions":[72768],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:126","parameters":{"id":73517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73516,"mutability":"mutable","name":"_member","nameLocation":"12716:7:126","nodeType":"VariableDeclaration","scope":73527,"src":"12708:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73515,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:126"},"returnParameters":{"id":73518,"nodeType":"ParameterList","parameters":[],"src":"12734:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73562,"nodeType":"FunctionDefinition","src":"12816:351:126","nodes":[],"body":{"id":73561,"nodeType":"Block","src":"12869:298:126","nodes":[],"statements":[{"expression":{"id":73541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73532,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"12879:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73535,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"12946:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73538,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:126","typeDescriptions":{}}},"id":73539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73533,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12903:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"12903:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73542,"nodeType":"ExpressionStatement","src":"12879:90:126"},{"expression":{"arguments":[{"id":73546,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13024:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73549,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73547,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:126","typeDescriptions":{}}},"id":73550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73543,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12979:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:126","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76693,"src":"12979:44:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73552,"nodeType":"ExpressionStatement","src":"12979:68:126"},{"expression":{"arguments":[{"id":73554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13111:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73553,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74436,"src":"13102:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73556,"nodeType":"ExpressionStatement","src":"13102:17:126"},{"eventCall":{"arguments":[{"id":73558,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73557,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73020,"src":"13134:17:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"EmitStatement","src":"13129:31:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:126","parameters":{"id":73530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"_member","nameLocation":"12851:7:126","nodeType":"VariableDeclaration","scope":73562,"src":"12843:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73528,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:126"},"returnParameters":{"id":73531,"nodeType":"ParameterList","parameters":[],"src":"12869:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73646,"nodeType":"FunctionDefinition","src":"13173:958:126","nodes":[],"body":{"id":73645,"nodeType":"Block","src":"13264:867:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73571,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"13319:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73573,"nodeType":"ExpressionStatement","src":"13319:23:126"},{"assignments":[73575],"declarations":[{"constant":false,"id":73575,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:126","nodeType":"VariableDeclaration","scope":73645,"src":"13352:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73574,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73577,"initialValue":{"hexValue":"30","id":73576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73578,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13394:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73579,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13409:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13409:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"13409:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73590,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13539:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73591,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13554:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13554:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72799,"src":"13554:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73603,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13687:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73604,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13702:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13702:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:126","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72801,"src":"13702:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73616,"nodeType":"IfStatement","src":"13683:148:126","trueBody":{"id":73615,"nodeType":"Block","src":"13740:91:126","statements":[{"expression":{"id":73613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73608,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13754:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73610,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13796:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73611,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13805:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73609,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73859,"src":"13773:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73614,"nodeType":"ExpressionStatement","src":"13754:66:126"}]}},"id":73617,"nodeType":"IfStatement","src":"13535:296:126","trueBody":{"id":73602,"nodeType":"Block","src":"13589:88:126","statements":[{"expression":{"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73595,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13603:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73597,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13642:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73598,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13651:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73596,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73775,"src":"13622:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73601,"nodeType":"ExpressionStatement","src":"13603:63:126"}]}},"id":73618,"nodeType":"IfStatement","src":"13390:441:126","trueBody":{"id":73589,"nodeType":"Block","src":"13447:82:126","statements":[{"expression":{"id":73587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73583,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13461:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73585,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13503:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73584,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73712,"src":"13480:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73588,"nodeType":"ExpressionStatement","src":"13461:57:126"}]}},{"assignments":[73620],"declarations":[{"constant":false,"id":73620,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:126","nodeType":"VariableDeclaration","scope":73645,"src":"13840:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73619,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73629,"initialValue":{"arguments":[{"id":73623,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13905:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73626,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73624,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:126","typeDescriptions":{}}},"id":73627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73621,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"13859:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76168,"src":"13859:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:126"},{"condition":{"id":73630,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73620,"src":"13942:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73636,"nodeType":"IfStatement","src":"13938:82:126","trueBody":{"id":73635,"nodeType":"Block","src":"13955:65:126","statements":[{"expression":{"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73631,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"13969:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73632,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13993:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73634,"nodeType":"ExpressionStatement","src":"13969:40:126"}]}},{"eventCall":{"arguments":[{"id":73638,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"14049:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73639,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"14058:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73640,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"14074:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73637,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72996,"src":"14034:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73642,"nodeType":"EmitStatement","src":"14029:62:126"},{"expression":{"id":73643,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"14108:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73570,"id":73644,"nodeType":"Return","src":"14101:23:126"}]},"baseFunctions":[72777],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:126","parameters":{"id":73567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73564,"mutability":"mutable","name":"_member","nameLocation":"13204:7:126","nodeType":"VariableDeclaration","scope":73646,"src":"13196:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73563,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73566,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:126","nodeType":"VariableDeclaration","scope":73646,"src":"13213:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73565,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:126"},"returnParameters":{"id":73570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73646,"src":"13255:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73568,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73702,"nodeType":"FunctionDefinition","src":"14137:681:126","nodes":[],"body":{"id":73701,"nodeType":"Block","src":"14230:588:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73655,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"14240:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73657,"nodeType":"ExpressionStatement","src":"14240:23:126"},{"assignments":[73659],"declarations":[{"constant":false,"id":73659,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:126","nodeType":"VariableDeclaration","scope":73701,"src":"14319:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73658,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73661,"initialValue":{"hexValue":"30","id":73660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73662,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"14361:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73663,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"14376:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"14376:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"14376:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73667,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"14416:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73668,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"14431:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"14431:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72799,"src":"14431:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73687,"nodeType":"Block","src":"14562:93:126","statements":[{"expression":{"id":73685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73680,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14576:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73682,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73648,"src":"14618:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73683,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14627:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73681,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73963,"src":"14595:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73686,"nodeType":"ExpressionStatement","src":"14576:68:126"}]},"id":73688,"nodeType":"IfStatement","src":"14357:298:126","trueBody":{"id":73679,"nodeType":"Block","src":"14466:90:126","statements":[{"expression":{"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73673,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14480:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73675,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14528:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73674,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73869,"src":"14499:28:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73678,"nodeType":"ExpressionStatement","src":"14480:65:126"}]}},{"expression":{"id":73691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73689,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"14664:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73690,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14688:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73692,"nodeType":"ExpressionStatement","src":"14664:40:126"},{"eventCall":{"arguments":[{"id":73694,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73648,"src":"14734:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73695,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14743:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73696,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14761:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73693,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73004,"src":"14719:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73698,"nodeType":"EmitStatement","src":"14714:64:126"},{"expression":{"id":73699,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14795:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73654,"id":73700,"nodeType":"Return","src":"14788:23:126"}]},"baseFunctions":[72786],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:126","parameters":{"id":73651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73648,"mutability":"mutable","name":"_member","nameLocation":"14168:7:126","nodeType":"VariableDeclaration","scope":73702,"src":"14160:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73647,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73650,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:126","nodeType":"VariableDeclaration","scope":73702,"src":"14177:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73649,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:126"},"returnParameters":{"id":73654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73702,"src":"14221:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73652,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73712,"nodeType":"FunctionDefinition","src":"14824:126:126","nodes":[],"body":{"id":73711,"nodeType":"Block","src":"14912:38:126","nodes":[],"statements":[{"expression":{"id":73709,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73704,"src":"14929:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73708,"id":73710,"nodeType":"Return","src":"14922:21:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:126","parameters":{"id":73705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73704,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:126","nodeType":"VariableDeclaration","scope":73712,"src":"14856:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73703,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:126"},"returnParameters":{"id":73708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73712,"src":"14903:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73706,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73775,"nodeType":"FunctionDefinition","src":"14956:615:126","nodes":[],"body":{"id":73774,"nodeType":"Block","src":"15058:513:126","nodes":[],"statements":[{"assignments":[73722],"declarations":[{"constant":false,"id":73722,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:126","nodeType":"VariableDeclaration","scope":73774,"src":"15068:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73721,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73724,"initialValue":{"id":73723,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73716,"src":"15095:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:126"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73729,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15153:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73725,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15119:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15119:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73731,"nodeType":"ExpressionStatement","src":"15119:51:126"},{"assignments":[73733],"declarations":[{"constant":false,"id":73733,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:126","nodeType":"VariableDeclaration","scope":73774,"src":"15180:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73732,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73742,"initialValue":{"arguments":[{"id":73736,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73714,"src":"15245:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73737,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:126","typeDescriptions":{}}},"id":73740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73734,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15202:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"15202:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:126"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73747,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15305:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73743,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15278:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15278:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73749,"nodeType":"ExpressionStatement","src":"15278:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73750,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15331:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73751,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15345:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73753,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"15364:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"15364:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73764,"nodeType":"IfStatement","src":"15327:139:126","trueBody":{"id":73763,"nodeType":"Block","src":"15387:79:126","statements":[{"expression":{"id":73761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73756,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15401:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73757,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"15420:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"15420:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73759,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15444:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73762,"nodeType":"ExpressionStatement","src":"15401:54:126"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73769,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15513:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73765,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15475:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15475:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73771,"nodeType":"ExpressionStatement","src":"15475:55:126"},{"expression":{"id":73772,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15548:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73720,"id":73773,"nodeType":"Return","src":"15541:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:126","parameters":{"id":73717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73714,"mutability":"mutable","name":"_member","nameLocation":"14993:7:126","nodeType":"VariableDeclaration","scope":73775,"src":"14985:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73713,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73716,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:126","nodeType":"VariableDeclaration","scope":73775,"src":"15002:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73715,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:126"},"returnParameters":{"id":73720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73775,"src":"15049:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73718,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73859,"nodeType":"FunctionDefinition","src":"15577:730:126","nodes":[],"body":{"id":73858,"nodeType":"Block","src":"15682:625:126","nodes":[],"statements":[{"assignments":[73785],"declarations":[{"constant":false,"id":73785,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:126","nodeType":"VariableDeclaration","scope":73858,"src":"15692:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73784,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73792,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73788,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73777,"src":"15753:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73786,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15713:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77029,"src":"15713:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73790,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"15764:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:126"},{"assignments":[73794],"declarations":[{"constant":false,"id":73794,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:126","nodeType":"VariableDeclaration","scope":73858,"src":"15789:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73793,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73796,"initialValue":{"hexValue":"3138","id":73795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:126"},{"clauses":[{"block":{"id":73817,"nodeType":"Block","src":"15907:52:126","statements":[{"expression":{"id":73815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73810,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"15921:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73813,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73808,"src":"15939:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73811,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:126","typeDescriptions":{}}},"id":73814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73816,"nodeType":"ExpressionStatement","src":"15921:27:126"}]},"errorName":"","id":73818,"nodeType":"TryCatchClause","parameters":{"id":73809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73808,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:126","nodeType":"VariableDeclaration","scope":73818,"src":"15891:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73807,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:126"},"src":"15882:77:126"},{"block":{"id":73825,"nodeType":"Block","src":"15966:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73819,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15980:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"15980:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73824,"nodeType":"ExpressionStatement","src":"15980:36:126"}]},"errorName":"","id":73826,"nodeType":"TryCatchClause","src":"15960:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73800,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15837:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76132,"src":"15837:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73798,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:126","typeDescriptions":{}}},"id":73803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73797,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"15823:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"15823:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73827,"nodeType":"TryStatement","src":"15819:208:126"},{"assignments":[73829],"declarations":[{"constant":false,"id":73829,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:126","nodeType":"VariableDeclaration","scope":73858,"src":"16036:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73828,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73838,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73832,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"16071:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73834,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"16090:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73830,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"16061:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59169_$","typeString":"type(library Math)"}},"id":73831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58673,"src":"16061:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:126"},{"assignments":[73840],"declarations":[{"constant":false,"id":73840,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:126","nodeType":"VariableDeclaration","scope":73858,"src":"16108:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73839,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73849,"initialValue":{"arguments":[{"id":73843,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73777,"src":"16175:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73844,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:126","typeDescriptions":{}}},"id":73847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73841,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16132:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"16132:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:126"},{"assignments":[73851],"declarations":[{"constant":false,"id":73851,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:126","nodeType":"VariableDeclaration","scope":73858,"src":"16209:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73850,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73855,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73852,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73829,"src":"16236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73853,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73840,"src":"16253:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:126"},{"expression":{"id":73856,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"16284:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73783,"id":73857,"nodeType":"Return","src":"16277:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:126","parameters":{"id":73780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73777,"mutability":"mutable","name":"_member","nameLocation":"15617:7:126","nodeType":"VariableDeclaration","scope":73859,"src":"15609:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73776,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73779,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:126","nodeType":"VariableDeclaration","scope":73859,"src":"15626:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73778,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:126"},"returnParameters":{"id":73783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73859,"src":"15673:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73781,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73869,"nodeType":"FunctionDefinition","src":"16313:136:126","nodes":[],"body":{"id":73868,"nodeType":"Block","src":"16409:40:126","nodes":[],"statements":[{"expression":{"id":73866,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73861,"src":"16426:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73865,"id":73867,"nodeType":"Return","src":"16419:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:126","parameters":{"id":73862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73861,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:126","nodeType":"VariableDeclaration","scope":73869,"src":"16351:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73860,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:126"},"returnParameters":{"id":73865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73869,"src":"16400:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73863,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73963,"nodeType":"FunctionDefinition","src":"16455:802:126","nodes":[],"body":{"id":73962,"nodeType":"Block","src":"16562:695:126","nodes":[],"statements":[{"assignments":[73879],"declarations":[{"constant":false,"id":73879,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:126","nodeType":"VariableDeclaration","scope":73962,"src":"16572:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73878,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73881,"initialValue":{"hexValue":"3138","id":73880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:126"},{"clauses":[{"block":{"id":73902,"nodeType":"Block","src":"16690:52:126","statements":[{"expression":{"id":73900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73895,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"16704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73898,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73893,"src":"16722:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73896,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:126","typeDescriptions":{}}},"id":73899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73901,"nodeType":"ExpressionStatement","src":"16704:27:126"}]},"errorName":"","id":73903,"nodeType":"TryCatchClause","parameters":{"id":73894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73893,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:126","nodeType":"VariableDeclaration","scope":73903,"src":"16674:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73892,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:126"},"src":"16665:77:126"},{"block":{"id":73910,"nodeType":"Block","src":"16749:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73904,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16763:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"16763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73909,"nodeType":"ExpressionStatement","src":"16763:36:126"}]},"errorName":"","id":73911,"nodeType":"TryCatchClause","src":"16743:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73885,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16620:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76132,"src":"16620:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73883,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:126","typeDescriptions":{}}},"id":73888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73882,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"16606:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"16606:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73912,"nodeType":"TryStatement","src":"16602:208:126"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":73916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":73917,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73873,"src":"16851:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73913,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16819:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16819:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73919,"nodeType":"ExpressionStatement","src":"16819:49:126"},{"assignments":[73921],"declarations":[{"constant":false,"id":73921,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:126","nodeType":"VariableDeclaration","scope":73962,"src":"16878:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73920,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73928,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73924,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73871,"src":"16942:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73922,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16902:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77029,"src":"16902:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73926,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73873,"src":"16953:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:126"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":73932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":73933,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73921,"src":"17008:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73929,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16979:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16979:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73935,"nodeType":"ExpressionStatement","src":"16979:43:126"},{"assignments":[73937],"declarations":[{"constant":false,"id":73937,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:126","nodeType":"VariableDeclaration","scope":73962,"src":"17032:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73936,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73946,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73940,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73921,"src":"17067:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73942,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"17089:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73938,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"17057:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59169_$","typeString":"type(library Math)"}},"id":73939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58673,"src":"17057:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:126"},{"assignments":[73948],"declarations":[{"constant":false,"id":73948,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:126","nodeType":"VariableDeclaration","scope":73962,"src":"17107:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73947,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73959,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73951,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73871,"src":"17177:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73954,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73952,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:126","typeDescriptions":{}}},"id":73955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73949,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"17134:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"17134:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73957,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73937,"src":"17203:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:126"},{"expression":{"id":73960,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73948,"src":"17234:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73877,"id":73961,"nodeType":"Return","src":"17227:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:126","parameters":{"id":73874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73871,"mutability":"mutable","name":"_member","nameLocation":"16495:7:126","nodeType":"VariableDeclaration","scope":73963,"src":"16487:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73870,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73873,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:126","nodeType":"VariableDeclaration","scope":73963,"src":"16504:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73872,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:126"},"returnParameters":{"id":73877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73963,"src":"16553:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73875,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73972,"nodeType":"FunctionDefinition","src":"17263:99:126","nodes":[],"body":{"id":73971,"nodeType":"Block","src":"17317:45:126","nodes":[],"statements":[{"expression":{"expression":{"id":73968,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"17334:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"17334:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73967,"id":73970,"nodeType":"Return","src":"17327:28:126"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:126","parameters":{"id":73964,"nodeType":"ParameterList","parameters":[],"src":"17284:2:126"},"returnParameters":{"id":73967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73972,"src":"17308:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73965,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73981,"nodeType":"FunctionDefinition","src":"17368:110:126","nodes":[],"body":{"id":73980,"nodeType":"Block","src":"17443:35:126","nodes":[],"statements":[{"expression":{"id":73978,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"17460:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":73977,"id":73979,"nodeType":"Return","src":"17453:18:126"}]},"baseFunctions":[72792],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:126","parameters":{"id":73973,"nodeType":"ParameterList","parameters":[],"src":"17391:2:126"},"returnParameters":{"id":73977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73981,"src":"17415:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73975,"nodeType":"UserDefinedTypeName","pathNode":{"id":73974,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:126","17430:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"17415:26:126"},"referencedDeclaration":72802,"src":"17415:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73992,"nodeType":"FunctionDefinition","src":"17594:226:126","nodes":[],"body":{"id":73991,"nodeType":"Block","src":"17672:148:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73988,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"17737:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73990,"nodeType":"RevertStatement","src":"17730:23:126"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:126","parameters":{"id":73986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73992,"src":"17619:39:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":73983,"nodeType":"UserDefinedTypeName","pathNode":{"id":73982,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:126","17634:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"17619:30:126"},"referencedDeclaration":72852,"src":"17619:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":73984,"nodeType":"ArrayTypeName","src":"17619:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:126"},"returnParameters":{"id":73987,"nodeType":"ParameterList","parameters":[],"src":"17672:0:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74048,"nodeType":"FunctionDefinition","src":"17966:551:126","nodes":[],"body":{"id":74047,"nodeType":"Block","src":"18040:477:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74001,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18070:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74000,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73268,"src":"18050:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74003,"nodeType":"ExpressionStatement","src":"18050:28:126"},{"assignments":[74005],"declarations":[{"constant":false,"id":74005,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:126","nodeType":"VariableDeclaration","scope":74047,"src":"18134:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74004,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74014,"initialValue":{"arguments":[{"id":74008,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18211:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":74010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74009,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:126","typeDescriptions":{}}},"id":74012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74006,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"18165:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76168,"src":"18165:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:126"},{"condition":{"id":74016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:126","subExpression":{"id":74015,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74005,"src":"18249:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74021,"nodeType":"IfStatement","src":"18244:78:126","trueBody":{"id":74020,"nodeType":"Block","src":"18274:48:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74017,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72899,"src":"18295:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74019,"nodeType":"RevertStatement","src":"18288:23:126"}]}},{"assignments":[74027],"declarations":[{"constant":false,"id":74027,"mutability":"mutable","name":"pv","nameLocation":"18371:2:126","nodeType":"VariableDeclaration","scope":74047,"src":"18331:42:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74025,"nodeType":"UserDefinedTypeName","pathNode":{"id":74024,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:126","18346:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"18331:30:126"},"referencedDeclaration":72852,"src":"18331:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74026,"nodeType":"ArrayTypeName","src":"18331:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74036,"initialValue":{"arguments":[{"id":74030,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73994,"src":"18387:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74031,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"18395:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:126","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":72852,"src":"18395:30:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$72852_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74034,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:126","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:126"},{"expression":{"arguments":[{"id":74038,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18464:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74039,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74027,"src":"18473:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74037,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74738,"src":"18439:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74041,"nodeType":"ExpressionStatement","src":"18439:37:126"},{"expression":{"arguments":[{"id":74043,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18498:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74044,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74027,"src":"18507:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74042,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75025,"src":"18486:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74046,"nodeType":"ExpressionStatement","src":"18486:24:126"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:126","overrides":{"id":73998,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:126"},"parameters":{"id":73997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73994,"mutability":"mutable","name":"_data","nameLocation":"17998:5:126","nodeType":"VariableDeclaration","scope":74048,"src":"17985:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73993,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73996,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:126","nodeType":"VariableDeclaration","scope":74048,"src":"18005:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73995,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:126"},"returnParameters":{"id":73999,"nodeType":"ParameterList","parameters":[],"src":"18040:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74204,"nodeType":"FunctionDefinition","src":"18773:1756:126","nodes":[],"body":{"id":74203,"nodeType":"Block","src":"18859:1670:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74059,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74053,"src":"18952:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:126","memberName":"length","nodeType":"MemberAccess","src":"18952:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74067,"nodeType":"IfStatement","src":"18948:76:126","trueBody":{"id":74066,"nodeType":"Block","src":"18971:53:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74063,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72935,"src":"18992:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74065,"nodeType":"RevertStatement","src":"18985:28:126"}]}},{"assignments":[74069],"declarations":[{"constant":false,"id":74069,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:126","nodeType":"VariableDeclaration","scope":74203,"src":"19034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74068,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74077,"initialValue":{"arguments":[{"id":74072,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74053,"src":"19066:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74073,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:126","typeDescriptions":{}}}],"id":74075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74070,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:126","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74078,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19098:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74085,"nodeType":"IfStatement","src":"19094:77:126","trueBody":{"id":74084,"nodeType":"Block","src":"19115:56:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74081,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72937,"src":"19136:22:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74083,"nodeType":"RevertStatement","src":"19129:31:126"}]}},{"assignments":[74090],"declarations":[{"constant":false,"id":74090,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:126","nodeType":"VariableDeclaration","scope":74203,"src":"19180:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74089,"nodeType":"UserDefinedTypeName","pathNode":{"id":74088,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:126","19195:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"19180:23:126"},"referencedDeclaration":72847,"src":"19180:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74094,"initialValue":{"baseExpression":{"id":74091,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"19223:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74093,"indexExpression":{"id":74092,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19233:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":74099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74095,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"19259:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74096,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"19275:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72797,"src":"19275:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72797_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72795,"src":"19275:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74202,"nodeType":"IfStatement","src":"19255:1208:126","trueBody":{"id":74201,"nodeType":"Block","src":"19312:1151:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74100,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19330:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"19330:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74102,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19353:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74109,"nodeType":"IfStatement","src":"19326:108:126","trueBody":{"id":74108,"nodeType":"Block","src":"19365:69:126","statements":[{"errorCall":{"arguments":[{"id":74105,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19408:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74104,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"19390:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74107,"nodeType":"RevertStatement","src":"19383:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19452:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19452:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74112,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74122,"nodeType":"IfStatement","src":"19448:152:126","trueBody":{"id":74121,"nodeType":"Block","src":"19491:109:126","statements":[{"errorCall":{"arguments":[{"id":74115,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19536:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74116,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19548:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19548:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74118,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74114,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72963,"src":"19516:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74120,"nodeType":"RevertStatement","src":"19509:76:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"id":74128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74123,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19618:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"19618:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74125,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"19645:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"19645:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"19645:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74134,"nodeType":"IfStatement","src":"19614:138:126","trueBody":{"id":74133,"nodeType":"Block","src":"19683:69:126","statements":[{"errorCall":{"arguments":[{"id":74130,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19726:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74129,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"19708:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74132,"nodeType":"RevertStatement","src":"19701:36:126"}]}},{"assignments":[74136],"declarations":[{"constant":false,"id":74136,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:126","nodeType":"VariableDeclaration","scope":74201,"src":"19766:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74135,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74140,"initialValue":{"arguments":[{"id":74138,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19816:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74137,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"19791:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:126"},{"assignments":[74142],"declarations":[{"constant":false,"id":74142,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:126","nodeType":"VariableDeclaration","scope":74201,"src":"19841:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74141,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74147,"initialValue":{"arguments":[{"expression":{"id":74144,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19880:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19880:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74143,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"19861:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74148,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74136,"src":"19924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74149,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74142,"src":"19941:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74151,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19954:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19954:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74160,"nodeType":"IfStatement","src":"19920:137:126","trueBody":{"id":74159,"nodeType":"Block","src":"19984:73:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74156,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"20009:31:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74158,"nodeType":"RevertStatement","src":"20002:40:126"}]}},{"assignments":[74165],"declarations":[{"constant":false,"id":74165,"mutability":"mutable","name":"pool","nameLocation":"20089:4:126","nodeType":"VariableDeclaration","scope":74201,"src":"20071:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74164,"nodeType":"UserDefinedTypeName","pathNode":{"id":74163,"name":"IAllo.Pool","nameLocations":["20071:5:126","20077:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:126"},"referencedDeclaration":2319,"src":"20071:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74170,"initialValue":{"arguments":[{"id":74168,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74166,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:126"},{"expression":{"id":74174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74171,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74172,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20145:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20145:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74175,"nodeType":"ExpressionStatement","src":"20131:38:126"},{"expression":{"arguments":[{"expression":{"id":74177,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"20207:4:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74179,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20219:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"20219:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74181,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20241:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20241:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74176,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74184,"nodeType":"ExpressionStatement","src":"20191:75:126"},{"expression":{"id":74191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74185,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20297:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"20297:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74188,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"20323:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"20323:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:126","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":72819,"src":"20323:38:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74192,"nodeType":"ExpressionStatement","src":"20297:64:126"},{"eventCall":{"arguments":[{"id":74194,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"20393:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74195,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20405:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"20405:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20427:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20427:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74193,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[72978,2858],"referencedDeclaration":72978,"src":"20381:11:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74200,"nodeType":"EmitStatement","src":"20376:76:126"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:126","overrides":{"id":74057,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:126"},"parameters":{"id":74056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74204,"src":"18794:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74049,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74050,"nodeType":"ArrayTypeName","src":"18794:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74053,"mutability":"mutable","name":"_data","nameLocation":"18825:5:126","nodeType":"VariableDeclaration","scope":74204,"src":"18812:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74052,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74204,"src":"18832:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74054,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:126"},"returnParameters":{"id":74058,"nodeType":"ParameterList","parameters":[],"src":"18859:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74258,"nodeType":"FunctionDefinition","src":"20535:735:126","nodes":[],"body":{"id":74257,"nodeType":"Block","src":"20624:646:126","nodes":[],"statements":[{"assignments":[74215],"declarations":[{"constant":false,"id":74215,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:126","nodeType":"VariableDeclaration","scope":74257,"src":"20634:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74214,"nodeType":"UserDefinedTypeName","pathNode":{"id":74213,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:126","20649:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"20634:23:126"},"referencedDeclaration":72847,"src":"20634:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74219,"initialValue":{"baseExpression":{"id":74216,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"20677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74218,"indexExpression":{"id":74217,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74206,"src":"20687:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:126"},{"assignments":[74221,74223],"declarations":[{"constant":false,"id":74221,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:126","nodeType":"VariableDeclaration","scope":74257,"src":"20784:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74220,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74223,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:126","nodeType":"VariableDeclaration","scope":74257,"src":"20808:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74222,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74229,"initialValue":{"arguments":[{"id":74225,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20877:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20887:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"20887:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74224,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75400,"src":"20843:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74230,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"20924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74233,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20947:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74243,"nodeType":"IfStatement","src":"20920:110:126","trueBody":{"id":74242,"nodeType":"Block","src":"20965:65:126","statements":[{"expression":{"id":74240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74237,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"20979:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74238,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20996:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"20996:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74241,"nodeType":"ExpressionStatement","src":"20979:40:126"}]}},{"assignments":[74245],"declarations":[{"constant":false,"id":74245,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:126","nodeType":"VariableDeclaration","scope":74257,"src":"21039:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74244,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74250,"initialValue":{"arguments":[{"expression":{"id":74247,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"21078:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"21078:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74246,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"21059:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:126"},{"expression":{"id":74255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74251,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74209,"src":"21220:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74252,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"21236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74253,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74245,"src":"21254:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74256,"nodeType":"ExpressionStatement","src":"21220:43:126"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:126","parameters":{"id":74207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74206,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:126","nodeType":"VariableDeclaration","scope":74258,"src":"20563:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74205,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:126"},"returnParameters":{"id":74210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74209,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:126","nodeType":"VariableDeclaration","scope":74258,"src":"20604:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74208,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74280,"nodeType":"FunctionDefinition","src":"21560:220:126","nodes":[],"body":{"id":74279,"nodeType":"Block","src":"21651:129:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74267,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74260,"src":"21711:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:126","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":74269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74268,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:126","typeDescriptions":{}}},"id":74271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74275,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:126","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:126","trueExpression":{"expression":{"id":74273,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:126","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74266,"id":74278,"nodeType":"Return","src":"21704:69:126"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:126","overrides":{"id":74262,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:126"},"parameters":{"id":74261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74260,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:126","nodeType":"VariableDeclaration","scope":74280,"src":"21589:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74259,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:126"},"returnParameters":{"id":74266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74280,"src":"21643:6:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74264,"nodeType":"UserDefinedTypeName","pathNode":{"id":74263,"name":"Status","nameLocations":["21643:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:126"},"referencedDeclaration":2815,"src":"21643:6:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74299,"nodeType":"FunctionDefinition","src":"21909:288:126","nodes":[],"body":{"id":74298,"nodeType":"Block","src":"22019:178:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74295,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"22079:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74297,"nodeType":"RevertStatement","src":"22072:23:126"}]},"baseFunctions":[3687],"documentation":{"id":74281,"nodeType":"StructuredDocumentation","src":"21786:118:126","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:126","overrides":{"id":74289,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:126"},"parameters":{"id":74288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21929:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74282,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74283,"nodeType":"ArrayTypeName","src":"21929:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21947:14:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74285,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74286,"nodeType":"ArrayTypeName","src":"21947:7:126","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:126"},"returnParameters":{"id":74294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21995:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74291,"nodeType":"UserDefinedTypeName","pathNode":{"id":74290,"name":"PayoutSummary","nameLocations":["21995:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:126"},"referencedDeclaration":2820,"src":"21995:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74292,"nodeType":"ArrayTypeName","src":"21995:15:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74318,"nodeType":"FunctionDefinition","src":"22203:264:126","nodes":[],"body":{"id":74317,"nodeType":"Block","src":"22355:112:126","nodes":[],"statements":[{"expression":{"id":74310,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74303,"src":"22408:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74311,"nodeType":"ExpressionStatement","src":"22408:5:126"},{"expression":{"arguments":[{"id":74313,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74301,"src":"22444:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74312,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74309,"id":74316,"nodeType":"Return","src":"22423:37:126"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:126","overrides":{"id":74305,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:126"},"parameters":{"id":74304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74301,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:126","nodeType":"VariableDeclaration","scope":74318,"src":"22223:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74300,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74303,"mutability":"mutable","name":"_data","nameLocation":"22258:5:126","nodeType":"VariableDeclaration","scope":74318,"src":"22245:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74302,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:126"},"returnParameters":{"id":74309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74318,"src":"22329:20:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74307,"nodeType":"UserDefinedTypeName","pathNode":{"id":74306,"name":"PayoutSummary","nameLocations":["22329:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:126"},"referencedDeclaration":2820,"src":"22329:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74329,"nodeType":"FunctionDefinition","src":"22473:127:126","nodes":[],"body":{"id":74328,"nodeType":"Block","src":"22550:50:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74325,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74320,"src":"22585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74324,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72988,"src":"22565:19:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74327,"nodeType":"EmitStatement","src":"22560:33:126"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:126","overrides":{"id":74322,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:126"},"parameters":{"id":74321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74320,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:126","nodeType":"VariableDeclaration","scope":74329,"src":"22507:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74319,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:126"},"returnParameters":{"id":74323,"nodeType":"ParameterList","parameters":[],"src":"22550:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74348,"nodeType":"FunctionDefinition","src":"22695:191:126","nodes":[],"body":{"id":74347,"nodeType":"Block","src":"22780:106:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74337,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74331,"src":"22840:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:126","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":74339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74338,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:126","typeDescriptions":{}}},"id":74341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:126","trueExpression":{"hexValue":"66616c7365","id":74343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74336,"id":74346,"nodeType":"Return","src":"22833:46:126"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:126","overrides":{"id":74333,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:126"},"parameters":{"id":74332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74331,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:126","nodeType":"VariableDeclaration","scope":74348,"src":"22722:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74330,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:126"},"returnParameters":{"id":74336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74348,"src":"22774:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74334,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74358,"nodeType":"FunctionDefinition","src":"22892:86:126","nodes":[],"body":{"id":74357,"nodeType":"Block","src":"22938:40:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74354,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74350,"src":"22963:7:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74353,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74356,"nodeType":"ExpressionStatement","src":"22948:23:126"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:126","parameters":{"id":74351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74350,"mutability":"mutable","name":"_active","nameLocation":"22920:7:126","nodeType":"VariableDeclaration","scope":74358,"src":"22915:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74349,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:126"},"returnParameters":{"id":74352,"nodeType":"ParameterList","parameters":[],"src":"22938:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74436,"nodeType":"FunctionDefinition","src":"22984:729:126","nodes":[],"body":{"id":74435,"nodeType":"Block","src":"23028:685:126","nodes":[],"statements":[{"assignments":[74367],"declarations":[{"constant":false,"id":74367,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:126","nodeType":"VariableDeclaration","scope":74435,"src":"23086:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74365,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74366,"nodeType":"ArrayTypeName","src":"23086:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74371,"initialValue":{"baseExpression":{"id":74368,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"23118:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74370,"indexExpression":{"id":74369,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23139:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:126"},{"body":{"id":74433,"nodeType":"Block","src":"23207:500:126","statements":[{"assignments":[74384],"declarations":[{"constant":false,"id":74384,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:126","nodeType":"VariableDeclaration","scope":74433,"src":"23221:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74383,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74388,"initialValue":{"baseExpression":{"id":74385,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74367,"src":"23242:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74387,"indexExpression":{"id":74386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23255:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:126"},{"assignments":[74393],"declarations":[{"constant":false,"id":74393,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:126","nodeType":"VariableDeclaration","scope":74433,"src":"23271:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74392,"nodeType":"UserDefinedTypeName","pathNode":{"id":74391,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:126","23286:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"23271:23:126"},"referencedDeclaration":72847,"src":"23271:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74397,"initialValue":{"baseExpression":{"id":74394,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"23314:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74396,"indexExpression":{"id":74395,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74384,"src":"23324:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:126"},{"condition":{"arguments":[{"id":74399,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74384,"src":"23368:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74398,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"23353:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74432,"nodeType":"IfStatement","src":"23349:348:126","trueBody":{"id":74431,"nodeType":"Block","src":"23381:316:126","statements":[{"assignments":[74402],"declarations":[{"constant":false,"id":74402,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:126","nodeType":"VariableDeclaration","scope":74431,"src":"23399:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74401,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74407,"initialValue":{"baseExpression":{"expression":{"id":74403,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23422:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"23422:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74406,"indexExpression":{"id":74405,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:126"},{"expression":{"id":74414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74408,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23475:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"23475:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74412,"indexExpression":{"id":74410,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23502:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74415,"nodeType":"ExpressionStatement","src":"23475:39:126"},{"expression":{"id":74420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23532:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"23532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74419,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23557:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74421,"nodeType":"ExpressionStatement","src":"23532:37:126"},{"expression":{"id":74424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74422,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"23587:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74423,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23602:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74425,"nodeType":"ExpressionStatement","src":"23587:27:126"},{"expression":{"arguments":[{"id":74427,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23659:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74428,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23669:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74426,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"23632:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74430,"nodeType":"ExpressionStatement","src":"23632:50:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74377,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74367,"src":"23181:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:126","memberName":"length","nodeType":"MemberAccess","src":"23181:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74434,"initializationExpression":{"assignments":[74373],"declarations":[{"constant":false,"id":74373,"mutability":"mutable","name":"i","nameLocation":"23170:1:126","nodeType":"VariableDeclaration","scope":74434,"src":"23162:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74372,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74375,"initialValue":{"hexValue":"30","id":74374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:126"},"loopExpression":{"expression":{"id":74381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:126","subExpression":{"id":74380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23202:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74382,"nodeType":"ExpressionStatement","src":"23202:3:126"},"nodeType":"ForStatement","src":"23157:550:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:126","parameters":{"id":74361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74360,"mutability":"mutable","name":"_member","nameLocation":"23010:7:126","nodeType":"VariableDeclaration","scope":74436,"src":"23002:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74359,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:126"},"returnParameters":{"id":74362,"nodeType":"ParameterList","parameters":[],"src":"23028:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74510,"nodeType":"FunctionDefinition","src":"24275:1038:126","nodes":[],"body":{"id":74509,"nodeType":"Block","src":"24744:569:126","nodes":[],"statements":[{"assignments":[74467],"declarations":[{"constant":false,"id":74467,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:126","nodeType":"VariableDeclaration","scope":74509,"src":"24754:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74466,"nodeType":"UserDefinedTypeName","pathNode":{"id":74465,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:126","24769:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"24754:23:126"},"referencedDeclaration":72847,"src":"24754:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74471,"initialValue":{"baseExpression":{"id":74468,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"24797:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74470,"indexExpression":{"id":74469,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74439,"src":"24807:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:126"},{"expression":{"id":74483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74472,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74459,"src":"24830:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74473,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24842:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"24842:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74479,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24897:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"24897:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74478,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"24878:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:126","trueExpression":{"hexValue":"30","id":74477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74484,"nodeType":"ExpressionStatement","src":"24830:92:126"},{"expression":{"components":[{"expression":{"id":74485,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24953:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24953:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24985:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"24985:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25019:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"25019:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74491,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25056:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"25056:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74493,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25094:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"25094:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74495,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25129:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"25129:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25166:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"25166:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74499,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25198:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"25198:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74501,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74459,"src":"25235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74502,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25258:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"25258:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74506,"indexExpression":{"expression":{"id":74504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:126","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$72820_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74462,"id":74508,"nodeType":"Return","src":"24932:374:126"}]},"documentation":{"id":74437,"nodeType":"StructuredDocumentation","src":"23719:551:126","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:126","parameters":{"id":74440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74439,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:126","nodeType":"VariableDeclaration","scope":74510,"src":"24296:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74438,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:126"},"returnParameters":{"id":74462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74442,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24377:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74441,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74444,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:126","nodeType":"VariableDeclaration","scope":74510,"src":"24408:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74443,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74446,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24441:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74445,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74448,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:126","nodeType":"VariableDeclaration","scope":74510,"src":"24477:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74447,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74450,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:126","nodeType":"VariableDeclaration","scope":74510,"src":"24514:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74449,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74453,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24548:44:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74452,"nodeType":"UserDefinedTypeName","pathNode":{"id":74451,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:126","24563:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72820,"src":"24548:29:126"},"referencedDeclaration":72820,"src":"24548:29:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74455,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24606:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74454,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74457,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24637:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74459,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24673:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74458,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74461,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:126","nodeType":"VariableDeclaration","scope":74510,"src":"24704:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74460,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74531,"nodeType":"FunctionDefinition","src":"25319:198:126","nodes":[],"body":{"id":74530,"nodeType":"Block","src":"25401:116:126","nodes":[],"statements":[{"assignments":[74522],"declarations":[{"constant":false,"id":74522,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:126","nodeType":"VariableDeclaration","scope":74530,"src":"25411:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74521,"nodeType":"UserDefinedTypeName","pathNode":{"id":74520,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:126","25426:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"25411:23:126"},"referencedDeclaration":72847,"src":"25411:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74526,"initialValue":{"baseExpression":{"id":74523,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"25454:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74525,"indexExpression":{"id":74524,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"25464:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:126"},{"expression":{"expression":{"id":74527,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"25493:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72846,"src":"25493:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74517,"id":74529,"nodeType":"Return","src":"25486:24:126"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:126","parameters":{"id":74513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74512,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:126","nodeType":"VariableDeclaration","scope":74531,"src":"25340:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74511,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:126"},"returnParameters":{"id":74517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74531,"src":"25384:15:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74515,"nodeType":"UserDefinedTypeName","pathNode":{"id":74514,"name":"Metadata","nameLocations":["25384:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:126"},"referencedDeclaration":3098,"src":"25384:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74547,"nodeType":"FunctionDefinition","src":"25718:176:126","nodes":[],"body":{"id":74546,"nodeType":"Block","src":"25818:76:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74542,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74534,"src":"25867:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74543,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"25880:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74541,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"25835:31:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74540,"id":74545,"nodeType":"Return","src":"25828:59:126"}]},"documentation":{"id":74532,"nodeType":"StructuredDocumentation","src":"25523:190:126","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:126","parameters":{"id":74537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74534,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:126","nodeType":"VariableDeclaration","scope":74547,"src":"25749:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74533,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74536,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:126","nodeType":"VariableDeclaration","scope":74547,"src":"25770:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74535,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:126"},"returnParameters":{"id":74540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74547,"src":"25809:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74538,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74560,"nodeType":"FunctionDefinition","src":"25900:145:126","nodes":[],"body":{"id":74559,"nodeType":"Block","src":"25986:59:126","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74554,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26003:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74556,"indexExpression":{"id":74555,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"26013:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"26003:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74553,"id":74558,"nodeType":"Return","src":"25996:42:126"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:126","parameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:126","nodeType":"VariableDeclaration","scope":74560,"src":"25933:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74548,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:126"},"returnParameters":{"id":74553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74560,"src":"25977:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74572,"nodeType":"FunctionDefinition","src":"26114:127:126","nodes":[],"body":{"id":74571,"nodeType":"Block","src":"26191:50:126","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74567,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73096,"src":"26208:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74569,"indexExpression":{"id":74568,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"26227:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74566,"id":74570,"nodeType":"Return","src":"26201:33:126"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:126","parameters":{"id":74563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74562,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:126","nodeType":"VariableDeclaration","scope":74572,"src":"26145:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74561,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:126"},"returnParameters":{"id":74566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74572,"src":"26182:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74564,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74589,"nodeType":"FunctionDefinition","src":"26247:182:126","nodes":[],"body":{"id":74588,"nodeType":"Block","src":"26357:72:126","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74581,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26374:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74583,"indexExpression":{"id":74582,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74574,"src":"26384:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"26374:40:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74586,"indexExpression":{"id":74585,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74576,"src":"26415:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74580,"id":74587,"nodeType":"Return","src":"26367:55:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:126","parameters":{"id":74577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74574,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:126","nodeType":"VariableDeclaration","scope":74589,"src":"26288:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74573,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74576,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:126","nodeType":"VariableDeclaration","scope":74589,"src":"26309:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74575,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:126"},"returnParameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74589,"src":"26348:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74578,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74599,"nodeType":"FunctionDefinition","src":"26435:145:126","nodes":[],"body":{"id":74598,"nodeType":"Block","src":"26499:81:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74594,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"26516:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:126","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77472,"src":"26516:38:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74593,"id":74597,"nodeType":"Return","src":"26509:47:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:126","parameters":{"id":74590,"nodeType":"ParameterList","parameters":[],"src":"26464:2:126"},"returnParameters":{"id":74593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74599,"src":"26490:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74591,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74624,"nodeType":"FunctionDefinition","src":"26586:185:126","nodes":[],"body":{"id":74623,"nodeType":"Block","src":"26660:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74606,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74608,"indexExpression":{"id":74607,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"26687:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"26677:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74612,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26718:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74614,"indexExpression":{"id":74613,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"26728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"26718:32:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:126","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":74617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74616,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:126","typeDescriptions":{}}},"id":74619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74605,"id":74622,"nodeType":"Return","src":"26670:94:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:126","parameters":{"id":74602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74601,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:126","nodeType":"VariableDeclaration","scope":74624,"src":"26610:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:126"},"returnParameters":{"id":74605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74624,"src":"26654:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74603,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74642,"nodeType":"FunctionDefinition","src":"26777:174:126","nodes":[],"body":{"id":74641,"nodeType":"Block","src":"26872:79:126","nodes":[],"statements":[{"expression":{"id":74639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74631,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"26882:14:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74632,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"26899:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74633,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74635,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74626,"src":"26924:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74636,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"26943:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74640,"nodeType":"ExpressionStatement","src":"26882:62:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:126","parameters":{"id":74627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74626,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:126","nodeType":"VariableDeclaration","scope":74642,"src":"26802:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74625,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:126"},"returnParameters":{"id":74630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74629,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:126","nodeType":"VariableDeclaration","scope":74642,"src":"26851:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74628,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74738,"nodeType":"FunctionDefinition","src":"26957:1548:126","nodes":[],"body":{"id":74737,"nodeType":"Block","src":"27087:1418:126","nodes":[],"statements":[{"assignments":[74652],"declarations":[{"constant":false,"id":74652,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:126","nodeType":"VariableDeclaration","scope":74737,"src":"27097:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74651,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74654,"initialValue":{"hexValue":"30","id":74653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:126"},{"body":{"id":74699,"nodeType":"Block","src":"27187:576:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74666,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27260:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74668,"indexExpression":{"id":74667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27277:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"27260:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74674,"nodeType":"IfStatement","src":"27256:187:126","trueBody":{"id":74673,"nodeType":"Block","src":"27297:146:126","statements":[{"id":74672,"nodeType":"Continue","src":"27420:8:126"}]}},{"assignments":[74676],"declarations":[{"constant":false,"id":74676,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:126","nodeType":"VariableDeclaration","scope":74699,"src":"27456:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74675,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74681,"initialValue":{"expression":{"baseExpression":{"id":74677,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27477:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74679,"indexExpression":{"id":74678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27494:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"27477:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:126"},{"condition":{"id":74685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:126","subExpression":{"arguments":[{"id":74683,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74676,"src":"27541:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74682,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"27526:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74691,"nodeType":"IfStatement","src":"27521:167:126","trueBody":{"id":74690,"nodeType":"Block","src":"27554:134:126","statements":[{"errorCall":{"arguments":[{"id":74687,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74676,"src":"27597:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74686,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"27579:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74689,"nodeType":"RevertStatement","src":"27572:36:126"}]}},{"expression":{"id":74697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74692,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27701:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74693,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27720:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74695,"indexExpression":{"id":74694,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27737:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"27720:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74698,"nodeType":"ExpressionStatement","src":"27701:51:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27153:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74660,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27157:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:126","memberName":"length","nodeType":"MemberAccess","src":"27157:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74700,"initializationExpression":{"assignments":[74656],"declarations":[{"constant":false,"id":74656,"mutability":"mutable","name":"i","nameLocation":"27146:1:126","nodeType":"VariableDeclaration","scope":74700,"src":"27138:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74655,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74658,"initialValue":{"hexValue":"30","id":74657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:126"},"loopExpression":{"expression":{"id":74664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:126","subExpression":{"id":74663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27182:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74665,"nodeType":"ExpressionStatement","src":"27182:3:126"},"nodeType":"ForStatement","src":"27133:630:126"},{"assignments":[74702],"declarations":[{"constant":false,"id":74702,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:126","nodeType":"VariableDeclaration","scope":74737,"src":"27859:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74701,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74709,"initialValue":{"arguments":[{"arguments":[{"id":74705,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"27925:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74704,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"27903:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74707,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27935:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74703,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75060,"src":"27891:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:126"},{"assignments":[74711],"declarations":[{"constant":false,"id":74711,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:126","nodeType":"VariableDeclaration","scope":74737,"src":"28033:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74710,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74720,"initialValue":{"arguments":[{"id":74714,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"28105:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74717,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":74716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74715,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:126","typeDescriptions":{}}},"id":74718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74712,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"28062:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"28062:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74721,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28294:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74722,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74711,"src":"28318:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74730,"nodeType":"IfStatement","src":"28290:147:126","trueBody":{"id":74729,"nodeType":"Block","src":"28338:99:126","statements":[{"errorCall":{"arguments":[{"id":74725,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28384:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74726,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74711,"src":"28407:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74724,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72933,"src":"28359:24:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74728,"nodeType":"RevertStatement","src":"28352:74:126"}]}},{"expression":{"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74731,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73096,"src":"28447:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74733,"indexExpression":{"id":74732,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"28466:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74734,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28477:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74736,"nodeType":"ExpressionStatement","src":"28447:51:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:126","parameters":{"id":74649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74644,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:126","nodeType":"VariableDeclaration","scope":74738,"src":"26991:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74643,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74648,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:126","nodeType":"VariableDeclaration","scope":74738,"src":"27008:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74646,"nodeType":"UserDefinedTypeName","pathNode":{"id":74645,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:126","27023:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"27008:30:126"},"referencedDeclaration":72852,"src":"27008:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74647,"nodeType":"ArrayTypeName","src":"27008:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:126"},"returnParameters":{"id":74650,"nodeType":"ParameterList","parameters":[],"src":"27087:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75025,"nodeType":"FunctionDefinition","src":"28511:3479:126","nodes":[],"body":{"id":75024,"nodeType":"Block","src":"28616:3374:126","nodes":[],"statements":[{"assignments":[74751],"declarations":[{"constant":false,"id":74751,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:126","nodeType":"VariableDeclaration","scope":75024,"src":"28626:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74749,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74750,"nodeType":"ArrayTypeName","src":"28626:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74752,"nodeType":"VariableDeclarationStatement","src":"28626:29:126"},{"body":{"id":75022,"nodeType":"Block","src":"28719:3265:126","statements":[{"assignments":[74765],"declarations":[{"constant":false,"id":74765,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:126","nodeType":"VariableDeclaration","scope":75022,"src":"28733:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74764,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74770,"initialValue":{"expression":{"baseExpression":{"id":74766,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"28754:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74768,"indexExpression":{"id":74767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28771:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"28754:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74771,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28857:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:126","memberName":"length","nodeType":"MemberAccess","src":"28857:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74873,"nodeType":"Block","src":"29009:764:126","statements":[{"assignments":[74791],"declarations":[{"constant":false,"id":74791,"mutability":"mutable","name":"exist","nameLocation":"29032:5:126","nodeType":"VariableDeclaration","scope":74873,"src":"29027:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74790,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74793,"initialValue":{"hexValue":"66616c7365","id":74792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:126"},{"body":{"id":74821,"nodeType":"Block","src":"29113:268:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":74805,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29164:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74807,"indexExpression":{"id":74806,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":74808,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29183:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74820,"nodeType":"IfStatement","src":"29160:203:126","trueBody":{"id":74819,"nodeType":"Block","src":"29195:168:126","statements":[{"expression":{"id":74812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74810,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"29221:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74813,"nodeType":"ExpressionStatement","src":"29221:12:126"},{"errorCall":{"arguments":[{"id":74815,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29292:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74816,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29304:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74814,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72951,"src":"29266:25:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74818,"nodeType":"RevertStatement","src":"29259:47:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74798,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29083:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74799,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29087:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:126","memberName":"length","nodeType":"MemberAccess","src":"29087:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74822,"initializationExpression":{"assignments":[74795],"declarations":[{"constant":false,"id":74795,"mutability":"mutable","name":"j","nameLocation":"29076:1:126","nodeType":"VariableDeclaration","scope":74822,"src":"29068:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74794,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74797,"initialValue":{"hexValue":"30","id":74796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:126"},"loopExpression":{"expression":{"id":74803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:126","subExpression":{"id":74802,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29108:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74804,"nodeType":"ExpressionStatement","src":"29108:3:126"},"nodeType":"ForStatement","src":"29063:318:126"},{"condition":{"id":74824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:126","subExpression":{"id":74823,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"29403:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74872,"nodeType":"IfStatement","src":"29398:361:126","trueBody":{"id":74871,"nodeType":"Block","src":"29410:349:126","statements":[{"assignments":[74829],"declarations":[{"constant":false,"id":74829,"mutability":"mutable","name":"temp","nameLocation":"29449:4:126","nodeType":"VariableDeclaration","scope":74871,"src":"29432:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74827,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74828,"nodeType":"ArrayTypeName","src":"29432:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74838,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74833,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29470:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:126","memberName":"length","nodeType":"MemberAccess","src":"29470:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":74835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74830,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74831,"nodeType":"ArrayTypeName","src":"29460:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:126"},{"body":{"id":74858,"nodeType":"Block","src":"29566:74:126","statements":[{"expression":{"id":74856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74850,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29592:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74852,"indexExpression":{"id":74851,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29597:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":74853,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29602:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74855,"indexExpression":{"id":74854,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29615:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74857,"nodeType":"ExpressionStatement","src":"29592:25:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74843,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29536:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74844,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29540:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:126","memberName":"length","nodeType":"MemberAccess","src":"29540:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74859,"initializationExpression":{"assignments":[74840],"declarations":[{"constant":false,"id":74840,"mutability":"mutable","name":"j","nameLocation":"29529:1:126","nodeType":"VariableDeclaration","scope":74859,"src":"29521:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74839,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74842,"initialValue":{"hexValue":"30","id":74841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:126"},"loopExpression":{"expression":{"id":74848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:126","subExpression":{"id":74847,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29561:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74849,"nodeType":"ExpressionStatement","src":"29561:3:126"},"nodeType":"ForStatement","src":"29516:124:126"},{"expression":{"id":74865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74860,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29661:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74863,"indexExpression":{"expression":{"id":74861,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29666:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:126","memberName":"length","nodeType":"MemberAccess","src":"29666:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74864,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29689:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74866,"nodeType":"ExpressionStatement","src":"29661:38:126"},{"expression":{"id":74869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74867,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29721:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74868,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29736:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74870,"nodeType":"ExpressionStatement","src":"29721:19:126"}]}}]},"id":74874,"nodeType":"IfStatement","src":"28853:920:126","trueBody":{"id":74789,"nodeType":"Block","src":"28883:120:126","statements":[{"expression":{"id":74781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74775,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28901:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":74779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:126","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":74778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74776,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74777,"nodeType":"ArrayTypeName","src":"28920:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74782,"nodeType":"ExpressionStatement","src":"28901:31:126"},{"expression":{"id":74787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74783,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28950:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74785,"indexExpression":{"hexValue":"30","id":74784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74786,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"28968:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74788,"nodeType":"ExpressionStatement","src":"28950:28:126"}]}},{"assignments":[74876],"declarations":[{"constant":false,"id":74876,"mutability":"mutable","name":"delta","nameLocation":"29793:5:126","nodeType":"VariableDeclaration","scope":75022,"src":"29786:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74875,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74881,"initialValue":{"expression":{"baseExpression":{"id":74877,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"29801:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74879,"indexExpression":{"id":74878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"29818:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"29801:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:126"},{"assignments":[74886],"declarations":[{"constant":false,"id":74886,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:126","nodeType":"VariableDeclaration","scope":75022,"src":"29848:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74885,"nodeType":"UserDefinedTypeName","pathNode":{"id":74884,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:126","29863:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"29848:23:126"},"referencedDeclaration":72847,"src":"29848:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74890,"initialValue":{"baseExpression":{"id":74887,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"29891:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74889,"indexExpression":{"id":74888,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29901:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:126"},{"assignments":[74892],"declarations":[{"constant":false,"id":74892,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:126","nodeType":"VariableDeclaration","scope":75022,"src":"30014:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74891,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74897,"initialValue":{"baseExpression":{"expression":{"id":74893,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30045:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"30045:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74896,"indexExpression":{"id":74895,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30072:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:126"},{"assignments":[74899],"declarations":[{"constant":false,"id":74899,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:126","nodeType":"VariableDeclaration","scope":75022,"src":"30245:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74898,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74904,"initialValue":{"arguments":[{"id":74901,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"30280:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74902,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74876,"src":"30302:5:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74900,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75060,"src":"30268:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:126"},{"expression":{"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74905,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30443:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"30443:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74909,"indexExpression":{"id":74907,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30470:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74910,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"30481:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74912,"nodeType":"ExpressionStatement","src":"30443:50:126"},{"assignments":[74914],"declarations":[{"constant":false,"id":74914,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:126","nodeType":"VariableDeclaration","scope":75022,"src":"30727:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74913,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74916,"initialValue":{"hexValue":"66616c7365","id":74915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:126"},{"body":{"id":74945,"nodeType":"Block","src":"30832:179:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":74930,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"30854:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74932,"indexExpression":{"id":74931,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30875:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74934,"indexExpression":{"id":74933,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30884:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":74935,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30890:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"30890:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74944,"nodeType":"IfStatement","src":"30850:147:126","trueBody":{"id":74943,"nodeType":"Block","src":"30911:86:126","statements":[{"expression":{"id":74940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74938,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74914,"src":"30933:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74941,"nodeType":"ExpressionStatement","src":"30933:18:126"},{"id":74942,"nodeType":"Break","src":"30973:5:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74921,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30785:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":74922,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"30789:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74924,"indexExpression":{"id":74923,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:126","memberName":"length","nodeType":"MemberAccess","src":"30789:36:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74946,"initializationExpression":{"assignments":[74918],"declarations":[{"constant":false,"id":74918,"mutability":"mutable","name":"k","nameLocation":"30778:1:126","nodeType":"VariableDeclaration","scope":74946,"src":"30770:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74917,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74920,"initialValue":{"hexValue":"30","id":74919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:126"},"loopExpression":{"expression":{"id":74928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:126","subExpression":{"id":74927,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30827:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74929,"nodeType":"ExpressionStatement","src":"30827:3:126"},"nodeType":"ForStatement","src":"30765:246:126"},{"condition":{"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:126","subExpression":{"id":74947,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74914,"src":"31029:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74958,"nodeType":"IfStatement","src":"31024:106:126","trueBody":{"id":74957,"nodeType":"Block","src":"31042:88:126","statements":[{"expression":{"arguments":[{"expression":{"id":74953,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31095:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"31095:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":74949,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"31060:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74951,"indexExpression":{"id":74950,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"31081:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:126","memberName":"push","nodeType":"MemberAccess","src":"31060:34:126","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":74955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74956,"nodeType":"ExpressionStatement","src":"31060:55:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74959,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31285:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":74960,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31309:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74991,"nodeType":"Block","src":"31490:161:126","statements":[{"expression":{"id":74981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74977,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"31508:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74978,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31523:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74979,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31546:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74982,"nodeType":"ExpressionStatement","src":"31508:50:126"},{"expression":{"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74983,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31576:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31576:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31601:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74987,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31624:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74990,"nodeType":"ExpressionStatement","src":"31576:60:126"}]},"id":74992,"nodeType":"IfStatement","src":"31281:370:126","trueBody":{"id":74976,"nodeType":"Block","src":"31323:161:126","statements":[{"expression":{"id":74966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74962,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"31341:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74963,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31356:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74964,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31371:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74967,"nodeType":"ExpressionStatement","src":"31341:50:126"},{"expression":{"id":74974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74968,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31409:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31409:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74971,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31434:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74972,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31449:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74975,"nodeType":"ExpressionStatement","src":"31409:60:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31668:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31668:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75020,"nodeType":"Block","src":"31765:209:126","statements":[{"expression":{"arguments":[{"id":75006,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31810:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75007,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31820:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75005,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"31783:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75009,"nodeType":"ExpressionStatement","src":"31783:58:126"},{"eventCall":{"arguments":[{"id":75011,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"31877:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75012,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"31886:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75013,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31898:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31912:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31912:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75016,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31935:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"31935:23:126","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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75010,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73016,"src":"31864:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75019,"nodeType":"EmitStatement","src":"31859:100:126"}]},"id":75021,"nodeType":"IfStatement","src":"31664:310:126","trueBody":{"id":75004,"nodeType":"Block","src":"31693:66:126","statements":[{"expression":{"id":75002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74997,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31711:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31711:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75000,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:126","memberName":"number","nodeType":"MemberAccess","src":"31732:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75003,"nodeType":"ExpressionStatement","src":"31711:33:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74757,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28685:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74758,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"28689:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:126","memberName":"length","nodeType":"MemberAccess","src":"28689:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75023,"initializationExpression":{"assignments":[74754],"declarations":[{"constant":false,"id":74754,"mutability":"mutable","name":"i","nameLocation":"28678:1:126","nodeType":"VariableDeclaration","scope":75023,"src":"28670:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74753,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74756,"initialValue":{"hexValue":"30","id":74755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:126"},"loopExpression":{"expression":{"id":74762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:126","subExpression":{"id":74761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28714:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74763,"nodeType":"ExpressionStatement","src":"28714:3:126"},"nodeType":"ForStatement","src":"28665:3319:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:126","parameters":{"id":74745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74740,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:126","nodeType":"VariableDeclaration","scope":75025,"src":"28532:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74739,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74744,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:126","nodeType":"VariableDeclaration","scope":75025,"src":"28549:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74742,"nodeType":"UserDefinedTypeName","pathNode":{"id":74741,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:126","28564:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"28549:30:126"},"referencedDeclaration":72852,"src":"28549:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74743,"nodeType":"ArrayTypeName","src":"28549:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:126"},"returnParameters":{"id":74746,"nodeType":"ParameterList","parameters":[],"src":"28616:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75060,"nodeType":"FunctionDefinition","src":"31996:276:126","nodes":[],"body":{"id":75059,"nodeType":"Block","src":"32082:190:126","nodes":[],"statements":[{"assignments":[75035],"declarations":[{"constant":false,"id":75035,"mutability":"mutable","name":"result","nameLocation":"32099:6:126","nodeType":"VariableDeclaration","scope":75059,"src":"32092:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75034,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75042,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75038,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75027,"src":"32115:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75036,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:126","typeDescriptions":{}}},"id":75039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75040,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"32127:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:126"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75043,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32148:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75053,"nodeType":"IfStatement","src":"32144:90:126","trueBody":{"id":75052,"nodeType":"Block","src":"32160:74:126","statements":[{"errorCall":{"arguments":[{"id":75047,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75027,"src":"32198:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75048,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"32208:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75049,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32216:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75046,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"32181:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75051,"nodeType":"RevertStatement","src":"32174:49:126"}]}},{"expression":{"arguments":[{"id":75056,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32258:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75054,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:126","typeDescriptions":{}}},"id":75057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75033,"id":75058,"nodeType":"Return","src":"32243:22:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:126","parameters":{"id":75030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75027,"mutability":"mutable","name":"_support","nameLocation":"32025:8:126","nodeType":"VariableDeclaration","scope":75060,"src":"32017:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75026,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75029,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:126","nodeType":"VariableDeclaration","scope":75060,"src":"32035:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75028,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:126"},"returnParameters":{"id":75033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75060,"src":"32073:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75031,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75116,"nodeType":"FunctionDefinition","src":"32689:1145:126","nodes":[],"body":{"id":75115,"nodeType":"Block","src":"32836:998:126","nodes":[],"statements":[{"assignments":[75073],"declarations":[{"constant":false,"id":75073,"mutability":"mutable","name":"t","nameLocation":"32854:1:126","nodeType":"VariableDeclaration","scope":75115,"src":"32846:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75072,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75075,"initialValue":{"id":75074,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75063,"src":"32858:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:126"},{"assignments":[75077],"declarations":[{"constant":false,"id":75077,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:126","nodeType":"VariableDeclaration","scope":75115,"src":"33184:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75076,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75087,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75079,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33210:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75082,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75083,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33226:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75085,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75073,"src":"33229:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75078,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"33204:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75088,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75077,"src":"33727:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75089,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75065,"src":"33739:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75092,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75067,"src":"33754:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75093,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33767:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75095,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"33772:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75096,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75077,"src":"33782:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75101,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33797:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75102,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33801:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75109,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73051,"src":"33812:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75111,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75071,"id":75114,"nodeType":"Return","src":"33717:110:126"}]},"documentation":{"id":75061,"nodeType":"StructuredDocumentation","src":"32278:406:126","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:126","parameters":{"id":75068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75063,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:126","nodeType":"VariableDeclaration","scope":75116,"src":"32718:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75062,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75065,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:126","nodeType":"VariableDeclaration","scope":75116,"src":"32739:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75064,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75067,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:126","nodeType":"VariableDeclaration","scope":75116,"src":"32758:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75066,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:126"},"returnParameters":{"id":75071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75116,"src":"32823:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75069,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75204,"nodeType":"FunctionDefinition","src":"34415:1482:126","nodes":[],"body":{"id":75203,"nodeType":"Block","src":"34510:1387:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75124,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75131,"nodeType":"IfStatement","src":"34640:66:126","trueBody":{"id":75130,"nodeType":"Block","src":"34661:45:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75127,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72901,"src":"34682:11:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75129,"nodeType":"RevertStatement","src":"34675:20:126"}]}},{"condition":{"arguments":[{"id":75133,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"35162:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75132,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"35146:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75139,"nodeType":"IfStatement","src":"35142:91:126","trueBody":{"id":75138,"nodeType":"Block","src":"35181:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"35202:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75137,"nodeType":"RevertStatement","src":"35195:27:126"}]}},{"assignments":[75141],"declarations":[{"constant":false,"id":75141,"mutability":"mutable","name":"denom","nameLocation":"35389:5:126","nodeType":"VariableDeclaration","scope":75203,"src":"35381:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75140,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75159,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75142,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"35398:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75148,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35420:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"35425:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75156,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:126"},{"expression":{"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75160,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35475:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75161,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"35507:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75165,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35524:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75168,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75141,"src":"35531:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75169,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75141,"src":"35539:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75171,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75177,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35556:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75180,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35562:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75181,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"35566:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75185,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75186,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75312,"src":"35576:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75189,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75193,"nodeType":"ExpressionStatement","src":"35475:145:126"},{"expression":{"id":75201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75194,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35810:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75195,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35823:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75196,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"35836:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75199,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"35871:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:126","trueExpression":{"id":75198,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35858:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75202,"nodeType":"ExpressionStatement","src":"35810:80:126"}]},"documentation":{"id":75117,"nodeType":"StructuredDocumentation","src":"33840:570:126","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:126","parameters":{"id":75120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75119,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:126","nodeType":"VariableDeclaration","scope":75204,"src":"34443:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75118,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:126"},"returnParameters":{"id":75123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75122,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:126","nodeType":"VariableDeclaration","scope":75204,"src":"34490:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75121,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75239,"nodeType":"FunctionDefinition","src":"36158:269:126","nodes":[],"body":{"id":75238,"nodeType":"Block","src":"36236:191:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75215,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"36254:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75216,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36260:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75220,"nodeType":"ExpressionStatement","src":"36246:66:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75222,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"36330:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75223,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36335:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75227,"nodeType":"ExpressionStatement","src":"36322:53:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75228,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"36394:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75229,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"36399:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75232,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73051,"src":"36405:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75234,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75213,"id":75237,"nodeType":"Return","src":"36385:35:126"}]},"documentation":{"id":75205,"nodeType":"StructuredDocumentation","src":"35903:250:126","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:126","parameters":{"id":75210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75207,"mutability":"mutable","name":"_a","nameLocation":"36180:2:126","nodeType":"VariableDeclaration","scope":75239,"src":"36172:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75206,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75209,"mutability":"mutable","name":"_b","nameLocation":"36192:2:126","nodeType":"VariableDeclaration","scope":75239,"src":"36184:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75208,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:126"},"returnParameters":{"id":75213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75212,"mutability":"mutable","name":"_result","nameLocation":"36227:7:126","nodeType":"VariableDeclaration","scope":75239,"src":"36219:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75211,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75304,"nodeType":"FunctionDefinition","src":"36649:447:126","nodes":[],"body":{"id":75303,"nodeType":"Block","src":"36727:369:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75250,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75242,"src":"36745:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75251,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36750:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75255,"nodeType":"ExpressionStatement","src":"36737:53:126"},{"assignments":[75257],"declarations":[{"constant":false,"id":75257,"mutability":"mutable","name":"a","nameLocation":"36808:1:126","nodeType":"VariableDeclaration","scope":75303,"src":"36800:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75256,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75259,"initialValue":{"id":75258,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75242,"src":"36812:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:126"},{"assignments":[75261],"declarations":[{"constant":false,"id":75261,"mutability":"mutable","name":"b","nameLocation":"36832:1:126","nodeType":"VariableDeclaration","scope":75303,"src":"36824:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75260,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75263,"initialValue":{"id":75262,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75244,"src":"36836:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:126"},{"expression":{"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75264,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"36848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75265,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36858:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75267,"nodeType":"ExpressionStatement","src":"36848:17:126"},{"body":{"id":75301,"nodeType":"Block","src":"36889:201:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75271,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36907:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75299,"nodeType":"Block","src":"36997:83:126","statements":[{"expression":{"id":75293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75288,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37015:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75290,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75291,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"37039:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75289,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75239,"src":"37025:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75294,"nodeType":"ExpressionStatement","src":"37015:26:126"},{"expression":{"id":75297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75295,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"37059:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75298,"nodeType":"ExpressionStatement","src":"37059:6:126"}]},"id":75300,"nodeType":"IfStatement","src":"36903:177:126","trueBody":{"id":75287,"nodeType":"Block","src":"36919:72:126","statements":[{"expression":{"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75276,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36937:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75278,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36946:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75279,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36949:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75277,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75239,"src":"36941:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75282,"nodeType":"ExpressionStatement","src":"36937:14:126"},{"expression":{"id":75285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75283,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36969:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75286,"nodeType":"ExpressionStatement","src":"36969:7:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75268,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36882:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75302,"nodeType":"WhileStatement","src":"36875:215:126"}]},"documentation":{"id":75240,"nodeType":"StructuredDocumentation","src":"36433:211:126","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:126","parameters":{"id":75245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75242,"mutability":"mutable","name":"_a","nameLocation":"36671:2:126","nodeType":"VariableDeclaration","scope":75304,"src":"36663:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75241,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75244,"mutability":"mutable","name":"_b","nameLocation":"36683:2:126","nodeType":"VariableDeclaration","scope":75304,"src":"36675:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75243,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:126"},"returnParameters":{"id":75248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75247,"mutability":"mutable","name":"_result","nameLocation":"36718:7:126","nodeType":"VariableDeclaration","scope":75304,"src":"36710:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75246,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75312,"nodeType":"FunctionDefinition","src":"37102:112:126","nodes":[],"body":{"id":75311,"nodeType":"Block","src":"37170:44:126","nodes":[],"statements":[{"expression":{"id":75309,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"37187:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75308,"id":75310,"nodeType":"Return","src":"37180:27:126"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:126","parameters":{"id":75305,"nodeType":"ParameterList","parameters":[],"src":"37137:2:126"},"returnParameters":{"id":75308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75312,"src":"37161:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75306,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75353,"nodeType":"FunctionDefinition","src":"37404:396:126","nodes":[],"body":{"id":75352,"nodeType":"Block","src":"37512:288:126","nodes":[],"statements":[{"assignments":[75322,75324],"declarations":[{"constant":false,"id":75322,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:126","nodeType":"VariableDeclaration","scope":75352,"src":"37523:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75321,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75324,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:126","nodeType":"VariableDeclaration","scope":75352,"src":"37543:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75323,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75329,"initialValue":{"arguments":[{"id":75326,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37600:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75327,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75318,"src":"37611:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75325,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75400,"src":"37566:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75330,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"37636:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75333,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37655:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75339,"nodeType":"IfStatement","src":"37632:72:126","trueBody":{"id":75338,"nodeType":"Block","src":"37673:31:126","statements":[{"functionReturnParameters":75320,"id":75337,"nodeType":"Return","src":"37687:7:126"}]}},{"expression":{"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75340,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37713:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"37713:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75343,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37735:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75345,"nodeType":"ExpressionStatement","src":"37713:33:126"},{"expression":{"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75346,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37756:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"37756:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75349,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"37783:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75351,"nodeType":"ExpressionStatement","src":"37756:37:126"}]},"documentation":{"id":75313,"nodeType":"StructuredDocumentation","src":"37220:179:126","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:126","parameters":{"id":75319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75316,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:126","nodeType":"VariableDeclaration","scope":75353,"src":"37440:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75315,"nodeType":"UserDefinedTypeName","pathNode":{"id":75314,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:126","37455:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"37440:23:126"},"referencedDeclaration":72847,"src":"37440:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75318,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:126","nodeType":"VariableDeclaration","scope":75353,"src":"37483:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75317,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:126"},"returnParameters":{"id":75320,"nodeType":"ParameterList","parameters":[],"src":"37512:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75400,"nodeType":"FunctionDefinition","src":"37806:719:126","nodes":[],"body":{"id":75399,"nodeType":"Block","src":"38004:521:126","nodes":[],"statements":[{"expression":{"id":75368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75365,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38014:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75366,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:126","memberName":"number","nodeType":"MemberAccess","src":"38028:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75369,"nodeType":"ExpressionStatement","src":"38014:26:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75371,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38057:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38057:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75373,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38080:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75370,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:126","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75376,"nodeType":"ExpressionStatement","src":"38050:42:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75377,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38106:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38106:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75379,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38129:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75386,"nodeType":"IfStatement","src":"38102:173:126","trueBody":{"id":75385,"nodeType":"Block","src":"38142:133:126","statements":[{"expression":{"components":[{"hexValue":"30","id":75381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75364,"id":75384,"nodeType":"Return","src":"38222:13:126"}]}},{"expression":{"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75387,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"38328:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75389,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38374:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75390,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38388:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38388:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75393,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38460:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"38460:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75395,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75358,"src":"38498:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75388,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"38341:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75398,"nodeType":"ExpressionStatement","src":"38328:190:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:126","parameters":{"id":75359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75356,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:126","nodeType":"VariableDeclaration","scope":75400,"src":"37849:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75355,"nodeType":"UserDefinedTypeName","pathNode":{"id":75354,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:126","37864:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"37849:23:126"},"referencedDeclaration":72847,"src":"37849:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75358,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:126","nodeType":"VariableDeclaration","scope":75400,"src":"37892:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75357,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:126"},"returnParameters":{"id":75364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75361,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:126","nodeType":"VariableDeclaration","scope":75400,"src":"37959:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75360,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75363,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:126","nodeType":"VariableDeclaration","scope":75400,"src":"37979:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75362,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75448,"nodeType":"FunctionDefinition","src":"38531:520:126","nodes":[],"body":{"id":75447,"nodeType":"Block","src":"38610:441:126","nodes":[],"statements":[{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:126","nodeType":"VariableDeclaration","scope":75447,"src":"38620:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75410,"nodeType":"UserDefinedTypeName","pathNode":{"id":75409,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:126","38635:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"38620:23:126"},"referencedDeclaration":72847,"src":"38620:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75415,"initialValue":{"baseExpression":{"id":75412,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"38663:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75414,"indexExpression":{"id":75413,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38673:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38699:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"38699:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75418,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38722:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75425,"nodeType":"IfStatement","src":"38695:100:126","trueBody":{"id":75424,"nodeType":"Block","src":"38734:61:126","statements":[{"errorCall":{"arguments":[{"id":75421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38773:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75420,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"38755:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75423,"nodeType":"RevertStatement","src":"38748:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75426,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38809:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"38809:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75428,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"38836:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":75429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"38836:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"38836:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75437,"nodeType":"IfStatement","src":"38805:130:126","trueBody":{"id":75436,"nodeType":"Block","src":"38874:61:126","statements":[{"errorCall":{"arguments":[{"id":75433,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38913:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75432,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"38895:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75435,"nodeType":"RevertStatement","src":"38888:36:126"}]}},{"expression":{"arguments":[{"id":75439,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38972:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75440,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38982:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"38982:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75438,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"38945:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75443,"nodeType":"ExpressionStatement","src":"38945:59:126"},{"expression":{"expression":{"id":75444,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"39021:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"39021:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75406,"id":75446,"nodeType":"Return","src":"39014:30:126"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:126","parameters":{"id":75403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75402,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:126","nodeType":"VariableDeclaration","scope":75448,"src":"38565:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75401,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:126"},"returnParameters":{"id":75406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75448,"src":"38601:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75404,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75467,"nodeType":"FunctionDefinition","src":"39057:124:126","nodes":[],"body":{"id":75466,"nodeType":"Block","src":"39129:52:126","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75455,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75450,"src":"39148:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75456,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"39157:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75458,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75459,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"39163:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75460,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"39167:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75454,"id":75465,"nodeType":"Return","src":"39139:35:126"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:126","parameters":{"id":75451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75450,"mutability":"mutable","name":"amount","nameLocation":"39091:6:126","nodeType":"VariableDeclaration","scope":75467,"src":"39083:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75449,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:126"},"returnParameters":{"id":75454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75467,"src":"39120:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75452,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"39187:137:126","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"39258:66:126","nodes":[],"statements":[{"expression":{"id":75478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75476,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"39268:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75477,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"39276:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75479,"nodeType":"ExpressionStatement","src":"39268:14:126"},{"eventCall":{"arguments":[{"id":75481,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"39310:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75480,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73024,"src":"39297:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75483,"nodeType":"EmitStatement","src":"39292:25:126"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75474,"kind":"modifierInvocation","modifierName":{"id":75471,"name":"onlyPoolManager","nameLocations":["39230:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:126"},"nodeType":"ModifierInvocation","src":"39230:27:126"}],"name":"setDecay","nameLocation":"39196:8:126","parameters":{"id":75470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75469,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:126","nodeType":"VariableDeclaration","scope":75485,"src":"39205:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75468,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:126"},"returnParameters":{"id":75475,"nodeType":"ParameterList","parameters":[],"src":"39258:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75503,"nodeType":"FunctionDefinition","src":"39330:155:126","nodes":[],"body":{"id":75502,"nodeType":"Block","src":"39407:78:126","nodes":[],"statements":[{"expression":{"id":75496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75494,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"39417:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75495,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75487,"src":"39428:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75497,"nodeType":"ExpressionStatement","src":"39417:20:126"},{"eventCall":{"arguments":[{"id":75499,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75487,"src":"39468:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75498,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73028,"src":"39452:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75501,"nodeType":"EmitStatement","src":"39447:31:126"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75492,"kind":"modifierInvocation","modifierName":{"id":75489,"name":"onlyPoolManager","nameLocations":["39379:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:126"},"nodeType":"ModifierInvocation","src":"39379:27:126"}],"name":"setMaxRatio","nameLocation":"39339:11:126","parameters":{"id":75488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75487,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:126","nodeType":"VariableDeclaration","scope":75503,"src":"39351:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75486,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:126"},"returnParameters":{"id":75493,"nodeType":"ParameterList","parameters":[],"src":"39407:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75521,"nodeType":"FunctionDefinition","src":"39491:143:126","nodes":[],"body":{"id":75520,"nodeType":"Block","src":"39564:70:126","nodes":[],"statements":[{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75512,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"39574:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75513,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"39583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"39574:16:126"},{"eventCall":{"arguments":[{"id":75517,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"39619:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75516,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73032,"src":"39605:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75519,"nodeType":"EmitStatement","src":"39600:27:126"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75510,"kind":"modifierInvocation","modifierName":{"id":75507,"name":"onlyPoolManager","nameLocations":["39536:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:126"},"nodeType":"ModifierInvocation","src":"39536:27:126"}],"name":"setWeight","nameLocation":"39500:9:126","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75505,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:126","nodeType":"VariableDeclaration","scope":75521,"src":"39510:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75504,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:126"},"returnParameters":{"id":75511,"nodeType":"ParameterList","parameters":[],"src":"39564:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75541,"nodeType":"FunctionDefinition","src":"39640:219:126","nodes":[],"body":{"id":75540,"nodeType":"Block","src":"39735:124:126","nodes":[],"statements":[{"expression":{"id":75534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75530,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"39745:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75532,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"39783:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75531,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"39765:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77675_$","typeString":"type(contract RegistryCommunity)"}},"id":75533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"src":"39745:57:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":75535,"nodeType":"ExpressionStatement","src":"39745:57:126"},{"eventCall":{"arguments":[{"id":75537,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"39833:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75536,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73036,"src":"39817:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75539,"nodeType":"EmitStatement","src":"39812:40:126"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75526,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75528,"kind":"modifierInvocation","modifierName":{"id":75525,"name":"onlyPoolManager","nameLocations":["39707:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:126"},"nodeType":"ModifierInvocation","src":"39707:27:126"}],"name":"setRegistryCommunity","nameLocation":"39649:20:126","parameters":{"id":75524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75523,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:126","nodeType":"VariableDeclaration","scope":75541,"src":"39670:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75522,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:126"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[],"src":"39735:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75560,"nodeType":"FunctionDefinition","src":"39865:237:126","nodes":[],"body":{"id":75559,"nodeType":"Block","src":"39962:140:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75551,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"40003:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75552,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"40024:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75550,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73042,"src":"39977:25:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75554,"nodeType":"EmitStatement","src":"39972:72:126"},{"expression":{"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75555,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"40054:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75556,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"40076:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75558,"nodeType":"ExpressionStatement","src":"40054:41:126"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75546,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75548,"kind":"modifierInvocation","modifierName":{"id":75545,"name":"onlyPoolManager","nameLocations":["39934:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:126"},"nodeType":"ModifierInvocation","src":"39934:27:126"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:126","parameters":{"id":75544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75543,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:126","nodeType":"VariableDeclaration","scope":75560,"src":"39896:27:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75542,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:126"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[],"src":"39962:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":72885,"name":"BaseStrategy","nameLocations":["2845:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:126"},"id":72886,"nodeType":"InheritanceSpecifier","src":"2845:12:126"},{"baseName":{"id":72887,"name":"IPointStrategy","nameLocations":["2859:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72793,"src":"2859:14:126"},"id":72888,"nodeType":"InheritanceSpecifier","src":"2859:14:126"},{"baseName":{"id":72889,"name":"ERC165","nameLocations":["2875:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":58097,"src":"2875:6:126"},"id":72890,"nodeType":"InheritanceSpecifier","src":"2875:6:126"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75561,58097,58303,72793,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:126","scope":75562,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,72895,72897,72899,72901,72903,72905,72907,72909,72911,72913,72915,72923,72925,72927,72933,72935,72937,72941,72945,72951,72953,72955,72963]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json b/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json index 834ec4cc6..8f2cf3b6d 100644 --- a/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json +++ b/pkg/contracts/out/CVStrategy.sol/IPointStrategy.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUntake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deactivatePoints(address)":"6453d9c4","decreasePower(address,uint256)":"2ed04b2b","getPointSystem()":"c3292171","increasePower(address,uint256)":"782aadff"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUntake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"IPointStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUntake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"IPointStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75570,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75569],"ERC165":[58105],"ERC20":[56822],"IAllo":[2610],"IERC165":[58311],"IPointStrategy":[72801],"Math":[59177],"Metadata":[3098],"RegistryCommunity":[77692],"StrategyStruct":[72892],"console":[29549]},"nodeType":"SourceUnit","src":"42:40063:126","nodes":[{"id":72756,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72759,"nodeType":"ImportDirective","src":"68:82:126","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72757,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72758,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72762,"nodeType":"ImportDirective","src":"152:68:126","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":77693,"symbolAliases":[{"foreign":{"id":72760,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"160:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72761,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72765,"nodeType":"ImportDirective","src":"221:87:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":58106,"symbolAliases":[{"foreign":{"id":72763,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58105,"src":"229:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72764,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58311,"src":"237:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72767,"nodeType":"ImportDirective","src":"309:68:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":56823,"symbolAliases":[{"foreign":{"id":72766,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"317:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72769,"nodeType":"ImportDirective","src":"379:46:126","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":29550,"symbolAliases":[{"foreign":{"id":72768,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"387:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72771,"nodeType":"ImportDirective","src":"427:65:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":59178,"symbolAliases":[{"foreign":{"id":72770,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"435:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72801,"nodeType":"ContractDefinition","src":"494:355:126","nodes":[{"id":72776,"nodeType":"FunctionDefinition","src":"525:52:126","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:126","parameters":{"id":72774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72773,"mutability":"mutable","name":"_member","nameLocation":"559:7:126","nodeType":"VariableDeclaration","scope":72776,"src":"551:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72772,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:126"},"returnParameters":{"id":72775,"nodeType":"ParameterList","parameters":[],"src":"576:0:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72785,"nodeType":"FunctionDefinition","src":"582:91:126","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:126","parameters":{"id":72781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72778,"mutability":"mutable","name":"_member","nameLocation":"613:7:126","nodeType":"VariableDeclaration","scope":72785,"src":"605:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72777,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72780,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:126","nodeType":"VariableDeclaration","scope":72785,"src":"622:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72779,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:126"},"returnParameters":{"id":72784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72785,"src":"664:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72782,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72794,"nodeType":"FunctionDefinition","src":"678:92:126","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:126","parameters":{"id":72790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72787,"mutability":"mutable","name":"_member","nameLocation":"709:7:126","nodeType":"VariableDeclaration","scope":72794,"src":"701:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72786,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72789,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:126","nodeType":"VariableDeclaration","scope":72794,"src":"718:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72788,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:126"},"returnParameters":{"id":72793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72794,"src":"761:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72791,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72800,"nodeType":"FunctionDefinition","src":"775:72:126","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:126","parameters":{"id":72795,"nodeType":"ParameterList","parameters":[],"src":"798:2:126"},"returnParameters":{"id":72799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72800,"src":"819:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72797,"nodeType":"UserDefinedTypeName","pathNode":{"id":72796,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:126","834:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"819:26:126"},"referencedDeclaration":72810,"src":"819:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[72801],"name":"IPointStrategy","nameLocation":"504:14:126","scope":75570,"usedErrors":[]},{"id":72892,"nodeType":"ContractDefinition","src":"851:1969:126","nodes":[{"id":72805,"nodeType":"EnumDefinition","src":"880:79:126","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":72802,"name":"Signaling","nameLocation":"908:9:126","nodeType":"EnumValue","src":"908:9:126"},{"id":72803,"name":"Funding","nameLocation":"927:7:126","nodeType":"EnumValue","src":"927:7:126"},{"id":72804,"name":"Streaming","nameLocation":"944:9:126","nodeType":"EnumValue","src":"944:9:126"}],"name":"ProposalType","nameLocation":"885:12:126"},{"id":72810,"nodeType":"EnumDefinition","src":"965:92:126","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":72806,"name":"Fixed","nameLocation":"992:5:126","nodeType":"EnumValue","src":"992:5:126"},{"id":72807,"name":"Capped","nameLocation":"1007:6:126","nodeType":"EnumValue","src":"1007:6:126"},{"id":72808,"name":"Unlimited","nameLocation":"1023:9:126","nodeType":"EnumValue","src":"1023:9:126"},{"id":72809,"name":"Quadratic","nameLocation":"1042:9:126","nodeType":"EnumValue","src":"1042:9:126"}],"name":"PointSystem","nameLocation":"970:11:126"},{"id":72822,"nodeType":"StructDefinition","src":"1063:243:126","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":72812,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:126","nodeType":"VariableDeclaration","scope":72822,"src":"1126:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72811,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72814,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:126","nodeType":"VariableDeclaration","scope":72822,"src":"1150:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72813,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72816,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:126","nodeType":"VariableDeclaration","scope":72822,"src":"1217:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72818,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:126","nodeType":"VariableDeclaration","scope":72822,"src":"1250:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72817,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72821,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:126","nodeType":"VariableDeclaration","scope":72822,"src":"1282:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72820,"nodeType":"UserDefinedTypeName","pathNode":{"id":72819,"name":"Metadata","nameLocations":["1282:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:126"},"referencedDeclaration":3098,"src":"1282:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:126","scope":72892,"visibility":"public"},{"id":72828,"nodeType":"EnumDefinition","src":"1312:289:126","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":72823,"name":"Inactive","nameLocation":"1342:8:126","nodeType":"EnumValue","src":"1342:8:126"},{"id":72824,"name":"Active","nameLocation":"1372:6:126","nodeType":"EnumValue","src":"1372:6:126"},{"id":72825,"name":"Paused","nameLocation":"1435:6:126","nodeType":"EnumValue","src":"1435:6:126"},{"id":72826,"name":"Cancelled","nameLocation":"1500:9:126","nodeType":"EnumValue","src":"1500:9:126"},{"id":72827,"name":"Executed","nameLocation":"1553:8:126","nodeType":"EnumValue","src":"1553:8:126"}],"name":"ProposalStatus","nameLocation":"1317:14:126"},{"id":72855,"nodeType":"StructDefinition","src":"1607:405:126","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":72830,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:126","nodeType":"VariableDeclaration","scope":72855,"src":"1633:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72829,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:126","nodeType":"VariableDeclaration","scope":72855,"src":"1661:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72834,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:126","nodeType":"VariableDeclaration","scope":72855,"src":"1694:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72833,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72836,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1724:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72838,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:126","nodeType":"VariableDeclaration","scope":72855,"src":"1756:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72837,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72840,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"1785:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72839,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72842,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1812:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72841,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72844,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"1844:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72843,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72847,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1871:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":72846,"nodeType":"UserDefinedTypeName","pathNode":{"id":72845,"name":"ProposalStatus","nameLocations":["1871:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72828,"src":"1871:14:126"},"referencedDeclaration":72828,"src":"1871:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":72851,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:126","nodeType":"VariableDeclaration","scope":72855,"src":"1910:45:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":72850,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":72848,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":72849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":72854,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:126","nodeType":"VariableDeclaration","scope":72855,"src":"1988:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72853,"nodeType":"UserDefinedTypeName","pathNode":{"id":72852,"name":"Metadata","nameLocations":["1988:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:126"},"referencedDeclaration":3098,"src":"1988:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:126","scope":72892,"visibility":"public"},{"id":72860,"nodeType":"StructDefinition","src":"2018:126:126","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":72857,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:126","nodeType":"VariableDeclaration","scope":72860,"src":"2051:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72859,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:126","nodeType":"VariableDeclaration","scope":72860,"src":"2079:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72858,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:126","scope":72892,"visibility":"public"},{"id":72863,"nodeType":"StructDefinition","src":"2150:89:126","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":72862,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:126","nodeType":"VariableDeclaration","scope":72863,"src":"2215:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72861,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:126","scope":72892,"visibility":"public"},{"id":72868,"nodeType":"StructDefinition","src":"2245:88:126","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":72865,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:126","nodeType":"VariableDeclaration","scope":72868,"src":"2274:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72864,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72867,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:126","nodeType":"VariableDeclaration","scope":72868,"src":"2309:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72866,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:126","scope":72892,"visibility":"public"},{"id":72891,"nodeType":"StructDefinition","src":"2339:479:126","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":72870,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:126","nodeType":"VariableDeclaration","scope":72891,"src":"2373:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72869,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72872,"mutability":"mutable","name":"decay","nameLocation":"2445:5:126","nodeType":"VariableDeclaration","scope":72891,"src":"2437:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72874,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:126","nodeType":"VariableDeclaration","scope":72891,"src":"2507:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72873,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72876,"mutability":"mutable","name":"weight","nameLocation":"2569:6:126","nodeType":"VariableDeclaration","scope":72891,"src":"2561:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72875,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72878,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:126","nodeType":"VariableDeclaration","scope":72891,"src":"2585:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72877,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72881,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:126","nodeType":"VariableDeclaration","scope":72891,"src":"2646:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":72880,"nodeType":"UserDefinedTypeName","pathNode":{"id":72879,"name":"ProposalType","nameLocations":["2646:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"2646:12:126"},"referencedDeclaration":72805,"src":"2646:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":72884,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2716:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72883,"nodeType":"UserDefinedTypeName","pathNode":{"id":72882,"name":"PointSystem","nameLocations":["2716:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"2716:11:126"},"referencedDeclaration":72810,"src":"2716:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":72887,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2749:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":72886,"nodeType":"UserDefinedTypeName","pathNode":{"id":72885,"name":"PointSystemConfig","nameLocations":["2749:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"2749:17:126"},"referencedDeclaration":72863,"src":"2749:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":72890,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2788:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72868_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":72889,"nodeType":"UserDefinedTypeName","pathNode":{"id":72888,"name":"SybilConfig","nameLocations":["2788:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72868,"src":"2788:11:126"},"referencedDeclaration":72868,"src":"2788:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72868_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:126","scope":72892,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[72892],"name":"StrategyStruct","nameLocation":"859:14:126","scope":75570,"usedErrors":[]},{"id":75569,"nodeType":"ContractDefinition","src":"2822:37282:126","nodes":[{"id":72901,"nodeType":"UsingForDirective","src":"2888:23:126","nodes":[],"global":false,"libraryName":{"id":72899,"name":"Math","nameLocations":["2894:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":59177,"src":"2894:4:126"},"typeName":{"id":72900,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":72903,"nodeType":"ErrorDefinition","src":"3082:25:126","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:126","parameters":{"id":72902,"nodeType":"ParameterList","parameters":[],"src":"3104:2:126"}},{"id":72905,"nodeType":"ErrorDefinition","src":"3126:26:126","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:126","parameters":{"id":72904,"nodeType":"ParameterList","parameters":[],"src":"3149:2:126"}},{"id":72907,"nodeType":"ErrorDefinition","src":"3170:23:126","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:126","parameters":{"id":72906,"nodeType":"ParameterList","parameters":[],"src":"3190:2:126"}},{"id":72909,"nodeType":"ErrorDefinition","src":"3212:20:126","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:126","parameters":{"id":72908,"nodeType":"ParameterList","parameters":[],"src":"3229:2:126"}},{"id":72911,"nodeType":"ErrorDefinition","src":"3251:23:126","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:126","parameters":{"id":72910,"nodeType":"ParameterList","parameters":[],"src":"3271:2:126"}},{"id":72913,"nodeType":"ErrorDefinition","src":"3292:26:126","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:126","parameters":{"id":72912,"nodeType":"ParameterList","parameters":[],"src":"3315:2:126"}},{"id":72915,"nodeType":"ErrorDefinition","src":"3336:24:126","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:126","parameters":{"id":72914,"nodeType":"ParameterList","parameters":[],"src":"3357:2:126"}},{"id":72917,"nodeType":"ErrorDefinition","src":"3379:27:126","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:126","parameters":{"id":72916,"nodeType":"ParameterList","parameters":[],"src":"3403:2:126"}},{"id":72919,"nodeType":"ErrorDefinition","src":"3425:27:126","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:126","parameters":{"id":72918,"nodeType":"ParameterList","parameters":[],"src":"3449:2:126"}},{"id":72921,"nodeType":"ErrorDefinition","src":"3470:28:126","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:126","parameters":{"id":72920,"nodeType":"ParameterList","parameters":[],"src":"3495:2:126"}},{"id":72923,"nodeType":"ErrorDefinition","src":"3516:29:126","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:126","parameters":{"id":72922,"nodeType":"ParameterList","parameters":[],"src":"3542:2:126"}},{"id":72931,"nodeType":"ErrorDefinition","src":"3564:72:126","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:126","parameters":{"id":72930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72925,"mutability":"mutable","name":"_support","nameLocation":"3595:8:126","nodeType":"VariableDeclaration","scope":72931,"src":"3587:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72927,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:126","nodeType":"VariableDeclaration","scope":72931,"src":"3605:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72926,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":72929,"mutability":"mutable","name":"_result","nameLocation":"3627:7:126","nodeType":"VariableDeclaration","scope":72931,"src":"3620:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72928,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:126"}},{"id":72933,"nodeType":"ErrorDefinition","src":"3655:25:126","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:126","parameters":{"id":72932,"nodeType":"ParameterList","parameters":[],"src":"3677:2:126"}},{"id":72935,"nodeType":"ErrorDefinition","src":"3699:32:126","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:126","parameters":{"id":72934,"nodeType":"ParameterList","parameters":[],"src":"3728:2:126"}},{"id":72941,"nodeType":"ErrorDefinition","src":"3750:77:126","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:126","parameters":{"id":72940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72937,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:126","nodeType":"VariableDeclaration","scope":72941,"src":"3781:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72936,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72939,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:126","nodeType":"VariableDeclaration","scope":72941,"src":"3804:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72938,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:126"}},{"id":72943,"nodeType":"ErrorDefinition","src":"3847:28:126","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:126","parameters":{"id":72942,"nodeType":"ParameterList","parameters":[],"src":"3872:2:126"}},{"id":72945,"nodeType":"ErrorDefinition","src":"3893:31:126","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:126","parameters":{"id":72944,"nodeType":"ParameterList","parameters":[],"src":"3921:2:126"}},{"id":72949,"nodeType":"ErrorDefinition","src":"3942:45:126","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:126","parameters":{"id":72948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72947,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:126","nodeType":"VariableDeclaration","scope":72949,"src":"3966:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72946,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:126"}},{"id":72953,"nodeType":"ErrorDefinition","src":"4006:45:126","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:126","parameters":{"id":72952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72951,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:126","nodeType":"VariableDeclaration","scope":72953,"src":"4030:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72950,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:126"}},{"id":72959,"nodeType":"ErrorDefinition","src":"4070:68:126","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:126","parameters":{"id":72958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72955,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:126","nodeType":"VariableDeclaration","scope":72959,"src":"4102:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72954,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72957,"mutability":"mutable","name":"index","nameLocation":"4131:5:126","nodeType":"VariableDeclaration","scope":72959,"src":"4123:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72956,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:126"}},{"id":72961,"nodeType":"ErrorDefinition","src":"4156:40:126","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:126","parameters":{"id":72960,"nodeType":"ParameterList","parameters":[],"src":"4193:2:126"}},{"id":72963,"nodeType":"ErrorDefinition","src":"4215:29:126","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:126","parameters":{"id":72962,"nodeType":"ParameterList","parameters":[],"src":"4241:2:126"}},{"id":72971,"nodeType":"ErrorDefinition","src":"4263:94:126","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:126","parameters":{"id":72970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72965,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:126","nodeType":"VariableDeclaration","scope":72971,"src":"4289:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72964,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72967,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:126","nodeType":"VariableDeclaration","scope":72971,"src":"4310:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72969,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:126","nodeType":"VariableDeclaration","scope":72971,"src":"4336:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72968,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:126"}},{"id":72978,"nodeType":"EventDefinition","src":"4542:74:126","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:126","parameters":{"id":72977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72973,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:126","nodeType":"VariableDeclaration","scope":72978,"src":"4562:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72972,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72976,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:126","nodeType":"VariableDeclaration","scope":72978,"src":"4578:36:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":72975,"nodeType":"UserDefinedTypeName","pathNode":{"id":72974,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:126","4593:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"4578:31:126"},"referencedDeclaration":72891,"src":"4578:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:126"}},{"id":72986,"nodeType":"EventDefinition","src":"4621:75:126","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:126","parameters":{"id":72985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72980,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:126","nodeType":"VariableDeclaration","scope":72986,"src":"4639:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72982,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:126","nodeType":"VariableDeclaration","scope":72986,"src":"4659:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72981,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72984,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:126","nodeType":"VariableDeclaration","scope":72986,"src":"4680:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72983,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:126"}},{"id":72992,"nodeType":"EventDefinition","src":"4701:58:126","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:126","parameters":{"id":72991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72988,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:126","nodeType":"VariableDeclaration","scope":72992,"src":"4723:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72987,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72990,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:126","nodeType":"VariableDeclaration","scope":72992,"src":"4739:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72989,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:126"}},{"id":72996,"nodeType":"EventDefinition","src":"4764:42:126","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:126","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72994,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:126","nodeType":"VariableDeclaration","scope":72996,"src":"4790:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72993,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:126"}},{"id":73004,"nodeType":"EventDefinition","src":"4811:85:126","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:126","parameters":{"id":73003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72998,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:126","nodeType":"VariableDeclaration","scope":73004,"src":"4832:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72997,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73000,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:126","nodeType":"VariableDeclaration","scope":73004,"src":"4848:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73002,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:126","nodeType":"VariableDeclaration","scope":73004,"src":"4870:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:126"}},{"id":73012,"nodeType":"EventDefinition","src":"4901:87:126","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:126","parameters":{"id":73011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73006,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:126","nodeType":"VariableDeclaration","scope":73012,"src":"4922:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73005,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73008,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:126","nodeType":"VariableDeclaration","scope":73012,"src":"4938:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73007,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73010,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:126","nodeType":"VariableDeclaration","scope":73012,"src":"4962:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:126"}},{"id":73024,"nodeType":"EventDefinition","src":"4993:134:126","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:126","parameters":{"id":73023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73014,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:126","nodeType":"VariableDeclaration","scope":73024,"src":"5021:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73013,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73016,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:126","nodeType":"VariableDeclaration","scope":73024,"src":"5035:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73015,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73018,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:126","nodeType":"VariableDeclaration","scope":73024,"src":"5055:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73017,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73020,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:126","nodeType":"VariableDeclaration","scope":73024,"src":"5071:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73019,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73022,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:126","nodeType":"VariableDeclaration","scope":73024,"src":"5098:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:126"}},{"id":73028,"nodeType":"EventDefinition","src":"5132:40:126","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:126","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73026,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:126","nodeType":"VariableDeclaration","scope":73028,"src":"5156:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73025,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:126"}},{"id":73032,"nodeType":"EventDefinition","src":"5177:34:126","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:126","parameters":{"id":73031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73030,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:126","nodeType":"VariableDeclaration","scope":73032,"src":"5196:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:126"}},{"id":73036,"nodeType":"EventDefinition","src":"5216:40:126","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:126","parameters":{"id":73035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73034,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:126","nodeType":"VariableDeclaration","scope":73036,"src":"5238:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73033,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:126"}},{"id":73040,"nodeType":"EventDefinition","src":"5261:36:126","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:126","parameters":{"id":73039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73038,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:126","nodeType":"VariableDeclaration","scope":73040,"src":"5281:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:126"}},{"id":73044,"nodeType":"EventDefinition","src":"5302:49:126","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:126","parameters":{"id":73043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73042,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:126","nodeType":"VariableDeclaration","scope":73044,"src":"5324:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73041,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:126"}},{"id":73050,"nodeType":"EventDefinition","src":"5356:76:126","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:126","parameters":{"id":73049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73046,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:126","nodeType":"VariableDeclaration","scope":73050,"src":"5388:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73045,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73048,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:126","nodeType":"VariableDeclaration","scope":73050,"src":"5404:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73047,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:126"}},{"id":73053,"nodeType":"VariableDeclaration","src":"5806:36:126","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73051,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:126","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73056,"nodeType":"VariableDeclaration","src":"5856:70:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73054,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:126","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73059,"nodeType":"VariableDeclaration","src":"5942:69:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73057,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:126","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73062,"nodeType":"VariableDeclaration","src":"6027:53:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73065,"nodeType":"VariableDeclaration","src":"6095:49:126","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73063,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73067,"nodeType":"VariableDeclaration","src":"6272:20:126","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73066,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73069,"nodeType":"VariableDeclaration","src":"6298:23:126","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73068,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73071,"nodeType":"VariableDeclaration","src":"6327:21:126","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73074,"nodeType":"VariableDeclaration","src":"6354:34:126","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73072,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73076,"nodeType":"VariableDeclaration","src":"6394:26:126","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73075,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73078,"nodeType":"VariableDeclaration","src":"6426:35:126","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73081,"nodeType":"VariableDeclaration","src":"6467:38:126","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73079,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73083,"nodeType":"VariableDeclaration","src":"6546:47:126","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73082,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73086,"nodeType":"VariableDeclaration","src":"6678:47:126","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73085,"nodeType":"UserDefinedTypeName","pathNode":{"id":73084,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:126","6693:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"6678:27:126"},"referencedDeclaration":72805,"src":"6678:27:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73089,"nodeType":"VariableDeclaration","src":"6784:45:126","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73088,"nodeType":"UserDefinedTypeName","pathNode":{"id":73087,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:126","6799:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"6784:26:126"},"referencedDeclaration":72810,"src":"6784:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73092,"nodeType":"VariableDeclaration","src":"6835:51:126","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73091,"nodeType":"UserDefinedTypeName","pathNode":{"id":73090,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:126","6850:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"6835:32:126"},"referencedDeclaration":72863,"src":"6835:32:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73095,"nodeType":"VariableDeclaration","src":"6919:42:126","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"},"typeName":{"id":73094,"nodeType":"UserDefinedTypeName","pathNode":{"id":73093,"name":"RegistryCommunity","nameLocations":["6919:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"6919:17:126"},"referencedDeclaration":77692,"src":"6919:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73100,"nodeType":"VariableDeclaration","src":"7028:60:126","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73099,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73096,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73098,"nodeType":"UserDefinedTypeName","pathNode":{"id":73097,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:126","7062:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"7047:23:126"},"referencedDeclaration":72855,"src":"7047:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73104,"nodeType":"VariableDeclaration","src":"7144:53:126","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73103,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73101,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73102,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73109,"nodeType":"VariableDeclaration","src":"7235:57:126","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73108,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73105,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73107,"nodeType":"ArrayTypeName","src":"7254:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73122,"nodeType":"FunctionDefinition","src":"7496:72:126","nodes":[],"body":{"id":73121,"nodeType":"Block","src":"7566:2:126","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73116,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73111,"src":"7544:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73114,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:126","typeDescriptions":{}}},"id":73117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73119,"kind":"baseConstructorSpecifier","modifierName":{"id":73113,"name":"BaseStrategy","nameLocations":["7523:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:126"},"nodeType":"ModifierInvocation","src":"7523:42:126"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73111,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:126","nodeType":"VariableDeclaration","scope":73122,"src":"7508:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73110,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:126"},"returnParameters":{"id":73120,"nodeType":"ParameterList","parameters":[],"src":"7566:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73206,"nodeType":"FunctionDefinition","src":"7574:1028:126","nodes":[],"body":{"id":73205,"nodeType":"Block","src":"7640:962:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":73130,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"7670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73129,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73132,"nodeType":"ExpressionStatement","src":"7650:28:126"},{"assignments":[73137],"declarations":[{"constant":false,"id":73137,"mutability":"mutable","name":"ip","nameLocation":"7727:2:126","nodeType":"VariableDeclaration","scope":73205,"src":"7688:41:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73136,"nodeType":"UserDefinedTypeName","pathNode":{"id":73135,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:126","7703:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"7688:31:126"},"referencedDeclaration":72891,"src":"7688:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73145,"initialValue":{"arguments":[{"id":73140,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73126,"src":"7743:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73141,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"7751:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:126","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":72891,"src":"7751:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:126","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73146,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8139:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8139:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:126","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":73149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73148,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:126","typeDescriptions":{}}},"id":73151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73157,"nodeType":"IfStatement","src":"8135:94:126","trueBody":{"id":73156,"nodeType":"Block","src":"8175:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73153,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"8196:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73155,"nodeType":"RevertStatement","src":"8189:29:126"}]}},{"expression":{"id":73163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73158,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"8239:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73160,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8277:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8277:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73159,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"8259:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77692_$","typeString":"type(contract RegistryCommunity)"}},"id":73162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"src":"8239:59:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73164,"nodeType":"ExpressionStatement","src":"8239:59:126"},{"expression":{"id":73168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73165,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"8308:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73166,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8316:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:126","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72872,"src":"8316:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73169,"nodeType":"ExpressionStatement","src":"8308:16:126"},{"expression":{"id":73173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73170,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"8334:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73171,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8345:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:126","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72874,"src":"8345:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73174,"nodeType":"ExpressionStatement","src":"8334:22:126"},{"expression":{"id":73178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73175,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"8366:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73176,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8375:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:126","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"8375:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73179,"nodeType":"ExpressionStatement","src":"8366:18:126"},{"expression":{"id":73183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73180,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"8394:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73181,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8409:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:126","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72881,"src":"8409:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"id":73184,"nodeType":"ExpressionStatement","src":"8394:30:126"},{"expression":{"id":73188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73185,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"8434:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73186,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8448:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:126","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72884,"src":"8448:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"id":73189,"nodeType":"ExpressionStatement","src":"8434:28:126"},{"expression":{"id":73193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73190,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"8472:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73191,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8486:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:126","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72887,"src":"8486:14:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73194,"nodeType":"ExpressionStatement","src":"8472:28:126"},{"expression":{"id":73198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73195,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"8510:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73196,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8532:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:126","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":72878,"src":"8532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73199,"nodeType":"ExpressionStatement","src":"8510:43:126"},{"eventCall":{"arguments":[{"id":73201,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"8583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73202,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8592:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73200,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72978,"src":"8569:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$72891_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73204,"nodeType":"EmitStatement","src":"8564:31:126"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:126","parameters":{"id":73127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73124,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:126","nodeType":"VariableDeclaration","scope":73206,"src":"7594:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73123,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73126,"mutability":"mutable","name":"_data","nameLocation":"7624:5:126","nodeType":"VariableDeclaration","scope":73206,"src":"7611:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73125,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:126"},"returnParameters":{"id":73128,"nodeType":"ParameterList","parameters":[],"src":"7640:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73210,"nodeType":"FunctionDefinition","src":"8773:83:126","nodes":[],"body":{"id":73209,"nodeType":"Block","src":"8801:55:126","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73207,"nodeType":"ParameterList","parameters":[],"src":"8781:2:126"},"returnParameters":{"id":73208,"nodeType":"ParameterList","parameters":[],"src":"8801:0:126"},"scope":75569,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73214,"nodeType":"FunctionDefinition","src":"8862:135:126","nodes":[],"body":{"id":73213,"nodeType":"Block","src":"8889:108:126","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73211,"nodeType":"ParameterList","parameters":[],"src":"8869:2:126"},"returnParameters":{"id":73212,"nodeType":"ParameterList","parameters":[],"src":"8889:0:126"},"scope":75569,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73235,"nodeType":"FunctionDefinition","src":"9003:202:126","nodes":[],"body":{"id":73234,"nodeType":"Block","src":"9094:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73216,"src":"9111:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73224,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"9131:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":73223,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:126","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":73226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:126","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73230,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73216,"src":"9186:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73228,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75569_$","typeString":"type(contract super CVStrategy)"}},"id":73229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:126","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58104,"src":"9162:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73221,"id":73233,"nodeType":"Return","src":"9104:94:126"}]},"baseFunctions":[58104],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:126","overrides":{"id":73218,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:126"},"parameters":{"id":73217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73216,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:126","nodeType":"VariableDeclaration","scope":73235,"src":"9030:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73215,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:126"},"returnParameters":{"id":73221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73235,"src":"9088:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73219,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:126"},"scope":75569,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73276,"nodeType":"FunctionDefinition","src":"9376:377:126","nodes":[],"body":{"id":73275,"nodeType":"Block","src":"9435:318:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73240,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73237,"src":"9449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:126","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":73242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73241,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:126","typeDescriptions":{}}},"id":73244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73250,"nodeType":"IfStatement","src":"9445:77:126","trueBody":{"id":73249,"nodeType":"Block","src":"9472:50:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73246,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"9493:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73248,"nodeType":"RevertStatement","src":"9486:25:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73253,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9543:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":73252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73251,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:126","typeDescriptions":{}}},"id":73254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:126","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":73256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73255,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:126","typeDescriptions":{}}},"id":73258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73264,"nodeType":"IfStatement","src":"9531:100:126","trueBody":{"id":73263,"nodeType":"Block","src":"9577:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73260,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"9598:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73262,"nodeType":"RevertStatement","src":"9591:29:126"}]}},{"condition":{"id":73269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:126","subExpression":{"arguments":[{"id":73267,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73237,"src":"9672:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73265,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9645:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:126","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77273,"src":"9645:26:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73274,"nodeType":"IfStatement","src":"9640:93:126","trueBody":{"id":73273,"nodeType":"Block","src":"9682:51:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73270,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"9703:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73272,"nodeType":"RevertStatement","src":"9696:26:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:126","parameters":{"id":73238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73237,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:126","nodeType":"VariableDeclaration","scope":73276,"src":"9405:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73236,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:126"},"returnParameters":{"id":73239,"nodeType":"ParameterList","parameters":[],"src":"9435:0:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73292,"nodeType":"FunctionDefinition","src":"9759:162:126","nodes":[],"body":{"id":73291,"nodeType":"Block","src":"9805:116:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:126","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73283,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9841:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":73282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73281,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:126","typeDescriptions":{}}},"id":73284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73290,"nodeType":"IfStatement","src":"9815:100:126","trueBody":{"id":73289,"nodeType":"Block","src":"9861:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73286,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72963,"src":"9882:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73288,"nodeType":"RevertStatement","src":"9875:29:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:126","parameters":{"id":73277,"nodeType":"ParameterList","parameters":[],"src":"9789:2:126"},"returnParameters":{"id":73278,"nodeType":"ParameterList","parameters":[],"src":"9805:0:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73308,"nodeType":"FunctionDefinition","src":"9927:132:126","nodes":[],"body":{"id":73307,"nodeType":"Block","src":"9986:73:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73297,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73294,"src":"10000:8:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:126","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":73299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73298,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:126","typeDescriptions":{}}},"id":73301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73306,"nodeType":"IfStatement","src":"9996:56:126","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73303,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72921,"src":"10031:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73305,"nodeType":"RevertStatement","src":"10024:28:126"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:126","parameters":{"id":73295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73294,"mutability":"mutable","name":"_address","nameLocation":"9962:8:126","nodeType":"VariableDeclaration","scope":73308,"src":"9954:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73293,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:126"},"returnParameters":{"id":73296,"nodeType":"ParameterList","parameters":[],"src":"9986:0:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73483,"nodeType":"FunctionDefinition","src":"10385:1945:126","nodes":[],"body":{"id":73482,"nodeType":"Block","src":"10486:1844:126","nodes":[],"statements":[{"expression":{"id":73318,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"10541:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73319,"nodeType":"ExpressionStatement","src":"10541:5:126"},{"assignments":[73324],"declarations":[{"constant":false,"id":73324,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:126","nodeType":"VariableDeclaration","scope":73482,"src":"10556:45:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73323,"nodeType":"UserDefinedTypeName","pathNode":{"id":73322,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:126","10571:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72822,"src":"10556:29:126"},"referencedDeclaration":72822,"src":"10556:29:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73332,"initialValue":{"arguments":[{"id":73327,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"10615:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73328,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"10623:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:126","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"10623:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73325,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:126","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73333,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"10769:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:126","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":72812,"src":"10769:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73341,"nodeType":"IfStatement","src":"10765:78:126","trueBody":{"id":73340,"nodeType":"Block","src":"10791:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73337,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72919,"src":"10812:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73339,"nodeType":"RevertStatement","src":"10805:27:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":73346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73342,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"10919:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73343,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"10935:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72805,"src":"10935:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72805_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72803,"src":"10935:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73393,"nodeType":"IfStatement","src":"10915:721:126","trueBody":{"id":73392,"nodeType":"Block","src":"10972:664:126","statements":[{"expression":{"arguments":[{"expression":{"id":73348,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11004:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"11004:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73347,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73308,"src":"10986:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73351,"nodeType":"ExpressionStatement","src":"10986:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73352,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11091:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11091:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:126","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":73355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73354,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:126","typeDescriptions":{}}},"id":73357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73363,"nodeType":"IfStatement","src":"11087:102:126","trueBody":{"id":73362,"nodeType":"Block","src":"11130:59:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73359,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"11155:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73361,"nodeType":"RevertStatement","src":"11148:26:126"}]}},{"assignments":[73365],"declarations":[{"constant":false,"id":73365,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:126","nodeType":"VariableDeclaration","scope":73392,"src":"11202:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73364,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73373,"initialValue":{"expression":{"arguments":[{"id":73370,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73366,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}},"id":73367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:126","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73374,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11276:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11276:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73376,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73365,"src":"11303:9:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73382,"nodeType":"IfStatement","src":"11272:234:126","trueBody":{"id":73381,"nodeType":"Block","src":"11314:192:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73378,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"11474:15:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73380,"nodeType":"RevertStatement","src":"11467:24:126"}]}},{"condition":{"arguments":[{"expression":{"id":73384,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11539:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"11539:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73383,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74650,"src":"11523:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73391,"nodeType":"IfStatement","src":"11519:107:126","trueBody":{"id":73390,"nodeType":"Block","src":"11566:60:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73387,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72917,"src":"11591:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73389,"nodeType":"RevertStatement","src":"11584:27:126"}]}}]}},{"assignments":[73395],"declarations":[{"constant":false,"id":73395,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:126","nodeType":"VariableDeclaration","scope":73482,"src":"11645:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73394,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73398,"initialValue":{"id":73397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:126","subExpression":{"id":73396,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73074,"src":"11668:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:126"},{"assignments":[73403],"declarations":[{"constant":false,"id":73403,"mutability":"mutable","name":"p","nameLocation":"11725:1:126","nodeType":"VariableDeclaration","scope":73482,"src":"11693:33:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73402,"nodeType":"UserDefinedTypeName","pathNode":{"id":73401,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:126","11708:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"11693:23:126"},"referencedDeclaration":72855,"src":"11693:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73407,"initialValue":{"baseExpression":{"id":73404,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"11729:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73406,"indexExpression":{"id":73405,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11739:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:126"},{"expression":{"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73408,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11761:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"11761:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73411,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11776:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73413,"nodeType":"ExpressionStatement","src":"11761:25:126"},{"expression":{"id":73418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73414,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11796:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"11796:11:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73417,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73312,"src":"11810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73419,"nodeType":"ExpressionStatement","src":"11796:21:126"},{"expression":{"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73420,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11827:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"11827:13:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11843:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"11843:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73426,"nodeType":"ExpressionStatement","src":"11827:36:126"},{"expression":{"id":73432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73427,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11873:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72842,"src":"11873:16:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73430,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11892:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11892:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73433,"nodeType":"ExpressionStatement","src":"11873:42:126"},{"expression":{"id":73439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73434,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11925:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"11925:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73437,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11945:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"11945:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73440,"nodeType":"ExpressionStatement","src":"11925:44:126"},{"expression":{"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12030:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"12030:16:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73444,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"12049:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"12049:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"12049:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73448,"nodeType":"ExpressionStatement","src":"12030:55:126"},{"expression":{"id":73454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73449,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12095:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"12095:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73452,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:126","memberName":"number","nodeType":"MemberAccess","src":"12109:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73455,"nodeType":"ExpressionStatement","src":"12095:26:126"},{"expression":{"id":73460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73456,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12131:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"12131:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73461,"nodeType":"ExpressionStatement","src":"12131:20:126"},{"expression":{"id":73467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73462,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12197:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"12197:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73465,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"12210:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72821,"src":"12210:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73468,"nodeType":"ExpressionStatement","src":"12197:30:126"},{"eventCall":{"arguments":[{"id":73470,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73471,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12267:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73469,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72992,"src":"12243:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73473,"nodeType":"EmitStatement","src":"12238:40:126"},{"expression":{"arguments":[{"arguments":[{"id":73478,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12311:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73476,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:126","typeDescriptions":{}}},"id":73479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73474,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:126","typeDescriptions":{}}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73317,"id":73481,"nodeType":"Return","src":"12288:35:126"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:126","overrides":{"id":73314,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:126"},"parameters":{"id":73313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73310,"mutability":"mutable","name":"_data","nameLocation":"10426:5:126","nodeType":"VariableDeclaration","scope":73483,"src":"10413:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73309,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73312,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:126","nodeType":"VariableDeclaration","scope":73483,"src":"10433:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73311,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:126"},"returnParameters":{"id":73317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73483,"src":"10477:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73315,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73513,"nodeType":"FunctionDefinition","src":"12336:253:126","nodes":[],"body":{"id":73512,"nodeType":"Block","src":"12371:218:126","nodes":[],"statements":[{"assignments":[73487],"declarations":[{"constant":false,"id":73487,"mutability":"mutable","name":"member","nameLocation":"12389:6:126","nodeType":"VariableDeclaration","scope":73512,"src":"12381:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73486,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73490,"initialValue":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:126"},{"expression":{"arguments":[{"id":73494,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73487,"src":"12461:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73497,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73495,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:126","typeDescriptions":{}}},"id":73498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73491,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12418:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:126","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"12418:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73500,"nodeType":"ExpressionStatement","src":"12418:65:126"},{"expression":{"id":73510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73501,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"12493:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73504,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73487,"src":"12560:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73507,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73505,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:126","typeDescriptions":{}}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73502,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12517:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"12517:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73511,"nodeType":"ExpressionStatement","src":"12493:89:126"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:126","parameters":{"id":73484,"nodeType":"ParameterList","parameters":[],"src":"12359:2:126"},"returnParameters":{"id":73485,"nodeType":"ParameterList","parameters":[],"src":"12371:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73522,"nodeType":"FunctionDefinition","src":"12595:81:126","nodes":[],"body":{"id":73521,"nodeType":"Block","src":"12630:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73516,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"12640:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73520,"nodeType":"ExpressionStatement","src":"12640:29:126"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:126","parameters":{"id":73514,"nodeType":"ParameterList","parameters":[],"src":"12620:2:126"},"returnParameters":{"id":73515,"nodeType":"ParameterList","parameters":[],"src":"12630:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73535,"nodeType":"FunctionDefinition","src":"12682:128:126","nodes":[],"body":{"id":73534,"nodeType":"Block","src":"12734:76:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73527,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"12744:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73529,"nodeType":"ExpressionStatement","src":"12744:23:126"},{"expression":{"arguments":[{"id":73531,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73524,"src":"12795:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73530,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"12777:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73533,"nodeType":"ExpressionStatement","src":"12777:26:126"}]},"baseFunctions":[72776],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:126","parameters":{"id":73525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73524,"mutability":"mutable","name":"_member","nameLocation":"12716:7:126","nodeType":"VariableDeclaration","scope":73535,"src":"12708:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73523,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:126"},"returnParameters":{"id":73526,"nodeType":"ParameterList","parameters":[],"src":"12734:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73570,"nodeType":"FunctionDefinition","src":"12816:351:126","nodes":[],"body":{"id":73569,"nodeType":"Block","src":"12869:298:126","nodes":[],"statements":[{"expression":{"id":73549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73540,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"12879:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73543,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"12946:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73546,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73544,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:126","typeDescriptions":{}}},"id":73547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73541,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12903:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"12903:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73550,"nodeType":"ExpressionStatement","src":"12879:90:126"},{"expression":{"arguments":[{"id":73554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13024:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73557,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73555,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:126","typeDescriptions":{}}},"id":73558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73551,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12979:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:126","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76710,"src":"12979:44:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"ExpressionStatement","src":"12979:68:126"},{"expression":{"arguments":[{"id":73562,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13111:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"13102:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73564,"nodeType":"ExpressionStatement","src":"13102:17:126"},{"eventCall":{"arguments":[{"id":73566,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73565,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73028,"src":"13134:17:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73568,"nodeType":"EmitStatement","src":"13129:31:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:126","parameters":{"id":73538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73537,"mutability":"mutable","name":"_member","nameLocation":"12851:7:126","nodeType":"VariableDeclaration","scope":73570,"src":"12843:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:126"},"returnParameters":{"id":73539,"nodeType":"ParameterList","parameters":[],"src":"12869:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73654,"nodeType":"FunctionDefinition","src":"13173:958:126","nodes":[],"body":{"id":73653,"nodeType":"Block","src":"13264:867:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73579,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"13319:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73581,"nodeType":"ExpressionStatement","src":"13319:23:126"},{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:126","nodeType":"VariableDeclaration","scope":73653,"src":"13352:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73582,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73585,"initialValue":{"hexValue":"30","id":73584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73586,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13394:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73587,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13409:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13409:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"13409:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73598,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13539:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73599,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13554:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13554:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72807,"src":"13554:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73611,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13687:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73612,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13702:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13702:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:126","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72809,"src":"13702:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73624,"nodeType":"IfStatement","src":"13683:148:126","trueBody":{"id":73623,"nodeType":"Block","src":"13740:91:126","statements":[{"expression":{"id":73621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73616,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13754:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73618,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13796:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73619,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13805:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73617,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73867,"src":"13773:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73622,"nodeType":"ExpressionStatement","src":"13754:66:126"}]}},"id":73625,"nodeType":"IfStatement","src":"13535:296:126","trueBody":{"id":73610,"nodeType":"Block","src":"13589:88:126","statements":[{"expression":{"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73603,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13603:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13642:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73606,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13651:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73604,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73783,"src":"13622:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73609,"nodeType":"ExpressionStatement","src":"13603:63:126"}]}},"id":73626,"nodeType":"IfStatement","src":"13390:441:126","trueBody":{"id":73597,"nodeType":"Block","src":"13447:82:126","statements":[{"expression":{"id":73595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73591,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13461:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73593,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13503:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73592,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73720,"src":"13480:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73596,"nodeType":"ExpressionStatement","src":"13461:57:126"}]}},{"assignments":[73628],"declarations":[{"constant":false,"id":73628,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:126","nodeType":"VariableDeclaration","scope":73653,"src":"13840:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73627,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73637,"initialValue":{"arguments":[{"id":73631,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13905:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73634,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73632,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:126","typeDescriptions":{}}},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73629,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"13859:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76185,"src":"13859:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:126"},{"condition":{"id":73638,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73628,"src":"13942:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73644,"nodeType":"IfStatement","src":"13938:82:126","trueBody":{"id":73643,"nodeType":"Block","src":"13955:65:126","statements":[{"expression":{"id":73641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73639,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"13969:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73640,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13993:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73642,"nodeType":"ExpressionStatement","src":"13969:40:126"}]}},{"eventCall":{"arguments":[{"id":73646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"14049:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73647,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"14058:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73648,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"14074:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73645,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73004,"src":"14034:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73650,"nodeType":"EmitStatement","src":"14029:62:126"},{"expression":{"id":73651,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"14108:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73578,"id":73652,"nodeType":"Return","src":"14101:23:126"}]},"baseFunctions":[72785],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:126","parameters":{"id":73575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73572,"mutability":"mutable","name":"_member","nameLocation":"13204:7:126","nodeType":"VariableDeclaration","scope":73654,"src":"13196:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73571,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73574,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:126","nodeType":"VariableDeclaration","scope":73654,"src":"13213:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73573,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:126"},"returnParameters":{"id":73578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73654,"src":"13255:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73576,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73710,"nodeType":"FunctionDefinition","src":"14137:681:126","nodes":[],"body":{"id":73709,"nodeType":"Block","src":"14230:588:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73663,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"14240:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73665,"nodeType":"ExpressionStatement","src":"14240:23:126"},{"assignments":[73667],"declarations":[{"constant":false,"id":73667,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:126","nodeType":"VariableDeclaration","scope":73709,"src":"14319:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73666,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73669,"initialValue":{"hexValue":"30","id":73668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73670,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"14361:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73671,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"14376:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"14376:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"14376:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73675,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"14416:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73676,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"14431:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"14431:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72807,"src":"14431:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73695,"nodeType":"Block","src":"14562:93:126","statements":[{"expression":{"id":73693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73688,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14576:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73690,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73656,"src":"14618:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73691,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14627:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73689,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73971,"src":"14595:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73694,"nodeType":"ExpressionStatement","src":"14576:68:126"}]},"id":73696,"nodeType":"IfStatement","src":"14357:298:126","trueBody":{"id":73687,"nodeType":"Block","src":"14466:90:126","statements":[{"expression":{"id":73685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73681,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14480:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73683,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14528:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73682,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14499:28:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73686,"nodeType":"ExpressionStatement","src":"14480:65:126"}]}},{"expression":{"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73697,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"14664:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73698,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14688:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73700,"nodeType":"ExpressionStatement","src":"14664:40:126"},{"eventCall":{"arguments":[{"id":73702,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73656,"src":"14734:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73703,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14743:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73704,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14761:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73701,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73012,"src":"14719:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73706,"nodeType":"EmitStatement","src":"14714:64:126"},{"expression":{"id":73707,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14795:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73662,"id":73708,"nodeType":"Return","src":"14788:23:126"}]},"baseFunctions":[72794],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:126","parameters":{"id":73659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73656,"mutability":"mutable","name":"_member","nameLocation":"14168:7:126","nodeType":"VariableDeclaration","scope":73710,"src":"14160:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73655,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73658,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:126","nodeType":"VariableDeclaration","scope":73710,"src":"14177:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73657,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:126"},"returnParameters":{"id":73662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73710,"src":"14221:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73660,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73720,"nodeType":"FunctionDefinition","src":"14824:126:126","nodes":[],"body":{"id":73719,"nodeType":"Block","src":"14912:38:126","nodes":[],"statements":[{"expression":{"id":73717,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73712,"src":"14929:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73716,"id":73718,"nodeType":"Return","src":"14922:21:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:126","parameters":{"id":73713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73712,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:126","nodeType":"VariableDeclaration","scope":73720,"src":"14856:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73711,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:126"},"returnParameters":{"id":73716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73720,"src":"14903:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73714,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73783,"nodeType":"FunctionDefinition","src":"14956:615:126","nodes":[],"body":{"id":73782,"nodeType":"Block","src":"15058:513:126","nodes":[],"statements":[{"assignments":[73730],"declarations":[{"constant":false,"id":73730,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:126","nodeType":"VariableDeclaration","scope":73782,"src":"15068:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73729,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73732,"initialValue":{"id":73731,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73724,"src":"15095:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:126"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73737,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15153:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73733,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15119:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15119:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73739,"nodeType":"ExpressionStatement","src":"15119:51:126"},{"assignments":[73741],"declarations":[{"constant":false,"id":73741,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:126","nodeType":"VariableDeclaration","scope":73782,"src":"15180:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73740,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73750,"initialValue":{"arguments":[{"id":73744,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15245:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73747,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73745,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:126","typeDescriptions":{}}},"id":73748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73742,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15202:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"15202:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:126"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73755,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15305:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73751,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15278:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15278:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73757,"nodeType":"ExpressionStatement","src":"15278:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73758,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15331:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73759,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15345:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73761,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"15364:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"15364:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73772,"nodeType":"IfStatement","src":"15327:139:126","trueBody":{"id":73771,"nodeType":"Block","src":"15387:79:126","statements":[{"expression":{"id":73769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73764,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15401:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73765,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"15420:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"15420:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73767,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15444:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73770,"nodeType":"ExpressionStatement","src":"15401:54:126"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73777,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15513:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73773,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15475:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15475:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73779,"nodeType":"ExpressionStatement","src":"15475:55:126"},{"expression":{"id":73780,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15548:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73728,"id":73781,"nodeType":"Return","src":"15541:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:126","parameters":{"id":73725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73722,"mutability":"mutable","name":"_member","nameLocation":"14993:7:126","nodeType":"VariableDeclaration","scope":73783,"src":"14985:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73721,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73724,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:126","nodeType":"VariableDeclaration","scope":73783,"src":"15002:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73723,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:126"},"returnParameters":{"id":73728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73783,"src":"15049:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73726,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73867,"nodeType":"FunctionDefinition","src":"15577:730:126","nodes":[],"body":{"id":73866,"nodeType":"Block","src":"15682:625:126","nodes":[],"statements":[{"assignments":[73793],"declarations":[{"constant":false,"id":73793,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:126","nodeType":"VariableDeclaration","scope":73866,"src":"15692:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73792,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73800,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73796,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"15753:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73794,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15713:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77046,"src":"15713:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73798,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73787,"src":"15764:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:126"},{"assignments":[73802],"declarations":[{"constant":false,"id":73802,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:126","nodeType":"VariableDeclaration","scope":73866,"src":"15789:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73801,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73804,"initialValue":{"hexValue":"3138","id":73803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:126"},{"clauses":[{"block":{"id":73825,"nodeType":"Block","src":"15907:52:126","statements":[{"expression":{"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73818,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73802,"src":"15921:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73821,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73816,"src":"15939:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73819,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:126","typeDescriptions":{}}},"id":73822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73824,"nodeType":"ExpressionStatement","src":"15921:27:126"}]},"errorName":"","id":73826,"nodeType":"TryCatchClause","parameters":{"id":73817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73816,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:126","nodeType":"VariableDeclaration","scope":73826,"src":"15891:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73815,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:126"},"src":"15882:77:126"},{"block":{"id":73833,"nodeType":"Block","src":"15966:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73827,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15980:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"15980:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73832,"nodeType":"ExpressionStatement","src":"15980:36:126"}]},"errorName":"","id":73834,"nodeType":"TryCatchClause","src":"15960:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73808,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15837:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"15837:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73806,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:126","typeDescriptions":{}}},"id":73811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73805,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"15823:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"15823:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73835,"nodeType":"TryStatement","src":"15819:208:126"},{"assignments":[73837],"declarations":[{"constant":false,"id":73837,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:126","nodeType":"VariableDeclaration","scope":73866,"src":"16036:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73836,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73846,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73840,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"16071:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73842,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73802,"src":"16090:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73838,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"16061:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59177_$","typeString":"type(library Math)"}},"id":73839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58681,"src":"16061:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:126"},{"assignments":[73848],"declarations":[{"constant":false,"id":73848,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:126","nodeType":"VariableDeclaration","scope":73866,"src":"16108:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73847,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73857,"initialValue":{"arguments":[{"id":73851,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"16175:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73854,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73852,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:126","typeDescriptions":{}}},"id":73855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73849,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16132:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"16132:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:126"},{"assignments":[73859],"declarations":[{"constant":false,"id":73859,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:126","nodeType":"VariableDeclaration","scope":73866,"src":"16209:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73858,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73863,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73860,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73837,"src":"16236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73861,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"16253:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:126"},{"expression":{"id":73864,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73859,"src":"16284:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73791,"id":73865,"nodeType":"Return","src":"16277:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:126","parameters":{"id":73788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73785,"mutability":"mutable","name":"_member","nameLocation":"15617:7:126","nodeType":"VariableDeclaration","scope":73867,"src":"15609:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73784,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73787,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:126","nodeType":"VariableDeclaration","scope":73867,"src":"15626:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73786,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:126"},"returnParameters":{"id":73791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73867,"src":"15673:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73789,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73877,"nodeType":"FunctionDefinition","src":"16313:136:126","nodes":[],"body":{"id":73876,"nodeType":"Block","src":"16409:40:126","nodes":[],"statements":[{"expression":{"id":73874,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73869,"src":"16426:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73873,"id":73875,"nodeType":"Return","src":"16419:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:126","parameters":{"id":73870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73869,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:126","nodeType":"VariableDeclaration","scope":73877,"src":"16351:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73868,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:126"},"returnParameters":{"id":73873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73877,"src":"16400:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73871,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73971,"nodeType":"FunctionDefinition","src":"16455:802:126","nodes":[],"body":{"id":73970,"nodeType":"Block","src":"16562:695:126","nodes":[],"statements":[{"assignments":[73887],"declarations":[{"constant":false,"id":73887,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:126","nodeType":"VariableDeclaration","scope":73970,"src":"16572:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73886,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73889,"initialValue":{"hexValue":"3138","id":73888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:126"},{"clauses":[{"block":{"id":73910,"nodeType":"Block","src":"16690:52:126","statements":[{"expression":{"id":73908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73903,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73887,"src":"16704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73906,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73901,"src":"16722:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73904,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:126","typeDescriptions":{}}},"id":73907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73909,"nodeType":"ExpressionStatement","src":"16704:27:126"}]},"errorName":"","id":73911,"nodeType":"TryCatchClause","parameters":{"id":73902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73901,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:126","nodeType":"VariableDeclaration","scope":73911,"src":"16674:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73900,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:126"},"src":"16665:77:126"},{"block":{"id":73918,"nodeType":"Block","src":"16749:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73912,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16763:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"16763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73917,"nodeType":"ExpressionStatement","src":"16763:36:126"}]},"errorName":"","id":73919,"nodeType":"TryCatchClause","src":"16743:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73893,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16620:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"16620:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73891,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:126","typeDescriptions":{}}},"id":73896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73890,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"16606:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"16606:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73920,"nodeType":"TryStatement","src":"16602:208:126"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":73924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":73925,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73881,"src":"16851:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73921,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16819:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16819:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73927,"nodeType":"ExpressionStatement","src":"16819:49:126"},{"assignments":[73929],"declarations":[{"constant":false,"id":73929,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:126","nodeType":"VariableDeclaration","scope":73970,"src":"16878:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73928,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73932,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"16942:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73930,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16902:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77046,"src":"16902:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73934,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73881,"src":"16953:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:126"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":73940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":73941,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73929,"src":"17008:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73937,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16979:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16979:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73943,"nodeType":"ExpressionStatement","src":"16979:43:126"},{"assignments":[73945],"declarations":[{"constant":false,"id":73945,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:126","nodeType":"VariableDeclaration","scope":73970,"src":"17032:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73944,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73954,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73948,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73929,"src":"17067:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73950,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73887,"src":"17089:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73946,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"17057:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59177_$","typeString":"type(library Math)"}},"id":73947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58681,"src":"17057:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:126"},{"assignments":[73956],"declarations":[{"constant":false,"id":73956,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:126","nodeType":"VariableDeclaration","scope":73970,"src":"17107:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73955,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73967,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73959,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"17177:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73962,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73960,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:126","typeDescriptions":{}}},"id":73963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73957,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"17134:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"17134:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73965,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73945,"src":"17203:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:126"},{"expression":{"id":73968,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73956,"src":"17234:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73885,"id":73969,"nodeType":"Return","src":"17227:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:126","parameters":{"id":73882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73879,"mutability":"mutable","name":"_member","nameLocation":"16495:7:126","nodeType":"VariableDeclaration","scope":73971,"src":"16487:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73878,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73881,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:126","nodeType":"VariableDeclaration","scope":73971,"src":"16504:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73880,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:126"},"returnParameters":{"id":73885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73971,"src":"16553:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73883,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73980,"nodeType":"FunctionDefinition","src":"17263:99:126","nodes":[],"body":{"id":73979,"nodeType":"Block","src":"17317:45:126","nodes":[],"statements":[{"expression":{"expression":{"id":73976,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"17334:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"17334:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73975,"id":73978,"nodeType":"Return","src":"17327:28:126"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:126","parameters":{"id":73972,"nodeType":"ParameterList","parameters":[],"src":"17284:2:126"},"returnParameters":{"id":73975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73980,"src":"17308:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73973,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73989,"nodeType":"FunctionDefinition","src":"17368:110:126","nodes":[],"body":{"id":73988,"nodeType":"Block","src":"17443:35:126","nodes":[],"statements":[{"expression":{"id":73986,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"17460:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":73985,"id":73987,"nodeType":"Return","src":"17453:18:126"}]},"baseFunctions":[72800],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:126","parameters":{"id":73981,"nodeType":"ParameterList","parameters":[],"src":"17391:2:126"},"returnParameters":{"id":73985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73989,"src":"17415:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73983,"nodeType":"UserDefinedTypeName","pathNode":{"id":73982,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:126","17430:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"17415:26:126"},"referencedDeclaration":72810,"src":"17415:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74000,"nodeType":"FunctionDefinition","src":"17594:226:126","nodes":[],"body":{"id":73999,"nodeType":"Block","src":"17672:148:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73996,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"17737:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73998,"nodeType":"RevertStatement","src":"17730:23:126"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:126","parameters":{"id":73994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74000,"src":"17619:39:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":73991,"nodeType":"UserDefinedTypeName","pathNode":{"id":73990,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:126","17634:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"17619:30:126"},"referencedDeclaration":72860,"src":"17619:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":73992,"nodeType":"ArrayTypeName","src":"17619:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:126"},"returnParameters":{"id":73995,"nodeType":"ParameterList","parameters":[],"src":"17672:0:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74056,"nodeType":"FunctionDefinition","src":"17966:551:126","nodes":[],"body":{"id":74055,"nodeType":"Block","src":"18040:477:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74009,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18070:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74008,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73276,"src":"18050:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74011,"nodeType":"ExpressionStatement","src":"18050:28:126"},{"assignments":[74013],"declarations":[{"constant":false,"id":74013,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:126","nodeType":"VariableDeclaration","scope":74055,"src":"18134:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74012,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74022,"initialValue":{"arguments":[{"id":74016,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18211:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74019,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":74018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74017,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:126","typeDescriptions":{}}},"id":74020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74014,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"18165:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76185,"src":"18165:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:126"},{"condition":{"id":74024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:126","subExpression":{"id":74023,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74013,"src":"18249:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74029,"nodeType":"IfStatement","src":"18244:78:126","trueBody":{"id":74028,"nodeType":"Block","src":"18274:48:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74025,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"18295:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74027,"nodeType":"RevertStatement","src":"18288:23:126"}]}},{"assignments":[74035],"declarations":[{"constant":false,"id":74035,"mutability":"mutable","name":"pv","nameLocation":"18371:2:126","nodeType":"VariableDeclaration","scope":74055,"src":"18331:42:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74033,"nodeType":"UserDefinedTypeName","pathNode":{"id":74032,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:126","18346:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"18331:30:126"},"referencedDeclaration":72860,"src":"18331:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74034,"nodeType":"ArrayTypeName","src":"18331:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74044,"initialValue":{"arguments":[{"id":74038,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74002,"src":"18387:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74039,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"18395:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:126","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":72860,"src":"18395:30:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$72860_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74042,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74036,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:126","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:126"},{"expression":{"arguments":[{"id":74046,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18464:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74047,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74035,"src":"18473:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74045,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74746,"src":"18439:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74049,"nodeType":"ExpressionStatement","src":"18439:37:126"},{"expression":{"arguments":[{"id":74051,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18498:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74052,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74035,"src":"18507:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74050,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75033,"src":"18486:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74054,"nodeType":"ExpressionStatement","src":"18486:24:126"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:126","overrides":{"id":74006,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:126"},"parameters":{"id":74005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74002,"mutability":"mutable","name":"_data","nameLocation":"17998:5:126","nodeType":"VariableDeclaration","scope":74056,"src":"17985:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74001,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74004,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:126","nodeType":"VariableDeclaration","scope":74056,"src":"18005:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74003,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:126"},"returnParameters":{"id":74007,"nodeType":"ParameterList","parameters":[],"src":"18040:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74212,"nodeType":"FunctionDefinition","src":"18773:1756:126","nodes":[],"body":{"id":74211,"nodeType":"Block","src":"18859:1670:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74067,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74061,"src":"18952:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:126","memberName":"length","nodeType":"MemberAccess","src":"18952:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74075,"nodeType":"IfStatement","src":"18948:76:126","trueBody":{"id":74074,"nodeType":"Block","src":"18971:53:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74071,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72943,"src":"18992:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74073,"nodeType":"RevertStatement","src":"18985:28:126"}]}},{"assignments":[74077],"declarations":[{"constant":false,"id":74077,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:126","nodeType":"VariableDeclaration","scope":74211,"src":"19034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74076,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74085,"initialValue":{"arguments":[{"id":74080,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74061,"src":"19066:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74081,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:126","typeDescriptions":{}}}],"id":74083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:126","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74086,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19098:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74093,"nodeType":"IfStatement","src":"19094:77:126","trueBody":{"id":74092,"nodeType":"Block","src":"19115:56:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74089,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"19136:22:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74091,"nodeType":"RevertStatement","src":"19129:31:126"}]}},{"assignments":[74098],"declarations":[{"constant":false,"id":74098,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:126","nodeType":"VariableDeclaration","scope":74211,"src":"19180:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74097,"nodeType":"UserDefinedTypeName","pathNode":{"id":74096,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:126","19195:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"19180:23:126"},"referencedDeclaration":72855,"src":"19180:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74102,"initialValue":{"baseExpression":{"id":74099,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"19223:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74101,"indexExpression":{"id":74100,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19233:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":74107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74103,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"19259:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74104,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"19275:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72805,"src":"19275:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72805_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72803,"src":"19275:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74210,"nodeType":"IfStatement","src":"19255:1208:126","trueBody":{"id":74209,"nodeType":"Block","src":"19312:1151:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74108,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19330:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"19330:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74110,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19353:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74117,"nodeType":"IfStatement","src":"19326:108:126","trueBody":{"id":74116,"nodeType":"Block","src":"19365:69:126","statements":[{"errorCall":{"arguments":[{"id":74113,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19408:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74112,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"19390:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74115,"nodeType":"RevertStatement","src":"19383:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19452:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19452:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74120,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74130,"nodeType":"IfStatement","src":"19448:152:126","trueBody":{"id":74129,"nodeType":"Block","src":"19491:109:126","statements":[{"errorCall":{"arguments":[{"id":74123,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19536:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74124,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19548:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19548:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74126,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74122,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72971,"src":"19516:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74128,"nodeType":"RevertStatement","src":"19509:76:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"id":74136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74131,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19618:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"19618:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74133,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"19645:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"19645:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19645:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74142,"nodeType":"IfStatement","src":"19614:138:126","trueBody":{"id":74141,"nodeType":"Block","src":"19683:69:126","statements":[{"errorCall":{"arguments":[{"id":74138,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19726:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74137,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72949,"src":"19708:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74140,"nodeType":"RevertStatement","src":"19701:36:126"}]}},{"assignments":[74144],"declarations":[{"constant":false,"id":74144,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:126","nodeType":"VariableDeclaration","scope":74209,"src":"19766:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74143,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74148,"initialValue":{"arguments":[{"id":74146,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19816:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74145,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75456,"src":"19791:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:126"},{"assignments":[74150],"declarations":[{"constant":false,"id":74150,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:126","nodeType":"VariableDeclaration","scope":74209,"src":"19841:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74149,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74155,"initialValue":{"arguments":[{"expression":{"id":74152,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19880:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19880:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74151,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"19861:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74156,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74144,"src":"19924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74157,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"19941:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74159,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19954:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19954:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74168,"nodeType":"IfStatement","src":"19920:137:126","trueBody":{"id":74167,"nodeType":"Block","src":"19984:73:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74164,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72961,"src":"20009:31:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74166,"nodeType":"RevertStatement","src":"20002:40:126"}]}},{"assignments":[74173],"declarations":[{"constant":false,"id":74173,"mutability":"mutable","name":"pool","nameLocation":"20089:4:126","nodeType":"VariableDeclaration","scope":74209,"src":"20071:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74172,"nodeType":"UserDefinedTypeName","pathNode":{"id":74171,"name":"IAllo.Pool","nameLocations":["20071:5:126","20077:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:126"},"referencedDeclaration":2319,"src":"20071:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74178,"initialValue":{"arguments":[{"id":74176,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74174,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:126"},{"expression":{"id":74182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74179,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74180,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20145:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20145:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74183,"nodeType":"ExpressionStatement","src":"20131:38:126"},{"expression":{"arguments":[{"expression":{"id":74185,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74173,"src":"20207:4:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74187,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20219:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"20219:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74189,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20241:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20241:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74184,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74192,"nodeType":"ExpressionStatement","src":"20191:75:126"},{"expression":{"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74193,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20297:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"20297:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74196,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"20323:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"20323:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:126","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":72827,"src":"20323:38:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74200,"nodeType":"ExpressionStatement","src":"20297:64:126"},{"eventCall":{"arguments":[{"id":74202,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"20393:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74203,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20405:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"20405:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74205,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20427:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20427:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74201,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[72986,2858],"referencedDeclaration":72986,"src":"20381:11:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74208,"nodeType":"EmitStatement","src":"20376:76:126"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:126","overrides":{"id":74065,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:126"},"parameters":{"id":74064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74212,"src":"18794:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74057,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74058,"nodeType":"ArrayTypeName","src":"18794:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74061,"mutability":"mutable","name":"_data","nameLocation":"18825:5:126","nodeType":"VariableDeclaration","scope":74212,"src":"18812:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74060,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74212,"src":"18832:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74062,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:126"},"returnParameters":{"id":74066,"nodeType":"ParameterList","parameters":[],"src":"18859:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74266,"nodeType":"FunctionDefinition","src":"20535:735:126","nodes":[],"body":{"id":74265,"nodeType":"Block","src":"20624:646:126","nodes":[],"statements":[{"assignments":[74223],"declarations":[{"constant":false,"id":74223,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:126","nodeType":"VariableDeclaration","scope":74265,"src":"20634:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74222,"nodeType":"UserDefinedTypeName","pathNode":{"id":74221,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:126","20649:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"20634:23:126"},"referencedDeclaration":72855,"src":"20634:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74227,"initialValue":{"baseExpression":{"id":74224,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"20677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74226,"indexExpression":{"id":74225,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74214,"src":"20687:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:126"},{"assignments":[74229,74231],"declarations":[{"constant":false,"id":74229,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:126","nodeType":"VariableDeclaration","scope":74265,"src":"20784:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74228,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74231,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:126","nodeType":"VariableDeclaration","scope":74265,"src":"20808:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74230,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74237,"initialValue":{"arguments":[{"id":74233,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20877:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74234,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20887:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"20887:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74232,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"20843:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74238,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"20924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74241,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74231,"src":"20947:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74251,"nodeType":"IfStatement","src":"20920:110:126","trueBody":{"id":74250,"nodeType":"Block","src":"20965:65:126","statements":[{"expression":{"id":74248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74245,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"20979:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20996:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"20996:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74249,"nodeType":"ExpressionStatement","src":"20979:40:126"}]}},{"assignments":[74253],"declarations":[{"constant":false,"id":74253,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:126","nodeType":"VariableDeclaration","scope":74265,"src":"21039:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74252,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74258,"initialValue":{"arguments":[{"expression":{"id":74255,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"21078:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"21078:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74254,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"21059:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:126"},{"expression":{"id":74263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74259,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74217,"src":"21220:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74260,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"21236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74261,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"21254:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74264,"nodeType":"ExpressionStatement","src":"21220:43:126"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:126","parameters":{"id":74215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74214,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:126","nodeType":"VariableDeclaration","scope":74266,"src":"20563:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74213,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:126"},"returnParameters":{"id":74218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74217,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:126","nodeType":"VariableDeclaration","scope":74266,"src":"20604:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74216,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74288,"nodeType":"FunctionDefinition","src":"21560:220:126","nodes":[],"body":{"id":74287,"nodeType":"Block","src":"21651:129:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74275,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"21711:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:126","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":74277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74276,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:126","typeDescriptions":{}}},"id":74279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74283,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:126","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:126","trueExpression":{"expression":{"id":74281,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:126","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74274,"id":74286,"nodeType":"Return","src":"21704:69:126"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:126","overrides":{"id":74270,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:126"},"parameters":{"id":74269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74268,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:126","nodeType":"VariableDeclaration","scope":74288,"src":"21589:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74267,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:126"},"returnParameters":{"id":74274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74288,"src":"21643:6:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74272,"nodeType":"UserDefinedTypeName","pathNode":{"id":74271,"name":"Status","nameLocations":["21643:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:126"},"referencedDeclaration":2815,"src":"21643:6:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74307,"nodeType":"FunctionDefinition","src":"21909:288:126","nodes":[],"body":{"id":74306,"nodeType":"Block","src":"22019:178:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74303,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"22079:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74305,"nodeType":"RevertStatement","src":"22072:23:126"}]},"baseFunctions":[3687],"documentation":{"id":74289,"nodeType":"StructuredDocumentation","src":"21786:118:126","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:126","overrides":{"id":74297,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:126"},"parameters":{"id":74296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21929:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74290,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74291,"nodeType":"ArrayTypeName","src":"21929:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21947:14:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74293,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74294,"nodeType":"ArrayTypeName","src":"21947:7:126","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:126"},"returnParameters":{"id":74302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21995:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74299,"nodeType":"UserDefinedTypeName","pathNode":{"id":74298,"name":"PayoutSummary","nameLocations":["21995:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:126"},"referencedDeclaration":2820,"src":"21995:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74300,"nodeType":"ArrayTypeName","src":"21995:15:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74326,"nodeType":"FunctionDefinition","src":"22203:264:126","nodes":[],"body":{"id":74325,"nodeType":"Block","src":"22355:112:126","nodes":[],"statements":[{"expression":{"id":74318,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74311,"src":"22408:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74319,"nodeType":"ExpressionStatement","src":"22408:5:126"},{"expression":{"arguments":[{"id":74321,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74309,"src":"22444:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74320,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74317,"id":74324,"nodeType":"Return","src":"22423:37:126"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:126","overrides":{"id":74313,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:126"},"parameters":{"id":74312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74309,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:126","nodeType":"VariableDeclaration","scope":74326,"src":"22223:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74308,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74311,"mutability":"mutable","name":"_data","nameLocation":"22258:5:126","nodeType":"VariableDeclaration","scope":74326,"src":"22245:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74310,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:126"},"returnParameters":{"id":74317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74326,"src":"22329:20:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74315,"nodeType":"UserDefinedTypeName","pathNode":{"id":74314,"name":"PayoutSummary","nameLocations":["22329:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:126"},"referencedDeclaration":2820,"src":"22329:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74337,"nodeType":"FunctionDefinition","src":"22473:127:126","nodes":[],"body":{"id":74336,"nodeType":"Block","src":"22550:50:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74333,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74328,"src":"22585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74332,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72996,"src":"22565:19:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74335,"nodeType":"EmitStatement","src":"22560:33:126"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:126","overrides":{"id":74330,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:126"},"parameters":{"id":74329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74328,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:126","nodeType":"VariableDeclaration","scope":74337,"src":"22507:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74327,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:126"},"returnParameters":{"id":74331,"nodeType":"ParameterList","parameters":[],"src":"22550:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74356,"nodeType":"FunctionDefinition","src":"22695:191:126","nodes":[],"body":{"id":74355,"nodeType":"Block","src":"22780:106:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74345,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74339,"src":"22840:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:126","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":74347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74346,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:126","typeDescriptions":{}}},"id":74349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:126","trueExpression":{"hexValue":"66616c7365","id":74351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74344,"id":74354,"nodeType":"Return","src":"22833:46:126"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:126","overrides":{"id":74341,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:126"},"parameters":{"id":74340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74339,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:126","nodeType":"VariableDeclaration","scope":74356,"src":"22722:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74338,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:126"},"returnParameters":{"id":74344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74356,"src":"22774:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74342,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74366,"nodeType":"FunctionDefinition","src":"22892:86:126","nodes":[],"body":{"id":74365,"nodeType":"Block","src":"22938:40:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74362,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74358,"src":"22963:7:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74361,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74364,"nodeType":"ExpressionStatement","src":"22948:23:126"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:126","parameters":{"id":74359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74358,"mutability":"mutable","name":"_active","nameLocation":"22920:7:126","nodeType":"VariableDeclaration","scope":74366,"src":"22915:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74357,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:126"},"returnParameters":{"id":74360,"nodeType":"ParameterList","parameters":[],"src":"22938:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74444,"nodeType":"FunctionDefinition","src":"22984:729:126","nodes":[],"body":{"id":74443,"nodeType":"Block","src":"23028:685:126","nodes":[],"statements":[{"assignments":[74375],"declarations":[{"constant":false,"id":74375,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:126","nodeType":"VariableDeclaration","scope":74443,"src":"23086:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74373,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74374,"nodeType":"ArrayTypeName","src":"23086:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74379,"initialValue":{"baseExpression":{"id":74376,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"23118:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74378,"indexExpression":{"id":74377,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23139:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:126"},{"body":{"id":74441,"nodeType":"Block","src":"23207:500:126","statements":[{"assignments":[74392],"declarations":[{"constant":false,"id":74392,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:126","nodeType":"VariableDeclaration","scope":74441,"src":"23221:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74391,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74396,"initialValue":{"baseExpression":{"id":74393,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74375,"src":"23242:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74395,"indexExpression":{"id":74394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23255:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:126"},{"assignments":[74401],"declarations":[{"constant":false,"id":74401,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:126","nodeType":"VariableDeclaration","scope":74441,"src":"23271:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74400,"nodeType":"UserDefinedTypeName","pathNode":{"id":74399,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:126","23286:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"23271:23:126"},"referencedDeclaration":72855,"src":"23271:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74405,"initialValue":{"baseExpression":{"id":74402,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"23314:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74404,"indexExpression":{"id":74403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74392,"src":"23324:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:126"},{"condition":{"arguments":[{"id":74407,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74392,"src":"23368:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74406,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"23353:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74440,"nodeType":"IfStatement","src":"23349:348:126","trueBody":{"id":74439,"nodeType":"Block","src":"23381:316:126","statements":[{"assignments":[74410],"declarations":[{"constant":false,"id":74410,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:126","nodeType":"VariableDeclaration","scope":74439,"src":"23399:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74409,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74415,"initialValue":{"baseExpression":{"expression":{"id":74411,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23422:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"23422:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74414,"indexExpression":{"id":74413,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:126"},{"expression":{"id":74422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23475:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"23475:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74420,"indexExpression":{"id":74418,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23502:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74423,"nodeType":"ExpressionStatement","src":"23475:39:126"},{"expression":{"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23532:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"23532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74427,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23557:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74429,"nodeType":"ExpressionStatement","src":"23532:37:126"},{"expression":{"id":74432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74430,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"23587:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74431,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23602:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74433,"nodeType":"ExpressionStatement","src":"23587:27:126"},{"expression":{"arguments":[{"id":74435,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23659:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74436,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23669:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74434,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"23632:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74438,"nodeType":"ExpressionStatement","src":"23632:50:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74385,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74375,"src":"23181:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:126","memberName":"length","nodeType":"MemberAccess","src":"23181:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74442,"initializationExpression":{"assignments":[74381],"declarations":[{"constant":false,"id":74381,"mutability":"mutable","name":"i","nameLocation":"23170:1:126","nodeType":"VariableDeclaration","scope":74442,"src":"23162:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74380,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74383,"initialValue":{"hexValue":"30","id":74382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:126"},"loopExpression":{"expression":{"id":74389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:126","subExpression":{"id":74388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23202:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74390,"nodeType":"ExpressionStatement","src":"23202:3:126"},"nodeType":"ForStatement","src":"23157:550:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:126","parameters":{"id":74369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74368,"mutability":"mutable","name":"_member","nameLocation":"23010:7:126","nodeType":"VariableDeclaration","scope":74444,"src":"23002:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74367,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:126"},"returnParameters":{"id":74370,"nodeType":"ParameterList","parameters":[],"src":"23028:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74518,"nodeType":"FunctionDefinition","src":"24275:1038:126","nodes":[],"body":{"id":74517,"nodeType":"Block","src":"24744:569:126","nodes":[],"statements":[{"assignments":[74475],"declarations":[{"constant":false,"id":74475,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:126","nodeType":"VariableDeclaration","scope":74517,"src":"24754:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74474,"nodeType":"UserDefinedTypeName","pathNode":{"id":74473,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:126","24769:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"24754:23:126"},"referencedDeclaration":72855,"src":"24754:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74479,"initialValue":{"baseExpression":{"id":74476,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"24797:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74478,"indexExpression":{"id":74477,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74447,"src":"24807:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:126"},{"expression":{"id":74491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74480,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24830:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74481,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24842:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24842:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24897:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24897:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74486,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"24878:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:126","trueExpression":{"hexValue":"30","id":74485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74492,"nodeType":"ExpressionStatement","src":"24830:92:126"},{"expression":{"components":[{"expression":{"id":74493,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24953:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"24953:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74495,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24985:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"24985:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25019:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72842,"src":"25019:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74499,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25056:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"25056:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74501,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25094:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"25094:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74503,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25129:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"25129:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74505,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25166:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"25166:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74507,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25198:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"25198:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74509,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74510,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25258:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"25258:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74514,"indexExpression":{"expression":{"id":74512,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:126","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$72828_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74470,"id":74516,"nodeType":"Return","src":"24932:374:126"}]},"documentation":{"id":74445,"nodeType":"StructuredDocumentation","src":"23719:551:126","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:126","parameters":{"id":74448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74447,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:126","nodeType":"VariableDeclaration","scope":74518,"src":"24296:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74446,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:126"},"returnParameters":{"id":74470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74450,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24377:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74449,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74452,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:126","nodeType":"VariableDeclaration","scope":74518,"src":"24408:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74451,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74454,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24441:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74453,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74456,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:126","nodeType":"VariableDeclaration","scope":74518,"src":"24477:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74455,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74458,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:126","nodeType":"VariableDeclaration","scope":74518,"src":"24514:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74457,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74461,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24548:44:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74460,"nodeType":"UserDefinedTypeName","pathNode":{"id":74459,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:126","24563:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72828,"src":"24548:29:126"},"referencedDeclaration":72828,"src":"24548:29:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74463,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24606:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74465,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24637:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74464,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74467,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24673:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74466,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74469,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:126","nodeType":"VariableDeclaration","scope":74518,"src":"24704:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74468,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74539,"nodeType":"FunctionDefinition","src":"25319:198:126","nodes":[],"body":{"id":74538,"nodeType":"Block","src":"25401:116:126","nodes":[],"statements":[{"assignments":[74530],"declarations":[{"constant":false,"id":74530,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:126","nodeType":"VariableDeclaration","scope":74538,"src":"25411:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74529,"nodeType":"UserDefinedTypeName","pathNode":{"id":74528,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:126","25426:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"25411:23:126"},"referencedDeclaration":72855,"src":"25411:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74534,"initialValue":{"baseExpression":{"id":74531,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"25454:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74533,"indexExpression":{"id":74532,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74520,"src":"25464:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:126"},{"expression":{"expression":{"id":74535,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"25493:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"25493:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74525,"id":74537,"nodeType":"Return","src":"25486:24:126"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:126","parameters":{"id":74521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74520,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:126","nodeType":"VariableDeclaration","scope":74539,"src":"25340:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74519,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:126"},"returnParameters":{"id":74525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74539,"src":"25384:15:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74523,"nodeType":"UserDefinedTypeName","pathNode":{"id":74522,"name":"Metadata","nameLocations":["25384:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:126"},"referencedDeclaration":3098,"src":"25384:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74555,"nodeType":"FunctionDefinition","src":"25718:176:126","nodes":[],"body":{"id":74554,"nodeType":"Block","src":"25818:76:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74550,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74542,"src":"25867:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74551,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"25880:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74549,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74597,"src":"25835:31:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74548,"id":74553,"nodeType":"Return","src":"25828:59:126"}]},"documentation":{"id":74540,"nodeType":"StructuredDocumentation","src":"25523:190:126","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:126","parameters":{"id":74545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74542,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:126","nodeType":"VariableDeclaration","scope":74555,"src":"25749:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74541,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74544,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:126","nodeType":"VariableDeclaration","scope":74555,"src":"25770:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74543,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:126"},"returnParameters":{"id":74548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74555,"src":"25809:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74546,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74568,"nodeType":"FunctionDefinition","src":"25900:145:126","nodes":[],"body":{"id":74567,"nodeType":"Block","src":"25986:59:126","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74562,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26003:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74564,"indexExpression":{"id":74563,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74557,"src":"26013:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"26003:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74561,"id":74566,"nodeType":"Return","src":"25996:42:126"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:126","parameters":{"id":74558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74557,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:126","nodeType":"VariableDeclaration","scope":74568,"src":"25933:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:126"},"returnParameters":{"id":74561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74568,"src":"25977:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74559,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74580,"nodeType":"FunctionDefinition","src":"26114:127:126","nodes":[],"body":{"id":74579,"nodeType":"Block","src":"26191:50:126","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74575,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"26208:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74577,"indexExpression":{"id":74576,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"26227:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74574,"id":74578,"nodeType":"Return","src":"26201:33:126"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:126","parameters":{"id":74571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74570,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:126","nodeType":"VariableDeclaration","scope":74580,"src":"26145:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74569,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:126"},"returnParameters":{"id":74574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74580,"src":"26182:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74572,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74597,"nodeType":"FunctionDefinition","src":"26247:182:126","nodes":[],"body":{"id":74596,"nodeType":"Block","src":"26357:72:126","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74589,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26374:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74591,"indexExpression":{"id":74590,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74582,"src":"26384:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"26374:40:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74594,"indexExpression":{"id":74593,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74584,"src":"26415:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74588,"id":74595,"nodeType":"Return","src":"26367:55:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:126","parameters":{"id":74585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74582,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:126","nodeType":"VariableDeclaration","scope":74597,"src":"26288:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74581,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74584,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:126","nodeType":"VariableDeclaration","scope":74597,"src":"26309:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74583,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:126"},"returnParameters":{"id":74588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74597,"src":"26348:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74586,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74607,"nodeType":"FunctionDefinition","src":"26435:145:126","nodes":[],"body":{"id":74606,"nodeType":"Block","src":"26499:81:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74602,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"26516:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:126","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77489,"src":"26516:38:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74601,"id":74605,"nodeType":"Return","src":"26509:47:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:126","parameters":{"id":74598,"nodeType":"ParameterList","parameters":[],"src":"26464:2:126"},"returnParameters":{"id":74601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74607,"src":"26490:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74632,"nodeType":"FunctionDefinition","src":"26586:185:126","nodes":[],"body":{"id":74631,"nodeType":"Block","src":"26660:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74614,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74616,"indexExpression":{"id":74615,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"26687:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"26677:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74620,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26718:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74622,"indexExpression":{"id":74621,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"26728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"26718:32:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:126","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":74625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74624,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:126","typeDescriptions":{}}},"id":74627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74613,"id":74630,"nodeType":"Return","src":"26670:94:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:126","parameters":{"id":74610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74609,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:126","nodeType":"VariableDeclaration","scope":74632,"src":"26610:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74608,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:126"},"returnParameters":{"id":74613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74632,"src":"26654:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74611,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74650,"nodeType":"FunctionDefinition","src":"26777:174:126","nodes":[],"body":{"id":74649,"nodeType":"Block","src":"26872:79:126","nodes":[],"statements":[{"expression":{"id":74647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74639,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"26882:14:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74640,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"26899:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74641,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74643,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74634,"src":"26924:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74644,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"26943:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74648,"nodeType":"ExpressionStatement","src":"26882:62:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:126","parameters":{"id":74635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74634,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:126","nodeType":"VariableDeclaration","scope":74650,"src":"26802:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74633,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:126"},"returnParameters":{"id":74638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74637,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:126","nodeType":"VariableDeclaration","scope":74650,"src":"26851:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74636,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74746,"nodeType":"FunctionDefinition","src":"26957:1548:126","nodes":[],"body":{"id":74745,"nodeType":"Block","src":"27087:1418:126","nodes":[],"statements":[{"assignments":[74660],"declarations":[{"constant":false,"id":74660,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:126","nodeType":"VariableDeclaration","scope":74745,"src":"27097:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74659,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74662,"initialValue":{"hexValue":"30","id":74661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:126"},{"body":{"id":74707,"nodeType":"Block","src":"27187:576:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74674,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27260:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74676,"indexExpression":{"id":74675,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27277:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"27260:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74682,"nodeType":"IfStatement","src":"27256:187:126","trueBody":{"id":74681,"nodeType":"Block","src":"27297:146:126","statements":[{"id":74680,"nodeType":"Continue","src":"27420:8:126"}]}},{"assignments":[74684],"declarations":[{"constant":false,"id":74684,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:126","nodeType":"VariableDeclaration","scope":74707,"src":"27456:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74683,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74689,"initialValue":{"expression":{"baseExpression":{"id":74685,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27477:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74687,"indexExpression":{"id":74686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27494:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"27477:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:126"},{"condition":{"id":74693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:126","subExpression":{"arguments":[{"id":74691,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74684,"src":"27541:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74690,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"27526:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74699,"nodeType":"IfStatement","src":"27521:167:126","trueBody":{"id":74698,"nodeType":"Block","src":"27554:134:126","statements":[{"errorCall":{"arguments":[{"id":74695,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74684,"src":"27597:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74694,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"27579:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74697,"nodeType":"RevertStatement","src":"27572:36:126"}]}},{"expression":{"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74700,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74660,"src":"27701:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74701,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27720:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74703,"indexExpression":{"id":74702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27737:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72859,"src":"27720:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74706,"nodeType":"ExpressionStatement","src":"27701:51:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27153:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74668,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27157:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:126","memberName":"length","nodeType":"MemberAccess","src":"27157:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74708,"initializationExpression":{"assignments":[74664],"declarations":[{"constant":false,"id":74664,"mutability":"mutable","name":"i","nameLocation":"27146:1:126","nodeType":"VariableDeclaration","scope":74708,"src":"27138:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74663,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74666,"initialValue":{"hexValue":"30","id":74665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:126"},"loopExpression":{"expression":{"id":74672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:126","subExpression":{"id":74671,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27182:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74673,"nodeType":"ExpressionStatement","src":"27182:3:126"},"nodeType":"ForStatement","src":"27133:630:126"},{"assignments":[74710],"declarations":[{"constant":false,"id":74710,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:126","nodeType":"VariableDeclaration","scope":74745,"src":"27859:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74709,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74717,"initialValue":{"arguments":[{"arguments":[{"id":74713,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27925:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74712,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74580,"src":"27903:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74715,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74660,"src":"27935:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74711,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"27891:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:126"},{"assignments":[74719],"declarations":[{"constant":false,"id":74719,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:126","nodeType":"VariableDeclaration","scope":74745,"src":"28033:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74718,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74728,"initialValue":{"arguments":[{"id":74722,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"28105:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74725,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":74724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74723,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:126","typeDescriptions":{}}},"id":74726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74720,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"28062:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"28062:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74729,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28294:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74730,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74719,"src":"28318:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74738,"nodeType":"IfStatement","src":"28290:147:126","trueBody":{"id":74737,"nodeType":"Block","src":"28338:99:126","statements":[{"errorCall":{"arguments":[{"id":74733,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28384:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74734,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74719,"src":"28407:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74732,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"28359:24:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74736,"nodeType":"RevertStatement","src":"28352:74:126"}]}},{"expression":{"id":74743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74739,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"28447:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74741,"indexExpression":{"id":74740,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"28466:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74742,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28477:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74744,"nodeType":"ExpressionStatement","src":"28447:51:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:126","parameters":{"id":74657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74652,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:126","nodeType":"VariableDeclaration","scope":74746,"src":"26991:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74651,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74656,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:126","nodeType":"VariableDeclaration","scope":74746,"src":"27008:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74654,"nodeType":"UserDefinedTypeName","pathNode":{"id":74653,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:126","27023:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"27008:30:126"},"referencedDeclaration":72860,"src":"27008:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74655,"nodeType":"ArrayTypeName","src":"27008:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:126"},"returnParameters":{"id":74658,"nodeType":"ParameterList","parameters":[],"src":"27087:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75033,"nodeType":"FunctionDefinition","src":"28511:3479:126","nodes":[],"body":{"id":75032,"nodeType":"Block","src":"28616:3374:126","nodes":[],"statements":[{"assignments":[74759],"declarations":[{"constant":false,"id":74759,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:126","nodeType":"VariableDeclaration","scope":75032,"src":"28626:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74757,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74758,"nodeType":"ArrayTypeName","src":"28626:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74760,"nodeType":"VariableDeclarationStatement","src":"28626:29:126"},{"body":{"id":75030,"nodeType":"Block","src":"28719:3265:126","statements":[{"assignments":[74773],"declarations":[{"constant":false,"id":74773,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:126","nodeType":"VariableDeclaration","scope":75030,"src":"28733:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74772,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74778,"initialValue":{"expression":{"baseExpression":{"id":74774,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"28754:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74776,"indexExpression":{"id":74775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28771:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"28754:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74779,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28857:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:126","memberName":"length","nodeType":"MemberAccess","src":"28857:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74881,"nodeType":"Block","src":"29009:764:126","statements":[{"assignments":[74799],"declarations":[{"constant":false,"id":74799,"mutability":"mutable","name":"exist","nameLocation":"29032:5:126","nodeType":"VariableDeclaration","scope":74881,"src":"29027:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74798,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74801,"initialValue":{"hexValue":"66616c7365","id":74800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:126"},{"body":{"id":74829,"nodeType":"Block","src":"29113:268:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":74813,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29164:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74815,"indexExpression":{"id":74814,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":74816,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29183:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74828,"nodeType":"IfStatement","src":"29160:203:126","trueBody":{"id":74827,"nodeType":"Block","src":"29195:168:126","statements":[{"expression":{"id":74820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74818,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"29221:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74821,"nodeType":"ExpressionStatement","src":"29221:12:126"},{"errorCall":{"arguments":[{"id":74823,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29292:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74824,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29304:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74822,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72959,"src":"29266:25:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74826,"nodeType":"RevertStatement","src":"29259:47:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74806,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29083:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74807,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29087:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:126","memberName":"length","nodeType":"MemberAccess","src":"29087:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74830,"initializationExpression":{"assignments":[74803],"declarations":[{"constant":false,"id":74803,"mutability":"mutable","name":"j","nameLocation":"29076:1:126","nodeType":"VariableDeclaration","scope":74830,"src":"29068:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74802,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74805,"initialValue":{"hexValue":"30","id":74804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:126"},"loopExpression":{"expression":{"id":74811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:126","subExpression":{"id":74810,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29108:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74812,"nodeType":"ExpressionStatement","src":"29108:3:126"},"nodeType":"ForStatement","src":"29063:318:126"},{"condition":{"id":74832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:126","subExpression":{"id":74831,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"29403:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74880,"nodeType":"IfStatement","src":"29398:361:126","trueBody":{"id":74879,"nodeType":"Block","src":"29410:349:126","statements":[{"assignments":[74837],"declarations":[{"constant":false,"id":74837,"mutability":"mutable","name":"temp","nameLocation":"29449:4:126","nodeType":"VariableDeclaration","scope":74879,"src":"29432:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74835,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74836,"nodeType":"ArrayTypeName","src":"29432:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74846,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74841,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29470:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:126","memberName":"length","nodeType":"MemberAccess","src":"29470:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":74843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74838,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74839,"nodeType":"ArrayTypeName","src":"29460:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:126"},{"body":{"id":74866,"nodeType":"Block","src":"29566:74:126","statements":[{"expression":{"id":74864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74858,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29592:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74860,"indexExpression":{"id":74859,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29597:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":74861,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29602:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74863,"indexExpression":{"id":74862,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29615:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74865,"nodeType":"ExpressionStatement","src":"29592:25:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74851,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29536:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74852,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29540:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:126","memberName":"length","nodeType":"MemberAccess","src":"29540:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74867,"initializationExpression":{"assignments":[74848],"declarations":[{"constant":false,"id":74848,"mutability":"mutable","name":"j","nameLocation":"29529:1:126","nodeType":"VariableDeclaration","scope":74867,"src":"29521:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74847,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74850,"initialValue":{"hexValue":"30","id":74849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:126"},"loopExpression":{"expression":{"id":74856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:126","subExpression":{"id":74855,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29561:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74857,"nodeType":"ExpressionStatement","src":"29561:3:126"},"nodeType":"ForStatement","src":"29516:124:126"},{"expression":{"id":74873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74868,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29661:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74871,"indexExpression":{"expression":{"id":74869,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29666:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:126","memberName":"length","nodeType":"MemberAccess","src":"29666:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74872,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29689:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74874,"nodeType":"ExpressionStatement","src":"29661:38:126"},{"expression":{"id":74877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74875,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29721:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74876,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29736:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74878,"nodeType":"ExpressionStatement","src":"29721:19:126"}]}}]},"id":74882,"nodeType":"IfStatement","src":"28853:920:126","trueBody":{"id":74797,"nodeType":"Block","src":"28883:120:126","statements":[{"expression":{"id":74789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74783,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28901:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":74787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:126","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":74786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74784,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74785,"nodeType":"ArrayTypeName","src":"28920:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74790,"nodeType":"ExpressionStatement","src":"28901:31:126"},{"expression":{"id":74795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74791,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28950:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74793,"indexExpression":{"hexValue":"30","id":74792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74794,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"28968:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74796,"nodeType":"ExpressionStatement","src":"28950:28:126"}]}},{"assignments":[74884],"declarations":[{"constant":false,"id":74884,"mutability":"mutable","name":"delta","nameLocation":"29793:5:126","nodeType":"VariableDeclaration","scope":75030,"src":"29786:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74883,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74889,"initialValue":{"expression":{"baseExpression":{"id":74885,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"29801:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74887,"indexExpression":{"id":74886,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"29818:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72859,"src":"29801:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:126"},{"assignments":[74894],"declarations":[{"constant":false,"id":74894,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:126","nodeType":"VariableDeclaration","scope":75030,"src":"29848:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74893,"nodeType":"UserDefinedTypeName","pathNode":{"id":74892,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:126","29863:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"29848:23:126"},"referencedDeclaration":72855,"src":"29848:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74898,"initialValue":{"baseExpression":{"id":74895,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"29891:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74897,"indexExpression":{"id":74896,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29901:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:126"},{"assignments":[74900],"declarations":[{"constant":false,"id":74900,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:126","nodeType":"VariableDeclaration","scope":75030,"src":"30014:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74899,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74905,"initialValue":{"baseExpression":{"expression":{"id":74901,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30045:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"30045:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74904,"indexExpression":{"id":74903,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30072:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:126"},{"assignments":[74907],"declarations":[{"constant":false,"id":74907,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:126","nodeType":"VariableDeclaration","scope":75030,"src":"30245:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74906,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74912,"initialValue":{"arguments":[{"id":74909,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"30280:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74910,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74884,"src":"30302:5:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74908,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"30268:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:126"},{"expression":{"id":74919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74913,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30443:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"30443:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74917,"indexExpression":{"id":74915,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30470:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74918,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"30481:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74920,"nodeType":"ExpressionStatement","src":"30443:50:126"},{"assignments":[74922],"declarations":[{"constant":false,"id":74922,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:126","nodeType":"VariableDeclaration","scope":75030,"src":"30727:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74921,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74924,"initialValue":{"hexValue":"66616c7365","id":74923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:126"},{"body":{"id":74953,"nodeType":"Block","src":"30832:179:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":74938,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"30854:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74940,"indexExpression":{"id":74939,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30875:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74942,"indexExpression":{"id":74941,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30884:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":74943,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30890:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"30890:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74952,"nodeType":"IfStatement","src":"30850:147:126","trueBody":{"id":74951,"nodeType":"Block","src":"30911:86:126","statements":[{"expression":{"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74946,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74922,"src":"30933:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74949,"nodeType":"ExpressionStatement","src":"30933:18:126"},{"id":74950,"nodeType":"Break","src":"30973:5:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74929,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30785:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":74930,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"30789:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74932,"indexExpression":{"id":74931,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:126","memberName":"length","nodeType":"MemberAccess","src":"30789:36:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74954,"initializationExpression":{"assignments":[74926],"declarations":[{"constant":false,"id":74926,"mutability":"mutable","name":"k","nameLocation":"30778:1:126","nodeType":"VariableDeclaration","scope":74954,"src":"30770:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74925,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74928,"initialValue":{"hexValue":"30","id":74927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:126"},"loopExpression":{"expression":{"id":74936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:126","subExpression":{"id":74935,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30827:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74937,"nodeType":"ExpressionStatement","src":"30827:3:126"},"nodeType":"ForStatement","src":"30765:246:126"},{"condition":{"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:126","subExpression":{"id":74955,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74922,"src":"31029:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74966,"nodeType":"IfStatement","src":"31024:106:126","trueBody":{"id":74965,"nodeType":"Block","src":"31042:88:126","statements":[{"expression":{"arguments":[{"expression":{"id":74961,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31095:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"31095:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":74957,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"31060:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74959,"indexExpression":{"id":74958,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"31081:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:126","memberName":"push","nodeType":"MemberAccess","src":"31060:34:126","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":74963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74964,"nodeType":"ExpressionStatement","src":"31060:55:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74967,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31285:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":74968,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31309:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74999,"nodeType":"Block","src":"31490:161:126","statements":[{"expression":{"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74985,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"31508:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31523:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74987,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31546:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74990,"nodeType":"ExpressionStatement","src":"31508:50:126"},{"expression":{"id":74997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74991,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31576:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31576:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74994,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31601:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74995,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31624:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74998,"nodeType":"ExpressionStatement","src":"31576:60:126"}]},"id":75000,"nodeType":"IfStatement","src":"31281:370:126","trueBody":{"id":74984,"nodeType":"Block","src":"31323:161:126","statements":[{"expression":{"id":74974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74970,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"31341:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74971,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31356:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74972,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31371:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74975,"nodeType":"ExpressionStatement","src":"31341:50:126"},{"expression":{"id":74982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74976,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31409:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31409:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74979,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31434:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74980,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31449:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74983,"nodeType":"ExpressionStatement","src":"31409:60:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75001,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31668:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"31668:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75028,"nodeType":"Block","src":"31765:209:126","statements":[{"expression":{"arguments":[{"id":75014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31810:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75015,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31820:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75013,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"31783:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75017,"nodeType":"ExpressionStatement","src":"31783:58:126"},{"eventCall":{"arguments":[{"id":75019,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"31877:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75020,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"31886:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75021,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31898:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75022,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31912:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31912:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75024,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31935:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31935:23:126","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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75018,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73024,"src":"31864:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75027,"nodeType":"EmitStatement","src":"31859:100:126"}]},"id":75029,"nodeType":"IfStatement","src":"31664:310:126","trueBody":{"id":75012,"nodeType":"Block","src":"31693:66:126","statements":[{"expression":{"id":75010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75005,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31711:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"31711:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75008,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:126","memberName":"number","nodeType":"MemberAccess","src":"31732:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75011,"nodeType":"ExpressionStatement","src":"31711:33:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74765,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28685:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74766,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"28689:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:126","memberName":"length","nodeType":"MemberAccess","src":"28689:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75031,"initializationExpression":{"assignments":[74762],"declarations":[{"constant":false,"id":74762,"mutability":"mutable","name":"i","nameLocation":"28678:1:126","nodeType":"VariableDeclaration","scope":75031,"src":"28670:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74761,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74764,"initialValue":{"hexValue":"30","id":74763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:126"},"loopExpression":{"expression":{"id":74770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:126","subExpression":{"id":74769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28714:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74771,"nodeType":"ExpressionStatement","src":"28714:3:126"},"nodeType":"ForStatement","src":"28665:3319:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:126","parameters":{"id":74753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74748,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:126","nodeType":"VariableDeclaration","scope":75033,"src":"28532:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74747,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74752,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:126","nodeType":"VariableDeclaration","scope":75033,"src":"28549:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74750,"nodeType":"UserDefinedTypeName","pathNode":{"id":74749,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:126","28564:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"28549:30:126"},"referencedDeclaration":72860,"src":"28549:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74751,"nodeType":"ArrayTypeName","src":"28549:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:126"},"returnParameters":{"id":74754,"nodeType":"ParameterList","parameters":[],"src":"28616:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75068,"nodeType":"FunctionDefinition","src":"31996:276:126","nodes":[],"body":{"id":75067,"nodeType":"Block","src":"32082:190:126","nodes":[],"statements":[{"assignments":[75043],"declarations":[{"constant":false,"id":75043,"mutability":"mutable","name":"result","nameLocation":"32099:6:126","nodeType":"VariableDeclaration","scope":75067,"src":"32092:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75042,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75050,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75046,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32115:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75044,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:126","typeDescriptions":{}}},"id":75047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75048,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75037,"src":"32127:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:126"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75051,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32148:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75061,"nodeType":"IfStatement","src":"32144:90:126","trueBody":{"id":75060,"nodeType":"Block","src":"32160:74:126","statements":[{"errorCall":{"arguments":[{"id":75055,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32198:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75056,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75037,"src":"32208:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32216:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75054,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72931,"src":"32181:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75059,"nodeType":"RevertStatement","src":"32174:49:126"}]}},{"expression":{"arguments":[{"id":75064,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32258:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75062,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:126","typeDescriptions":{}}},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75041,"id":75066,"nodeType":"Return","src":"32243:22:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:126","parameters":{"id":75038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75035,"mutability":"mutable","name":"_support","nameLocation":"32025:8:126","nodeType":"VariableDeclaration","scope":75068,"src":"32017:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75034,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75037,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:126","nodeType":"VariableDeclaration","scope":75068,"src":"32035:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75036,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:126"},"returnParameters":{"id":75041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75068,"src":"32073:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75039,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75124,"nodeType":"FunctionDefinition","src":"32689:1145:126","nodes":[],"body":{"id":75123,"nodeType":"Block","src":"32836:998:126","nodes":[],"statements":[{"assignments":[75081],"declarations":[{"constant":false,"id":75081,"mutability":"mutable","name":"t","nameLocation":"32854:1:126","nodeType":"VariableDeclaration","scope":75123,"src":"32846:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75080,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75083,"initialValue":{"id":75082,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75071,"src":"32858:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:126"},{"assignments":[75085],"declarations":[{"constant":false,"id":75085,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:126","nodeType":"VariableDeclaration","scope":75123,"src":"33184:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75084,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75095,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75087,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"33210:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75091,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33226:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75093,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"33229:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75086,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75312,"src":"33204:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75096,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"33727:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75097,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75073,"src":"33739:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75099,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75100,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75075,"src":"33754:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75101,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33767:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75103,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"33772:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75104,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"33782:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75109,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33797:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75110,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"33801:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75116,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75117,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33812:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75079,"id":75122,"nodeType":"Return","src":"33717:110:126"}]},"documentation":{"id":75069,"nodeType":"StructuredDocumentation","src":"32278:406:126","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:126","parameters":{"id":75076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75071,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:126","nodeType":"VariableDeclaration","scope":75124,"src":"32718:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75070,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75073,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:126","nodeType":"VariableDeclaration","scope":75124,"src":"32739:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75072,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75075,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:126","nodeType":"VariableDeclaration","scope":75124,"src":"32758:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75074,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:126"},"returnParameters":{"id":75079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75124,"src":"32823:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75077,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75212,"nodeType":"FunctionDefinition","src":"34415:1482:126","nodes":[],"body":{"id":75211,"nodeType":"Block","src":"34510:1387:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75132,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75139,"nodeType":"IfStatement","src":"34640:66:126","trueBody":{"id":75138,"nodeType":"Block","src":"34661:45:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"34682:11:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75137,"nodeType":"RevertStatement","src":"34675:20:126"}]}},{"condition":{"arguments":[{"id":75141,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75127,"src":"35162:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75140,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74650,"src":"35146:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75147,"nodeType":"IfStatement","src":"35142:91:126","trueBody":{"id":75146,"nodeType":"Block","src":"35181:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75143,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72917,"src":"35202:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75145,"nodeType":"RevertStatement","src":"35195:27:126"}]}},{"assignments":[75149],"declarations":[{"constant":false,"id":75149,"mutability":"mutable","name":"denom","nameLocation":"35389:5:126","nodeType":"VariableDeclaration","scope":75211,"src":"35381:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75148,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75167,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"35398:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75156,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35420:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75158,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75127,"src":"35425:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75163,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75164,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:126"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75168,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35475:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75169,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"35507:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75172,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75173,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35524:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75176,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75149,"src":"35531:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75177,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75149,"src":"35539:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75182,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75185,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35556:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75187,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75188,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35562:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75189,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"35566:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75194,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75320,"src":"35576:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75201,"nodeType":"ExpressionStatement","src":"35475:145:126"},{"expression":{"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75202,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35810:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75203,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35823:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75204,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"35836:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75207,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"35871:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:126","trueExpression":{"id":75206,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35858:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75210,"nodeType":"ExpressionStatement","src":"35810:80:126"}]},"documentation":{"id":75125,"nodeType":"StructuredDocumentation","src":"33840:570:126","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:126","parameters":{"id":75128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75127,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:126","nodeType":"VariableDeclaration","scope":75212,"src":"34443:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75126,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:126"},"returnParameters":{"id":75131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75130,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:126","nodeType":"VariableDeclaration","scope":75212,"src":"34490:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75129,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75247,"nodeType":"FunctionDefinition","src":"36158:269:126","nodes":[],"body":{"id":75246,"nodeType":"Block","src":"36236:191:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75223,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75215,"src":"36254:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75224,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36260:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75228,"nodeType":"ExpressionStatement","src":"36246:66:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75230,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75217,"src":"36330:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75231,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36335:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75235,"nodeType":"ExpressionStatement","src":"36322:53:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75236,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75215,"src":"36394:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75237,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75217,"src":"36399:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75240,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"36405:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75221,"id":75245,"nodeType":"Return","src":"36385:35:126"}]},"documentation":{"id":75213,"nodeType":"StructuredDocumentation","src":"35903:250:126","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:126","parameters":{"id":75218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75215,"mutability":"mutable","name":"_a","nameLocation":"36180:2:126","nodeType":"VariableDeclaration","scope":75247,"src":"36172:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75214,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75217,"mutability":"mutable","name":"_b","nameLocation":"36192:2:126","nodeType":"VariableDeclaration","scope":75247,"src":"36184:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75216,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:126"},"returnParameters":{"id":75221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75220,"mutability":"mutable","name":"_result","nameLocation":"36227:7:126","nodeType":"VariableDeclaration","scope":75247,"src":"36219:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75219,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75312,"nodeType":"FunctionDefinition","src":"36649:447:126","nodes":[],"body":{"id":75311,"nodeType":"Block","src":"36727:369:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75258,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75250,"src":"36745:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75259,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36750:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75263,"nodeType":"ExpressionStatement","src":"36737:53:126"},{"assignments":[75265],"declarations":[{"constant":false,"id":75265,"mutability":"mutable","name":"a","nameLocation":"36808:1:126","nodeType":"VariableDeclaration","scope":75311,"src":"36800:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75264,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75267,"initialValue":{"id":75266,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75250,"src":"36812:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:126"},{"assignments":[75269],"declarations":[{"constant":false,"id":75269,"mutability":"mutable","name":"b","nameLocation":"36832:1:126","nodeType":"VariableDeclaration","scope":75311,"src":"36824:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75268,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75271,"initialValue":{"id":75270,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75252,"src":"36836:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:126"},{"expression":{"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75272,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"36848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75273,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36858:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75275,"nodeType":"ExpressionStatement","src":"36848:17:126"},{"body":{"id":75309,"nodeType":"Block","src":"36889:201:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75279,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36907:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75307,"nodeType":"Block","src":"36997:83:126","statements":[{"expression":{"id":75301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75296,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"37015:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75298,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"37030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75299,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"37039:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75297,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37025:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75302,"nodeType":"ExpressionStatement","src":"37015:26:126"},{"expression":{"id":75305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75303,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"37059:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75306,"nodeType":"ExpressionStatement","src":"37059:6:126"}]},"id":75308,"nodeType":"IfStatement","src":"36903:177:126","trueBody":{"id":75295,"nodeType":"Block","src":"36919:72:126","statements":[{"expression":{"id":75289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36937:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75286,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36946:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36949:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75285,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"36941:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75290,"nodeType":"ExpressionStatement","src":"36937:14:126"},{"expression":{"id":75293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75291,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36969:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75294,"nodeType":"ExpressionStatement","src":"36969:7:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75276,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36882:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75310,"nodeType":"WhileStatement","src":"36875:215:126"}]},"documentation":{"id":75248,"nodeType":"StructuredDocumentation","src":"36433:211:126","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:126","parameters":{"id":75253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75250,"mutability":"mutable","name":"_a","nameLocation":"36671:2:126","nodeType":"VariableDeclaration","scope":75312,"src":"36663:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75249,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75252,"mutability":"mutable","name":"_b","nameLocation":"36683:2:126","nodeType":"VariableDeclaration","scope":75312,"src":"36675:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75251,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:126"},"returnParameters":{"id":75256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75255,"mutability":"mutable","name":"_result","nameLocation":"36718:7:126","nodeType":"VariableDeclaration","scope":75312,"src":"36710:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75254,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75320,"nodeType":"FunctionDefinition","src":"37102:112:126","nodes":[],"body":{"id":75319,"nodeType":"Block","src":"37170:44:126","nodes":[],"statements":[{"expression":{"id":75317,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"37187:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75316,"id":75318,"nodeType":"Return","src":"37180:27:126"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:126","parameters":{"id":75313,"nodeType":"ParameterList","parameters":[],"src":"37137:2:126"},"returnParameters":{"id":75316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75320,"src":"37161:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75314,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75361,"nodeType":"FunctionDefinition","src":"37404:396:126","nodes":[],"body":{"id":75360,"nodeType":"Block","src":"37512:288:126","nodes":[],"statements":[{"assignments":[75330,75332],"declarations":[{"constant":false,"id":75330,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:126","nodeType":"VariableDeclaration","scope":75360,"src":"37523:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75329,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75332,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:126","nodeType":"VariableDeclaration","scope":75360,"src":"37543:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75331,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75337,"initialValue":{"arguments":[{"id":75334,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37600:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75335,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75326,"src":"37611:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75333,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"37566:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75338,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"37636:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75341,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75332,"src":"37655:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75347,"nodeType":"IfStatement","src":"37632:72:126","trueBody":{"id":75346,"nodeType":"Block","src":"37673:31:126","statements":[{"functionReturnParameters":75328,"id":75345,"nodeType":"Return","src":"37687:7:126"}]}},{"expression":{"id":75352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75348,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37713:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"37713:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75351,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75332,"src":"37735:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75353,"nodeType":"ExpressionStatement","src":"37713:33:126"},{"expression":{"id":75358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75354,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37756:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"37756:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75357,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"37783:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75359,"nodeType":"ExpressionStatement","src":"37756:37:126"}]},"documentation":{"id":75321,"nodeType":"StructuredDocumentation","src":"37220:179:126","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:126","parameters":{"id":75327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75324,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:126","nodeType":"VariableDeclaration","scope":75361,"src":"37440:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75323,"nodeType":"UserDefinedTypeName","pathNode":{"id":75322,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:126","37455:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"37440:23:126"},"referencedDeclaration":72855,"src":"37440:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75326,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:126","nodeType":"VariableDeclaration","scope":75361,"src":"37483:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75325,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:126"},"returnParameters":{"id":75328,"nodeType":"ParameterList","parameters":[],"src":"37512:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75408,"nodeType":"FunctionDefinition","src":"37806:719:126","nodes":[],"body":{"id":75407,"nodeType":"Block","src":"38004:521:126","nodes":[],"statements":[{"expression":{"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75373,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38014:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75374,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:126","memberName":"number","nodeType":"MemberAccess","src":"38028:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75377,"nodeType":"ExpressionStatement","src":"38014:26:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75379,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38057:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38057:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75381,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38080:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75378,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:126","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75384,"nodeType":"ExpressionStatement","src":"38050:42:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75385,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38106:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38106:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75387,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38129:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75394,"nodeType":"IfStatement","src":"38102:173:126","trueBody":{"id":75393,"nodeType":"Block","src":"38142:133:126","statements":[{"expression":{"components":[{"hexValue":"30","id":75389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75391,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75372,"id":75392,"nodeType":"Return","src":"38222:13:126"}]}},{"expression":{"id":75405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75395,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75369,"src":"38328:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75397,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38374:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75398,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38388:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38388:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75401,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38460:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38460:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75403,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75366,"src":"38498:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75396,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75124,"src":"38341:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75406,"nodeType":"ExpressionStatement","src":"38328:190:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:126","parameters":{"id":75367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75364,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:126","nodeType":"VariableDeclaration","scope":75408,"src":"37849:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75363,"nodeType":"UserDefinedTypeName","pathNode":{"id":75362,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:126","37864:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"37849:23:126"},"referencedDeclaration":72855,"src":"37849:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75366,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:126","nodeType":"VariableDeclaration","scope":75408,"src":"37892:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75365,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:126"},"returnParameters":{"id":75372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75369,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:126","nodeType":"VariableDeclaration","scope":75408,"src":"37959:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75368,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75371,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:126","nodeType":"VariableDeclaration","scope":75408,"src":"37979:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75370,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75456,"nodeType":"FunctionDefinition","src":"38531:520:126","nodes":[],"body":{"id":75455,"nodeType":"Block","src":"38610:441:126","nodes":[],"statements":[{"assignments":[75419],"declarations":[{"constant":false,"id":75419,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:126","nodeType":"VariableDeclaration","scope":75455,"src":"38620:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75418,"nodeType":"UserDefinedTypeName","pathNode":{"id":75417,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:126","38635:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"38620:23:126"},"referencedDeclaration":72855,"src":"38620:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75423,"initialValue":{"baseExpression":{"id":75420,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"38663:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75422,"indexExpression":{"id":75421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38673:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38699:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"38699:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75426,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38722:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75433,"nodeType":"IfStatement","src":"38695:100:126","trueBody":{"id":75432,"nodeType":"Block","src":"38734:61:126","statements":[{"errorCall":{"arguments":[{"id":75429,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38773:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75428,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"38755:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75431,"nodeType":"RevertStatement","src":"38748:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"id":75439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75434,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38809:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"38809:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75436,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"38836:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":75437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"38836:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"38836:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75445,"nodeType":"IfStatement","src":"38805:130:126","trueBody":{"id":75444,"nodeType":"Block","src":"38874:61:126","statements":[{"errorCall":{"arguments":[{"id":75441,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38913:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75440,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72949,"src":"38895:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75443,"nodeType":"RevertStatement","src":"38888:36:126"}]}},{"expression":{"arguments":[{"id":75447,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38972:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38982:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"38982:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75446,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"38945:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75451,"nodeType":"ExpressionStatement","src":"38945:59:126"},{"expression":{"expression":{"id":75452,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"39021:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"39021:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75414,"id":75454,"nodeType":"Return","src":"39014:30:126"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:126","parameters":{"id":75411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75410,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:126","nodeType":"VariableDeclaration","scope":75456,"src":"38565:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75409,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:126"},"returnParameters":{"id":75414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75456,"src":"38601:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75412,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75475,"nodeType":"FunctionDefinition","src":"39057:124:126","nodes":[],"body":{"id":75474,"nodeType":"Block","src":"39129:52:126","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75463,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75458,"src":"39148:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75464,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"39157:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75466,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75467,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"39163:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75468,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"39167:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75472,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75462,"id":75473,"nodeType":"Return","src":"39139:35:126"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:126","parameters":{"id":75459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75458,"mutability":"mutable","name":"amount","nameLocation":"39091:6:126","nodeType":"VariableDeclaration","scope":75475,"src":"39083:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75457,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:126"},"returnParameters":{"id":75462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75475,"src":"39120:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75460,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75493,"nodeType":"FunctionDefinition","src":"39187:137:126","nodes":[],"body":{"id":75492,"nodeType":"Block","src":"39258:66:126","nodes":[],"statements":[{"expression":{"id":75486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75484,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"39268:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75485,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75477,"src":"39276:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75487,"nodeType":"ExpressionStatement","src":"39268:14:126"},{"eventCall":{"arguments":[{"id":75489,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75477,"src":"39310:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75488,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73032,"src":"39297:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75491,"nodeType":"EmitStatement","src":"39292:25:126"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75482,"kind":"modifierInvocation","modifierName":{"id":75479,"name":"onlyPoolManager","nameLocations":["39230:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:126"},"nodeType":"ModifierInvocation","src":"39230:27:126"}],"name":"setDecay","nameLocation":"39196:8:126","parameters":{"id":75478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75477,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:126","nodeType":"VariableDeclaration","scope":75493,"src":"39205:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:126"},"returnParameters":{"id":75483,"nodeType":"ParameterList","parameters":[],"src":"39258:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75511,"nodeType":"FunctionDefinition","src":"39330:155:126","nodes":[],"body":{"id":75510,"nodeType":"Block","src":"39407:78:126","nodes":[],"statements":[{"expression":{"id":75504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75502,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"39417:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75503,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"39428:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75505,"nodeType":"ExpressionStatement","src":"39417:20:126"},{"eventCall":{"arguments":[{"id":75507,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"39468:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75506,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73036,"src":"39452:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75509,"nodeType":"EmitStatement","src":"39447:31:126"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75498,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75500,"kind":"modifierInvocation","modifierName":{"id":75497,"name":"onlyPoolManager","nameLocations":["39379:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:126"},"nodeType":"ModifierInvocation","src":"39379:27:126"}],"name":"setMaxRatio","nameLocation":"39339:11:126","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75495,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:126","nodeType":"VariableDeclaration","scope":75511,"src":"39351:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75494,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:126"},"returnParameters":{"id":75501,"nodeType":"ParameterList","parameters":[],"src":"39407:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75529,"nodeType":"FunctionDefinition","src":"39491:143:126","nodes":[],"body":{"id":75528,"nodeType":"Block","src":"39564:70:126","nodes":[],"statements":[{"expression":{"id":75522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75520,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"39574:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75521,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75513,"src":"39583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75523,"nodeType":"ExpressionStatement","src":"39574:16:126"},{"eventCall":{"arguments":[{"id":75525,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75513,"src":"39619:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75524,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73040,"src":"39605:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75527,"nodeType":"EmitStatement","src":"39600:27:126"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75516,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75518,"kind":"modifierInvocation","modifierName":{"id":75515,"name":"onlyPoolManager","nameLocations":["39536:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:126"},"nodeType":"ModifierInvocation","src":"39536:27:126"}],"name":"setWeight","nameLocation":"39500:9:126","parameters":{"id":75514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75513,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:126","nodeType":"VariableDeclaration","scope":75529,"src":"39510:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75512,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:126"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[],"src":"39564:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75549,"nodeType":"FunctionDefinition","src":"39640:219:126","nodes":[],"body":{"id":75548,"nodeType":"Block","src":"39735:124:126","nodes":[],"statements":[{"expression":{"id":75542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75538,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"39745:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75540,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75531,"src":"39783:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75539,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"39765:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77692_$","typeString":"type(contract RegistryCommunity)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"src":"39745:57:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":75543,"nodeType":"ExpressionStatement","src":"39745:57:126"},{"eventCall":{"arguments":[{"id":75545,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75531,"src":"39833:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75544,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73044,"src":"39817:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75547,"nodeType":"EmitStatement","src":"39812:40:126"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75536,"kind":"modifierInvocation","modifierName":{"id":75533,"name":"onlyPoolManager","nameLocations":["39707:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:126"},"nodeType":"ModifierInvocation","src":"39707:27:126"}],"name":"setRegistryCommunity","nameLocation":"39649:20:126","parameters":{"id":75532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75531,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:126","nodeType":"VariableDeclaration","scope":75549,"src":"39670:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75530,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:126"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[],"src":"39735:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75568,"nodeType":"FunctionDefinition","src":"39865:237:126","nodes":[],"body":{"id":75567,"nodeType":"Block","src":"39962:140:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75559,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"40003:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75560,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"40024:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75558,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73050,"src":"39977:25:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75562,"nodeType":"EmitStatement","src":"39972:72:126"},{"expression":{"id":75565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75563,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"40054:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75564,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"40076:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75566,"nodeType":"ExpressionStatement","src":"40054:41:126"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75554,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75556,"kind":"modifierInvocation","modifierName":{"id":75553,"name":"onlyPoolManager","nameLocations":["39934:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:126"},"nodeType":"ModifierInvocation","src":"39934:27:126"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:126","parameters":{"id":75552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75551,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:126","nodeType":"VariableDeclaration","scope":75568,"src":"39896:27:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75550,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:126"},"returnParameters":{"id":75557,"nodeType":"ParameterList","parameters":[],"src":"39962:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":72893,"name":"BaseStrategy","nameLocations":["2845:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:126"},"id":72894,"nodeType":"InheritanceSpecifier","src":"2845:12:126"},{"baseName":{"id":72895,"name":"IPointStrategy","nameLocations":["2859:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72801,"src":"2859:14:126"},"id":72896,"nodeType":"InheritanceSpecifier","src":"2859:14:126"},{"baseName":{"id":72897,"name":"ERC165","nameLocations":["2875:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":58105,"src":"2875:6:126"},"id":72898,"nodeType":"InheritanceSpecifier","src":"2875:6:126"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75569,58105,58311,72801,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:126","scope":75570,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,72903,72905,72907,72909,72911,72913,72915,72917,72919,72921,72923,72931,72933,72935,72941,72943,72945,72949,72953,72959,72961,72963,72971]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file +{"abi":[{"type":"function","name":"deactivatePoints","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToUntake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getPointSystem","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"stateMutability":"nonpayable"},{"type":"function","name":"increasePower","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_amountToStake","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"deactivatePoints(address)":"6453d9c4","decreasePower(address,uint256)":"2ed04b2b","getPointSystem()":"c3292171","increasePower(address,uint256)":"782aadff"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"deactivatePoints\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToUntake\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getPointSystem\",\"outputs\":[{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amountToStake\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"IPointStrategy\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivatePoints"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToUntake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"getPointSystem","outputs":[{"internalType":"enum StrategyStruct.PointSystem","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"uint256","name":"_amountToStake","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"IPointStrategy"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75562,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75561],"ERC165":[58097],"ERC20":[56822],"IAllo":[2610],"IERC165":[58303],"IPointStrategy":[72793],"Math":[59169],"Metadata":[3098],"RegistryCommunity":[77675],"StrategyStruct":[72884],"console":[29549]},"nodeType":"SourceUnit","src":"42:40063:126","nodes":[{"id":72748,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72751,"nodeType":"ImportDirective","src":"68:82:126","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72749,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72750,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72754,"nodeType":"ImportDirective","src":"152:68:126","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":77676,"symbolAliases":[{"foreign":{"id":72752,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"160:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72753,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72757,"nodeType":"ImportDirective","src":"221:87:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":58098,"symbolAliases":[{"foreign":{"id":72755,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58097,"src":"229:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72756,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58303,"src":"237:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72759,"nodeType":"ImportDirective","src":"309:68:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":56823,"symbolAliases":[{"foreign":{"id":72758,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"317:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72761,"nodeType":"ImportDirective","src":"379:46:126","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":29550,"symbolAliases":[{"foreign":{"id":72760,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"387:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72763,"nodeType":"ImportDirective","src":"427:65:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":59170,"symbolAliases":[{"foreign":{"id":72762,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"435:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72793,"nodeType":"ContractDefinition","src":"494:355:126","nodes":[{"id":72768,"nodeType":"FunctionDefinition","src":"525:52:126","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:126","parameters":{"id":72766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72765,"mutability":"mutable","name":"_member","nameLocation":"559:7:126","nodeType":"VariableDeclaration","scope":72768,"src":"551:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72764,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:126"},"returnParameters":{"id":72767,"nodeType":"ParameterList","parameters":[],"src":"576:0:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72777,"nodeType":"FunctionDefinition","src":"582:91:126","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:126","parameters":{"id":72773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72770,"mutability":"mutable","name":"_member","nameLocation":"613:7:126","nodeType":"VariableDeclaration","scope":72777,"src":"605:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72769,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72772,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:126","nodeType":"VariableDeclaration","scope":72777,"src":"622:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72771,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:126"},"returnParameters":{"id":72776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72777,"src":"664:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72774,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72786,"nodeType":"FunctionDefinition","src":"678:92:126","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:126","parameters":{"id":72782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72779,"mutability":"mutable","name":"_member","nameLocation":"709:7:126","nodeType":"VariableDeclaration","scope":72786,"src":"701:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72778,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72781,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:126","nodeType":"VariableDeclaration","scope":72786,"src":"718:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72780,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:126"},"returnParameters":{"id":72785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72786,"src":"761:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72783,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72792,"nodeType":"FunctionDefinition","src":"775:72:126","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:126","parameters":{"id":72787,"nodeType":"ParameterList","parameters":[],"src":"798:2:126"},"returnParameters":{"id":72791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72792,"src":"819:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72789,"nodeType":"UserDefinedTypeName","pathNode":{"id":72788,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:126","834:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"819:26:126"},"referencedDeclaration":72802,"src":"819:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[72793],"name":"IPointStrategy","nameLocation":"504:14:126","scope":75562,"usedErrors":[]},{"id":72884,"nodeType":"ContractDefinition","src":"851:1969:126","nodes":[{"id":72797,"nodeType":"EnumDefinition","src":"880:79:126","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":72794,"name":"Signaling","nameLocation":"908:9:126","nodeType":"EnumValue","src":"908:9:126"},{"id":72795,"name":"Funding","nameLocation":"927:7:126","nodeType":"EnumValue","src":"927:7:126"},{"id":72796,"name":"Streaming","nameLocation":"944:9:126","nodeType":"EnumValue","src":"944:9:126"}],"name":"ProposalType","nameLocation":"885:12:126"},{"id":72802,"nodeType":"EnumDefinition","src":"965:92:126","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":72798,"name":"Fixed","nameLocation":"992:5:126","nodeType":"EnumValue","src":"992:5:126"},{"id":72799,"name":"Capped","nameLocation":"1007:6:126","nodeType":"EnumValue","src":"1007:6:126"},{"id":72800,"name":"Unlimited","nameLocation":"1023:9:126","nodeType":"EnumValue","src":"1023:9:126"},{"id":72801,"name":"Quadratic","nameLocation":"1042:9:126","nodeType":"EnumValue","src":"1042:9:126"}],"name":"PointSystem","nameLocation":"970:11:126"},{"id":72814,"nodeType":"StructDefinition","src":"1063:243:126","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":72804,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:126","nodeType":"VariableDeclaration","scope":72814,"src":"1126:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72803,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72806,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:126","nodeType":"VariableDeclaration","scope":72814,"src":"1150:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72805,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72808,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:126","nodeType":"VariableDeclaration","scope":72814,"src":"1217:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72810,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:126","nodeType":"VariableDeclaration","scope":72814,"src":"1250:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72809,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72813,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:126","nodeType":"VariableDeclaration","scope":72814,"src":"1282:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72812,"nodeType":"UserDefinedTypeName","pathNode":{"id":72811,"name":"Metadata","nameLocations":["1282:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:126"},"referencedDeclaration":3098,"src":"1282:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:126","scope":72884,"visibility":"public"},{"id":72820,"nodeType":"EnumDefinition","src":"1312:289:126","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":72815,"name":"Inactive","nameLocation":"1342:8:126","nodeType":"EnumValue","src":"1342:8:126"},{"id":72816,"name":"Active","nameLocation":"1372:6:126","nodeType":"EnumValue","src":"1372:6:126"},{"id":72817,"name":"Paused","nameLocation":"1435:6:126","nodeType":"EnumValue","src":"1435:6:126"},{"id":72818,"name":"Cancelled","nameLocation":"1500:9:126","nodeType":"EnumValue","src":"1500:9:126"},{"id":72819,"name":"Executed","nameLocation":"1553:8:126","nodeType":"EnumValue","src":"1553:8:126"}],"name":"ProposalStatus","nameLocation":"1317:14:126"},{"id":72847,"nodeType":"StructDefinition","src":"1607:405:126","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":72822,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:126","nodeType":"VariableDeclaration","scope":72847,"src":"1633:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72824,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:126","nodeType":"VariableDeclaration","scope":72847,"src":"1661:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72823,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72826,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:126","nodeType":"VariableDeclaration","scope":72847,"src":"1694:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72825,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72828,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1724:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72827,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72830,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:126","nodeType":"VariableDeclaration","scope":72847,"src":"1756:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72829,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:126","nodeType":"VariableDeclaration","scope":72847,"src":"1785:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72831,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72834,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1812:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72833,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72836,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:126","nodeType":"VariableDeclaration","scope":72847,"src":"1844:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72839,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1871:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":72838,"nodeType":"UserDefinedTypeName","pathNode":{"id":72837,"name":"ProposalStatus","nameLocations":["1871:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72820,"src":"1871:14:126"},"referencedDeclaration":72820,"src":"1871:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":72843,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:126","nodeType":"VariableDeclaration","scope":72847,"src":"1910:45:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":72842,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":72840,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":72841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":72846,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:126","nodeType":"VariableDeclaration","scope":72847,"src":"1988:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72845,"nodeType":"UserDefinedTypeName","pathNode":{"id":72844,"name":"Metadata","nameLocations":["1988:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:126"},"referencedDeclaration":3098,"src":"1988:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:126","scope":72884,"visibility":"public"},{"id":72852,"nodeType":"StructDefinition","src":"2018:126:126","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":72849,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:126","nodeType":"VariableDeclaration","scope":72852,"src":"2051:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72848,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72851,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:126","nodeType":"VariableDeclaration","scope":72852,"src":"2079:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72850,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:126","scope":72884,"visibility":"public"},{"id":72855,"nodeType":"StructDefinition","src":"2150:89:126","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":72854,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"2215:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72853,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:126","scope":72884,"visibility":"public"},{"id":72860,"nodeType":"StructDefinition","src":"2245:88:126","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":72857,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:126","nodeType":"VariableDeclaration","scope":72860,"src":"2274:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72856,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72859,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:126","nodeType":"VariableDeclaration","scope":72860,"src":"2309:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:126","scope":72884,"visibility":"public"},{"id":72883,"nodeType":"StructDefinition","src":"2339:479:126","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":72862,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:126","nodeType":"VariableDeclaration","scope":72883,"src":"2373:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72861,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72864,"mutability":"mutable","name":"decay","nameLocation":"2445:5:126","nodeType":"VariableDeclaration","scope":72883,"src":"2437:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72863,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72866,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:126","nodeType":"VariableDeclaration","scope":72883,"src":"2507:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72865,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72868,"mutability":"mutable","name":"weight","nameLocation":"2569:6:126","nodeType":"VariableDeclaration","scope":72883,"src":"2561:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72870,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:126","nodeType":"VariableDeclaration","scope":72883,"src":"2585:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72873,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:126","nodeType":"VariableDeclaration","scope":72883,"src":"2646:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":72872,"nodeType":"UserDefinedTypeName","pathNode":{"id":72871,"name":"ProposalType","nameLocations":["2646:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"2646:12:126"},"referencedDeclaration":72797,"src":"2646:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":72876,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2716:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72875,"nodeType":"UserDefinedTypeName","pathNode":{"id":72874,"name":"PointSystem","nameLocations":["2716:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"2716:11:126"},"referencedDeclaration":72802,"src":"2716:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":72879,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2749:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":72878,"nodeType":"UserDefinedTypeName","pathNode":{"id":72877,"name":"PointSystemConfig","nameLocations":["2749:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"2749:17:126"},"referencedDeclaration":72855,"src":"2749:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":72882,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2788:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72860_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":72881,"nodeType":"UserDefinedTypeName","pathNode":{"id":72880,"name":"SybilConfig","nameLocations":["2788:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"2788:11:126"},"referencedDeclaration":72860,"src":"2788:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72860_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:126","scope":72884,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[72884],"name":"StrategyStruct","nameLocation":"859:14:126","scope":75562,"usedErrors":[]},{"id":75561,"nodeType":"ContractDefinition","src":"2822:37282:126","nodes":[{"id":72893,"nodeType":"UsingForDirective","src":"2888:23:126","nodes":[],"global":false,"libraryName":{"id":72891,"name":"Math","nameLocations":["2894:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":59169,"src":"2894:4:126"},"typeName":{"id":72892,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":72895,"nodeType":"ErrorDefinition","src":"3082:25:126","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:126","parameters":{"id":72894,"nodeType":"ParameterList","parameters":[],"src":"3104:2:126"}},{"id":72897,"nodeType":"ErrorDefinition","src":"3126:26:126","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:126","parameters":{"id":72896,"nodeType":"ParameterList","parameters":[],"src":"3149:2:126"}},{"id":72899,"nodeType":"ErrorDefinition","src":"3170:23:126","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:126","parameters":{"id":72898,"nodeType":"ParameterList","parameters":[],"src":"3190:2:126"}},{"id":72901,"nodeType":"ErrorDefinition","src":"3212:20:126","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:126","parameters":{"id":72900,"nodeType":"ParameterList","parameters":[],"src":"3229:2:126"}},{"id":72903,"nodeType":"ErrorDefinition","src":"3251:23:126","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:126","parameters":{"id":72902,"nodeType":"ParameterList","parameters":[],"src":"3271:2:126"}},{"id":72905,"nodeType":"ErrorDefinition","src":"3292:26:126","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:126","parameters":{"id":72904,"nodeType":"ParameterList","parameters":[],"src":"3315:2:126"}},{"id":72907,"nodeType":"ErrorDefinition","src":"3336:24:126","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:126","parameters":{"id":72906,"nodeType":"ParameterList","parameters":[],"src":"3357:2:126"}},{"id":72909,"nodeType":"ErrorDefinition","src":"3379:27:126","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:126","parameters":{"id":72908,"nodeType":"ParameterList","parameters":[],"src":"3403:2:126"}},{"id":72911,"nodeType":"ErrorDefinition","src":"3425:27:126","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:126","parameters":{"id":72910,"nodeType":"ParameterList","parameters":[],"src":"3449:2:126"}},{"id":72913,"nodeType":"ErrorDefinition","src":"3470:28:126","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:126","parameters":{"id":72912,"nodeType":"ParameterList","parameters":[],"src":"3495:2:126"}},{"id":72915,"nodeType":"ErrorDefinition","src":"3516:29:126","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:126","parameters":{"id":72914,"nodeType":"ParameterList","parameters":[],"src":"3542:2:126"}},{"id":72923,"nodeType":"ErrorDefinition","src":"3564:72:126","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:126","parameters":{"id":72922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72917,"mutability":"mutable","name":"_support","nameLocation":"3595:8:126","nodeType":"VariableDeclaration","scope":72923,"src":"3587:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72916,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72919,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:126","nodeType":"VariableDeclaration","scope":72923,"src":"3605:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72918,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":72921,"mutability":"mutable","name":"_result","nameLocation":"3627:7:126","nodeType":"VariableDeclaration","scope":72923,"src":"3620:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72920,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:126"}},{"id":72925,"nodeType":"ErrorDefinition","src":"3655:25:126","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:126","parameters":{"id":72924,"nodeType":"ParameterList","parameters":[],"src":"3677:2:126"}},{"id":72927,"nodeType":"ErrorDefinition","src":"3699:32:126","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:126","parameters":{"id":72926,"nodeType":"ParameterList","parameters":[],"src":"3728:2:126"}},{"id":72933,"nodeType":"ErrorDefinition","src":"3750:77:126","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:126","parameters":{"id":72932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72929,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:126","nodeType":"VariableDeclaration","scope":72933,"src":"3781:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72928,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72931,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:126","nodeType":"VariableDeclaration","scope":72933,"src":"3804:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:126"}},{"id":72935,"nodeType":"ErrorDefinition","src":"3847:28:126","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:126","parameters":{"id":72934,"nodeType":"ParameterList","parameters":[],"src":"3872:2:126"}},{"id":72937,"nodeType":"ErrorDefinition","src":"3893:31:126","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:126","parameters":{"id":72936,"nodeType":"ParameterList","parameters":[],"src":"3921:2:126"}},{"id":72941,"nodeType":"ErrorDefinition","src":"3942:45:126","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:126","parameters":{"id":72940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72939,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:126","nodeType":"VariableDeclaration","scope":72941,"src":"3966:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72938,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:126"}},{"id":72945,"nodeType":"ErrorDefinition","src":"4006:45:126","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:126","parameters":{"id":72944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72943,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:126","nodeType":"VariableDeclaration","scope":72945,"src":"4030:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72942,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:126"}},{"id":72951,"nodeType":"ErrorDefinition","src":"4070:68:126","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:126","parameters":{"id":72950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72947,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:126","nodeType":"VariableDeclaration","scope":72951,"src":"4102:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72946,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72949,"mutability":"mutable","name":"index","nameLocation":"4131:5:126","nodeType":"VariableDeclaration","scope":72951,"src":"4123:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72948,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:126"}},{"id":72953,"nodeType":"ErrorDefinition","src":"4156:40:126","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:126","parameters":{"id":72952,"nodeType":"ParameterList","parameters":[],"src":"4193:2:126"}},{"id":72955,"nodeType":"ErrorDefinition","src":"4215:29:126","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:126","parameters":{"id":72954,"nodeType":"ParameterList","parameters":[],"src":"4241:2:126"}},{"id":72963,"nodeType":"ErrorDefinition","src":"4263:94:126","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:126","parameters":{"id":72962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72957,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:126","nodeType":"VariableDeclaration","scope":72963,"src":"4289:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72956,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72959,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:126","nodeType":"VariableDeclaration","scope":72963,"src":"4310:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72958,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72961,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:126","nodeType":"VariableDeclaration","scope":72963,"src":"4336:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72960,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:126"}},{"id":72970,"nodeType":"EventDefinition","src":"4542:74:126","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:126","parameters":{"id":72969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72965,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:126","nodeType":"VariableDeclaration","scope":72970,"src":"4562:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72964,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72968,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:126","nodeType":"VariableDeclaration","scope":72970,"src":"4578:36:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":72967,"nodeType":"UserDefinedTypeName","pathNode":{"id":72966,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:126","4593:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"4578:31:126"},"referencedDeclaration":72883,"src":"4578:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:126"}},{"id":72978,"nodeType":"EventDefinition","src":"4621:75:126","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:126","parameters":{"id":72977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72972,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:126","nodeType":"VariableDeclaration","scope":72978,"src":"4639:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72971,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72974,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:126","nodeType":"VariableDeclaration","scope":72978,"src":"4659:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72973,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72976,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:126","nodeType":"VariableDeclaration","scope":72978,"src":"4680:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72975,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:126"}},{"id":72984,"nodeType":"EventDefinition","src":"4701:58:126","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:126","parameters":{"id":72983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72980,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:126","nodeType":"VariableDeclaration","scope":72984,"src":"4723:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72982,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:126","nodeType":"VariableDeclaration","scope":72984,"src":"4739:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72981,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:126"}},{"id":72988,"nodeType":"EventDefinition","src":"4764:42:126","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:126","parameters":{"id":72987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72986,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:126","nodeType":"VariableDeclaration","scope":72988,"src":"4790:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72985,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:126"}},{"id":72996,"nodeType":"EventDefinition","src":"4811:85:126","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:126","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72990,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:126","nodeType":"VariableDeclaration","scope":72996,"src":"4832:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72989,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72992,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:126","nodeType":"VariableDeclaration","scope":72996,"src":"4848:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72991,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72994,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:126","nodeType":"VariableDeclaration","scope":72996,"src":"4870:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72993,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:126"}},{"id":73004,"nodeType":"EventDefinition","src":"4901:87:126","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:126","parameters":{"id":73003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72998,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:126","nodeType":"VariableDeclaration","scope":73004,"src":"4922:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72997,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73000,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:126","nodeType":"VariableDeclaration","scope":73004,"src":"4938:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73002,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:126","nodeType":"VariableDeclaration","scope":73004,"src":"4962:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:126"}},{"id":73016,"nodeType":"EventDefinition","src":"4993:134:126","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:126","parameters":{"id":73015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73006,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:126","nodeType":"VariableDeclaration","scope":73016,"src":"5021:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73005,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73008,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:126","nodeType":"VariableDeclaration","scope":73016,"src":"5035:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73007,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73010,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:126","nodeType":"VariableDeclaration","scope":73016,"src":"5055:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73012,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:126","nodeType":"VariableDeclaration","scope":73016,"src":"5071:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73011,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73014,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:126","nodeType":"VariableDeclaration","scope":73016,"src":"5098:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73013,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:126"}},{"id":73020,"nodeType":"EventDefinition","src":"5132:40:126","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:126","parameters":{"id":73019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73018,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:126","nodeType":"VariableDeclaration","scope":73020,"src":"5156:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73017,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:126"}},{"id":73024,"nodeType":"EventDefinition","src":"5177:34:126","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:126","parameters":{"id":73023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73022,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:126","nodeType":"VariableDeclaration","scope":73024,"src":"5196:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:126"}},{"id":73028,"nodeType":"EventDefinition","src":"5216:40:126","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:126","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73026,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:126","nodeType":"VariableDeclaration","scope":73028,"src":"5238:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73025,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:126"}},{"id":73032,"nodeType":"EventDefinition","src":"5261:36:126","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:126","parameters":{"id":73031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73030,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:126","nodeType":"VariableDeclaration","scope":73032,"src":"5281:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:126"}},{"id":73036,"nodeType":"EventDefinition","src":"5302:49:126","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:126","parameters":{"id":73035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73034,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:126","nodeType":"VariableDeclaration","scope":73036,"src":"5324:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73033,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:126"}},{"id":73042,"nodeType":"EventDefinition","src":"5356:76:126","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:126","parameters":{"id":73041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73038,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:126","nodeType":"VariableDeclaration","scope":73042,"src":"5388:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73040,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:126","nodeType":"VariableDeclaration","scope":73042,"src":"5404:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73039,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:126"}},{"id":73045,"nodeType":"VariableDeclaration","src":"5806:36:126","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73043,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:126","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73048,"nodeType":"VariableDeclaration","src":"5856:70:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73046,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:126","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73051,"nodeType":"VariableDeclaration","src":"5942:69:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73049,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:126","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73054,"nodeType":"VariableDeclaration","src":"6027:53:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73052,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73057,"nodeType":"VariableDeclaration","src":"6095:49:126","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73055,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73059,"nodeType":"VariableDeclaration","src":"6272:20:126","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73058,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73061,"nodeType":"VariableDeclaration","src":"6298:23:126","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73063,"nodeType":"VariableDeclaration","src":"6327:21:126","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73062,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73066,"nodeType":"VariableDeclaration","src":"6354:34:126","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73064,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73068,"nodeType":"VariableDeclaration","src":"6394:26:126","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73067,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73070,"nodeType":"VariableDeclaration","src":"6426:35:126","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73069,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73073,"nodeType":"VariableDeclaration","src":"6467:38:126","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73071,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73075,"nodeType":"VariableDeclaration","src":"6546:47:126","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73074,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73078,"nodeType":"VariableDeclaration","src":"6678:47:126","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73077,"nodeType":"UserDefinedTypeName","pathNode":{"id":73076,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:126","6693:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"6678:27:126"},"referencedDeclaration":72797,"src":"6678:27:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73081,"nodeType":"VariableDeclaration","src":"6784:45:126","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73080,"nodeType":"UserDefinedTypeName","pathNode":{"id":73079,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:126","6799:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"6784:26:126"},"referencedDeclaration":72802,"src":"6784:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73084,"nodeType":"VariableDeclaration","src":"6835:51:126","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73083,"nodeType":"UserDefinedTypeName","pathNode":{"id":73082,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:126","6850:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"6835:32:126"},"referencedDeclaration":72855,"src":"6835:32:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73087,"nodeType":"VariableDeclaration","src":"6919:42:126","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"},"typeName":{"id":73086,"nodeType":"UserDefinedTypeName","pathNode":{"id":73085,"name":"RegistryCommunity","nameLocations":["6919:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":77675,"src":"6919:17:126"},"referencedDeclaration":77675,"src":"6919:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73092,"nodeType":"VariableDeclaration","src":"7028:60:126","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73091,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73088,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73090,"nodeType":"UserDefinedTypeName","pathNode":{"id":73089,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:126","7062:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"7047:23:126"},"referencedDeclaration":72847,"src":"7047:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73096,"nodeType":"VariableDeclaration","src":"7144:53:126","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73095,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73093,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73094,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73101,"nodeType":"VariableDeclaration","src":"7235:57:126","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73100,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73097,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73098,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73099,"nodeType":"ArrayTypeName","src":"7254:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73114,"nodeType":"FunctionDefinition","src":"7496:72:126","nodes":[],"body":{"id":73113,"nodeType":"Block","src":"7566:2:126","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73108,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73103,"src":"7544:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73106,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:126","typeDescriptions":{}}},"id":73109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73111,"kind":"baseConstructorSpecifier","modifierName":{"id":73105,"name":"BaseStrategy","nameLocations":["7523:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:126"},"nodeType":"ModifierInvocation","src":"7523:42:126"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73103,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:126","nodeType":"VariableDeclaration","scope":73114,"src":"7508:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73102,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:126"},"returnParameters":{"id":73112,"nodeType":"ParameterList","parameters":[],"src":"7566:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73198,"nodeType":"FunctionDefinition","src":"7574:1028:126","nodes":[],"body":{"id":73197,"nodeType":"Block","src":"7640:962:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":73122,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"7670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73121,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73124,"nodeType":"ExpressionStatement","src":"7650:28:126"},{"assignments":[73129],"declarations":[{"constant":false,"id":73129,"mutability":"mutable","name":"ip","nameLocation":"7727:2:126","nodeType":"VariableDeclaration","scope":73197,"src":"7688:41:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73128,"nodeType":"UserDefinedTypeName","pathNode":{"id":73127,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:126","7703:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"7688:31:126"},"referencedDeclaration":72883,"src":"7688:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73137,"initialValue":{"arguments":[{"id":73132,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73118,"src":"7743:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73133,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"7751:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:126","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":72883,"src":"7751:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:126","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73138,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8139:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"8139:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:126","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":73141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73140,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:126","typeDescriptions":{}}},"id":73143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73149,"nodeType":"IfStatement","src":"8135:94:126","trueBody":{"id":73148,"nodeType":"Block","src":"8175:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73145,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"8196:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73147,"nodeType":"RevertStatement","src":"8189:29:126"}]}},{"expression":{"id":73155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73150,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"8239:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73152,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8277:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"8277:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73151,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"8259:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77675_$","typeString":"type(contract RegistryCommunity)"}},"id":73154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"src":"8239:59:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73156,"nodeType":"ExpressionStatement","src":"8239:59:126"},{"expression":{"id":73160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73157,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"8308:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73158,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8316:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:126","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72864,"src":"8316:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73161,"nodeType":"ExpressionStatement","src":"8308:16:126"},{"expression":{"id":73165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73162,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"8334:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73163,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8345:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:126","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72866,"src":"8345:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73166,"nodeType":"ExpressionStatement","src":"8334:22:126"},{"expression":{"id":73170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73167,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"8366:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73168,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8375:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:126","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72868,"src":"8375:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73171,"nodeType":"ExpressionStatement","src":"8366:18:126"},{"expression":{"id":73175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73172,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"8394:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73173,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8409:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:126","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72873,"src":"8409:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"id":73176,"nodeType":"ExpressionStatement","src":"8394:30:126"},{"expression":{"id":73180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73177,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"8434:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73178,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8448:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:126","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"8448:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"id":73181,"nodeType":"ExpressionStatement","src":"8434:28:126"},{"expression":{"id":73185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73182,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"8472:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73183,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8486:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:126","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72879,"src":"8486:14:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73186,"nodeType":"ExpressionStatement","src":"8472:28:126"},{"expression":{"id":73190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73187,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"8510:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73188,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8532:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:126","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73191,"nodeType":"ExpressionStatement","src":"8510:43:126"},{"eventCall":{"arguments":[{"id":73193,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"8583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73194,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8592:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73192,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72970,"src":"8569:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$72883_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73196,"nodeType":"EmitStatement","src":"8564:31:126"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:126","parameters":{"id":73119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73116,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:126","nodeType":"VariableDeclaration","scope":73198,"src":"7594:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73115,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73118,"mutability":"mutable","name":"_data","nameLocation":"7624:5:126","nodeType":"VariableDeclaration","scope":73198,"src":"7611:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73117,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:126"},"returnParameters":{"id":73120,"nodeType":"ParameterList","parameters":[],"src":"7640:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73202,"nodeType":"FunctionDefinition","src":"8773:83:126","nodes":[],"body":{"id":73201,"nodeType":"Block","src":"8801:55:126","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73199,"nodeType":"ParameterList","parameters":[],"src":"8781:2:126"},"returnParameters":{"id":73200,"nodeType":"ParameterList","parameters":[],"src":"8801:0:126"},"scope":75561,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73206,"nodeType":"FunctionDefinition","src":"8862:135:126","nodes":[],"body":{"id":73205,"nodeType":"Block","src":"8889:108:126","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73203,"nodeType":"ParameterList","parameters":[],"src":"8869:2:126"},"returnParameters":{"id":73204,"nodeType":"ParameterList","parameters":[],"src":"8889:0:126"},"scope":75561,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73227,"nodeType":"FunctionDefinition","src":"9003:202:126","nodes":[],"body":{"id":73226,"nodeType":"Block","src":"9094:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73214,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73208,"src":"9111:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73216,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"9131:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":73215,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:126","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":73218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:126","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73208,"src":"9186:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73220,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75561_$","typeString":"type(contract super CVStrategy)"}},"id":73221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:126","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58096,"src":"9162:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73213,"id":73225,"nodeType":"Return","src":"9104:94:126"}]},"baseFunctions":[58096],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:126","overrides":{"id":73210,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:126"},"parameters":{"id":73209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73208,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:126","nodeType":"VariableDeclaration","scope":73227,"src":"9030:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:126"},"returnParameters":{"id":73213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73227,"src":"9088:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73211,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:126"},"scope":75561,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73268,"nodeType":"FunctionDefinition","src":"9376:377:126","nodes":[],"body":{"id":73267,"nodeType":"Block","src":"9435:318:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73232,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73229,"src":"9449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:126","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":73234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73233,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:126","typeDescriptions":{}}},"id":73236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73242,"nodeType":"IfStatement","src":"9445:77:126","trueBody":{"id":73241,"nodeType":"Block","src":"9472:50:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73238,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72895,"src":"9493:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73240,"nodeType":"RevertStatement","src":"9486:25:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73245,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9543:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":73244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73243,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:126","typeDescriptions":{}}},"id":73246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:126","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":73248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73247,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:126","typeDescriptions":{}}},"id":73250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73256,"nodeType":"IfStatement","src":"9531:100:126","trueBody":{"id":73255,"nodeType":"Block","src":"9577:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73252,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"9598:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73254,"nodeType":"RevertStatement","src":"9591:29:126"}]}},{"condition":{"id":73261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:126","subExpression":{"arguments":[{"id":73259,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73229,"src":"9672:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73257,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9645:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:126","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"9645:26:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73266,"nodeType":"IfStatement","src":"9640:93:126","trueBody":{"id":73265,"nodeType":"Block","src":"9682:51:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73262,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72897,"src":"9703:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73264,"nodeType":"RevertStatement","src":"9696:26:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:126","parameters":{"id":73230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73229,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:126","nodeType":"VariableDeclaration","scope":73268,"src":"9405:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73228,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:126"},"returnParameters":{"id":73231,"nodeType":"ParameterList","parameters":[],"src":"9435:0:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73284,"nodeType":"FunctionDefinition","src":"9759:162:126","nodes":[],"body":{"id":73283,"nodeType":"Block","src":"9805:116:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:126","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73275,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9841:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":73274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73273,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:126","typeDescriptions":{}}},"id":73276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73282,"nodeType":"IfStatement","src":"9815:100:126","trueBody":{"id":73281,"nodeType":"Block","src":"9861:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73278,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72955,"src":"9882:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73280,"nodeType":"RevertStatement","src":"9875:29:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:126","parameters":{"id":73269,"nodeType":"ParameterList","parameters":[],"src":"9789:2:126"},"returnParameters":{"id":73270,"nodeType":"ParameterList","parameters":[],"src":"9805:0:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73300,"nodeType":"FunctionDefinition","src":"9927:132:126","nodes":[],"body":{"id":73299,"nodeType":"Block","src":"9986:73:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73289,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73286,"src":"10000:8:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:126","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":73291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73290,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:126","typeDescriptions":{}}},"id":73293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73298,"nodeType":"IfStatement","src":"9996:56:126","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73295,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"10031:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73297,"nodeType":"RevertStatement","src":"10024:28:126"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:126","parameters":{"id":73287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73286,"mutability":"mutable","name":"_address","nameLocation":"9962:8:126","nodeType":"VariableDeclaration","scope":73300,"src":"9954:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73285,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:126"},"returnParameters":{"id":73288,"nodeType":"ParameterList","parameters":[],"src":"9986:0:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73475,"nodeType":"FunctionDefinition","src":"10385:1945:126","nodes":[],"body":{"id":73474,"nodeType":"Block","src":"10486:1844:126","nodes":[],"statements":[{"expression":{"id":73310,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"10541:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73311,"nodeType":"ExpressionStatement","src":"10541:5:126"},{"assignments":[73316],"declarations":[{"constant":false,"id":73316,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:126","nodeType":"VariableDeclaration","scope":73474,"src":"10556:45:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73315,"nodeType":"UserDefinedTypeName","pathNode":{"id":73314,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:126","10571:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72814,"src":"10556:29:126"},"referencedDeclaration":72814,"src":"10556:29:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73324,"initialValue":{"arguments":[{"id":73319,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"10615:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73320,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"10623:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:126","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"10623:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73322,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:126","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73325,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"10769:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:126","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":72804,"src":"10769:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73333,"nodeType":"IfStatement","src":"10765:78:126","trueBody":{"id":73332,"nodeType":"Block","src":"10791:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73329,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"10812:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73331,"nodeType":"RevertStatement","src":"10805:27:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73334,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"10919:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73335,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"10935:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72797,"src":"10935:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72797_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72795,"src":"10935:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73385,"nodeType":"IfStatement","src":"10915:721:126","trueBody":{"id":73384,"nodeType":"Block","src":"10972:664:126","statements":[{"expression":{"arguments":[{"expression":{"id":73340,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11004:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11004:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73339,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73300,"src":"10986:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73343,"nodeType":"ExpressionStatement","src":"10986:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73344,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11091:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11091:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:126","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":73347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73346,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:126","typeDescriptions":{}}},"id":73349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73355,"nodeType":"IfStatement","src":"11087:102:126","trueBody":{"id":73354,"nodeType":"Block","src":"11130:59:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73351,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"11155:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73353,"nodeType":"RevertStatement","src":"11148:26:126"}]}},{"assignments":[73357],"declarations":[{"constant":false,"id":73357,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:126","nodeType":"VariableDeclaration","scope":73384,"src":"11202:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73356,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73365,"initialValue":{"expression":{"arguments":[{"id":73362,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73358,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}},"id":73359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:126","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73366,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11276:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11276:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73368,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73357,"src":"11303:9:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73374,"nodeType":"IfStatement","src":"11272:234:126","trueBody":{"id":73373,"nodeType":"Block","src":"11314:192:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73370,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"11474:15:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73372,"nodeType":"RevertStatement","src":"11467:24:126"}]}},{"condition":{"arguments":[{"expression":{"id":73376,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11539:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"11539:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73375,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"11523:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73383,"nodeType":"IfStatement","src":"11519:107:126","trueBody":{"id":73382,"nodeType":"Block","src":"11566:60:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73379,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"11591:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73381,"nodeType":"RevertStatement","src":"11584:27:126"}]}}]}},{"assignments":[73387],"declarations":[{"constant":false,"id":73387,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:126","nodeType":"VariableDeclaration","scope":73474,"src":"11645:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73386,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73390,"initialValue":{"id":73389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:126","subExpression":{"id":73388,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73066,"src":"11668:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:126"},{"assignments":[73395],"declarations":[{"constant":false,"id":73395,"mutability":"mutable","name":"p","nameLocation":"11725:1:126","nodeType":"VariableDeclaration","scope":73474,"src":"11693:33:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73394,"nodeType":"UserDefinedTypeName","pathNode":{"id":73393,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:126","11708:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"11693:23:126"},"referencedDeclaration":72847,"src":"11693:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73399,"initialValue":{"baseExpression":{"id":73396,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"11729:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73398,"indexExpression":{"id":73397,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"11739:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:126"},{"expression":{"id":73404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73400,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11761:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"11761:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"11776:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73405,"nodeType":"ExpressionStatement","src":"11761:25:126"},{"expression":{"id":73410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73406,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11796:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"11796:11:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73409,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73304,"src":"11810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73411,"nodeType":"ExpressionStatement","src":"11796:21:126"},{"expression":{"id":73417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73412,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11827:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"11827:13:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73415,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11843:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11843:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73418,"nodeType":"ExpressionStatement","src":"11827:36:126"},{"expression":{"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73419,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11873:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"11873:16:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73422,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11892:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11892:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73425,"nodeType":"ExpressionStatement","src":"11873:42:126"},{"expression":{"id":73431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73426,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11925:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"11925:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73429,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11945:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"11945:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73432,"nodeType":"ExpressionStatement","src":"11925:44:126"},{"expression":{"id":73439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73433,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12030:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"12030:16:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73436,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"12049:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"12049:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"12049:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73440,"nodeType":"ExpressionStatement","src":"12030:55:126"},{"expression":{"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12095:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"12095:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73444,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:126","memberName":"number","nodeType":"MemberAccess","src":"12109:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73447,"nodeType":"ExpressionStatement","src":"12095:26:126"},{"expression":{"id":73452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73448,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12131:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"12131:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73453,"nodeType":"ExpressionStatement","src":"12131:20:126"},{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73454,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12197:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72846,"src":"12197:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73457,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12210:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72813,"src":"12210:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73460,"nodeType":"ExpressionStatement","src":"12197:30:126"},{"eventCall":{"arguments":[{"id":73462,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73463,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"12267:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73461,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72984,"src":"12243:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73465,"nodeType":"EmitStatement","src":"12238:40:126"},{"expression":{"arguments":[{"arguments":[{"id":73470,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"12311:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73468,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:126","typeDescriptions":{}}},"id":73471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73466,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:126","typeDescriptions":{}}},"id":73472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73309,"id":73473,"nodeType":"Return","src":"12288:35:126"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:126","overrides":{"id":73306,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:126"},"parameters":{"id":73305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73302,"mutability":"mutable","name":"_data","nameLocation":"10426:5:126","nodeType":"VariableDeclaration","scope":73475,"src":"10413:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73301,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73304,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:126","nodeType":"VariableDeclaration","scope":73475,"src":"10433:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73303,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:126"},"returnParameters":{"id":73309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73475,"src":"10477:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73307,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73505,"nodeType":"FunctionDefinition","src":"12336:253:126","nodes":[],"body":{"id":73504,"nodeType":"Block","src":"12371:218:126","nodes":[],"statements":[{"assignments":[73479],"declarations":[{"constant":false,"id":73479,"mutability":"mutable","name":"member","nameLocation":"12389:6:126","nodeType":"VariableDeclaration","scope":73504,"src":"12381:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73478,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73482,"initialValue":{"expression":{"id":73480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:126"},{"expression":{"arguments":[{"id":73486,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73479,"src":"12461:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73489,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73487,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:126","typeDescriptions":{}}},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73483,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12418:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:126","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76634,"src":"12418:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73492,"nodeType":"ExpressionStatement","src":"12418:65:126"},{"expression":{"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73493,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"12493:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73496,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73479,"src":"12560:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73499,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73497,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:126","typeDescriptions":{}}},"id":73500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73494,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12517:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"12517:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73503,"nodeType":"ExpressionStatement","src":"12493:89:126"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:126","parameters":{"id":73476,"nodeType":"ParameterList","parameters":[],"src":"12359:2:126"},"returnParameters":{"id":73477,"nodeType":"ParameterList","parameters":[],"src":"12371:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73514,"nodeType":"FunctionDefinition","src":"12595:81:126","nodes":[],"body":{"id":73513,"nodeType":"Block","src":"12630:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73509,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73508,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"12640:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73512,"nodeType":"ExpressionStatement","src":"12640:29:126"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:126","parameters":{"id":73506,"nodeType":"ParameterList","parameters":[],"src":"12620:2:126"},"returnParameters":{"id":73507,"nodeType":"ParameterList","parameters":[],"src":"12630:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73527,"nodeType":"FunctionDefinition","src":"12682:128:126","nodes":[],"body":{"id":73526,"nodeType":"Block","src":"12734:76:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73519,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"12744:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73521,"nodeType":"ExpressionStatement","src":"12744:23:126"},{"expression":{"arguments":[{"id":73523,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73516,"src":"12795:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73522,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"12777:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73525,"nodeType":"ExpressionStatement","src":"12777:26:126"}]},"baseFunctions":[72768],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:126","parameters":{"id":73517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73516,"mutability":"mutable","name":"_member","nameLocation":"12716:7:126","nodeType":"VariableDeclaration","scope":73527,"src":"12708:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73515,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:126"},"returnParameters":{"id":73518,"nodeType":"ParameterList","parameters":[],"src":"12734:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73562,"nodeType":"FunctionDefinition","src":"12816:351:126","nodes":[],"body":{"id":73561,"nodeType":"Block","src":"12869:298:126","nodes":[],"statements":[{"expression":{"id":73541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73532,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"12879:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73535,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"12946:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73538,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:126","typeDescriptions":{}}},"id":73539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73533,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12903:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"12903:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73542,"nodeType":"ExpressionStatement","src":"12879:90:126"},{"expression":{"arguments":[{"id":73546,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13024:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73549,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73547,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:126","typeDescriptions":{}}},"id":73550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73543,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12979:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:126","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76693,"src":"12979:44:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73552,"nodeType":"ExpressionStatement","src":"12979:68:126"},{"expression":{"arguments":[{"id":73554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13111:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73553,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74436,"src":"13102:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73556,"nodeType":"ExpressionStatement","src":"13102:17:126"},{"eventCall":{"arguments":[{"id":73558,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73557,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73020,"src":"13134:17:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"EmitStatement","src":"13129:31:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:126","parameters":{"id":73530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"_member","nameLocation":"12851:7:126","nodeType":"VariableDeclaration","scope":73562,"src":"12843:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73528,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:126"},"returnParameters":{"id":73531,"nodeType":"ParameterList","parameters":[],"src":"12869:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73646,"nodeType":"FunctionDefinition","src":"13173:958:126","nodes":[],"body":{"id":73645,"nodeType":"Block","src":"13264:867:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73571,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"13319:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73573,"nodeType":"ExpressionStatement","src":"13319:23:126"},{"assignments":[73575],"declarations":[{"constant":false,"id":73575,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:126","nodeType":"VariableDeclaration","scope":73645,"src":"13352:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73574,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73577,"initialValue":{"hexValue":"30","id":73576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73578,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13394:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73579,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13409:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13409:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"13409:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73590,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13539:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73591,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13554:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13554:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72799,"src":"13554:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73603,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13687:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73604,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13702:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13702:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:126","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72801,"src":"13702:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73616,"nodeType":"IfStatement","src":"13683:148:126","trueBody":{"id":73615,"nodeType":"Block","src":"13740:91:126","statements":[{"expression":{"id":73613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73608,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13754:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73610,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13796:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73611,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13805:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73609,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73859,"src":"13773:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73614,"nodeType":"ExpressionStatement","src":"13754:66:126"}]}},"id":73617,"nodeType":"IfStatement","src":"13535:296:126","trueBody":{"id":73602,"nodeType":"Block","src":"13589:88:126","statements":[{"expression":{"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73595,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13603:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73597,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13642:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73598,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13651:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73596,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73775,"src":"13622:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73601,"nodeType":"ExpressionStatement","src":"13603:63:126"}]}},"id":73618,"nodeType":"IfStatement","src":"13390:441:126","trueBody":{"id":73589,"nodeType":"Block","src":"13447:82:126","statements":[{"expression":{"id":73587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73583,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13461:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73585,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13503:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73584,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73712,"src":"13480:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73588,"nodeType":"ExpressionStatement","src":"13461:57:126"}]}},{"assignments":[73620],"declarations":[{"constant":false,"id":73620,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:126","nodeType":"VariableDeclaration","scope":73645,"src":"13840:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73619,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73629,"initialValue":{"arguments":[{"id":73623,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13905:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73626,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73624,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:126","typeDescriptions":{}}},"id":73627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73621,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"13859:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76168,"src":"13859:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:126"},{"condition":{"id":73630,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73620,"src":"13942:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73636,"nodeType":"IfStatement","src":"13938:82:126","trueBody":{"id":73635,"nodeType":"Block","src":"13955:65:126","statements":[{"expression":{"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73631,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"13969:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73632,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13993:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73634,"nodeType":"ExpressionStatement","src":"13969:40:126"}]}},{"eventCall":{"arguments":[{"id":73638,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"14049:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73639,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"14058:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73640,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"14074:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73637,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72996,"src":"14034:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73642,"nodeType":"EmitStatement","src":"14029:62:126"},{"expression":{"id":73643,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"14108:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73570,"id":73644,"nodeType":"Return","src":"14101:23:126"}]},"baseFunctions":[72777],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:126","parameters":{"id":73567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73564,"mutability":"mutable","name":"_member","nameLocation":"13204:7:126","nodeType":"VariableDeclaration","scope":73646,"src":"13196:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73563,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73566,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:126","nodeType":"VariableDeclaration","scope":73646,"src":"13213:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73565,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:126"},"returnParameters":{"id":73570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73646,"src":"13255:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73568,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73702,"nodeType":"FunctionDefinition","src":"14137:681:126","nodes":[],"body":{"id":73701,"nodeType":"Block","src":"14230:588:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73655,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"14240:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73657,"nodeType":"ExpressionStatement","src":"14240:23:126"},{"assignments":[73659],"declarations":[{"constant":false,"id":73659,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:126","nodeType":"VariableDeclaration","scope":73701,"src":"14319:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73658,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73661,"initialValue":{"hexValue":"30","id":73660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73662,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"14361:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73663,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"14376:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"14376:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"14376:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73667,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"14416:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73668,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"14431:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"14431:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72799,"src":"14431:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73687,"nodeType":"Block","src":"14562:93:126","statements":[{"expression":{"id":73685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73680,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14576:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73682,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73648,"src":"14618:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73683,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14627:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73681,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73963,"src":"14595:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73686,"nodeType":"ExpressionStatement","src":"14576:68:126"}]},"id":73688,"nodeType":"IfStatement","src":"14357:298:126","trueBody":{"id":73679,"nodeType":"Block","src":"14466:90:126","statements":[{"expression":{"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73673,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14480:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73675,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14528:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73674,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73869,"src":"14499:28:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73678,"nodeType":"ExpressionStatement","src":"14480:65:126"}]}},{"expression":{"id":73691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73689,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"14664:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73690,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14688:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73692,"nodeType":"ExpressionStatement","src":"14664:40:126"},{"eventCall":{"arguments":[{"id":73694,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73648,"src":"14734:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73695,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14743:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73696,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14761:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73693,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73004,"src":"14719:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73698,"nodeType":"EmitStatement","src":"14714:64:126"},{"expression":{"id":73699,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14795:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73654,"id":73700,"nodeType":"Return","src":"14788:23:126"}]},"baseFunctions":[72786],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:126","parameters":{"id":73651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73648,"mutability":"mutable","name":"_member","nameLocation":"14168:7:126","nodeType":"VariableDeclaration","scope":73702,"src":"14160:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73647,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73650,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:126","nodeType":"VariableDeclaration","scope":73702,"src":"14177:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73649,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:126"},"returnParameters":{"id":73654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73702,"src":"14221:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73652,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73712,"nodeType":"FunctionDefinition","src":"14824:126:126","nodes":[],"body":{"id":73711,"nodeType":"Block","src":"14912:38:126","nodes":[],"statements":[{"expression":{"id":73709,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73704,"src":"14929:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73708,"id":73710,"nodeType":"Return","src":"14922:21:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:126","parameters":{"id":73705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73704,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:126","nodeType":"VariableDeclaration","scope":73712,"src":"14856:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73703,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:126"},"returnParameters":{"id":73708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73712,"src":"14903:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73706,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73775,"nodeType":"FunctionDefinition","src":"14956:615:126","nodes":[],"body":{"id":73774,"nodeType":"Block","src":"15058:513:126","nodes":[],"statements":[{"assignments":[73722],"declarations":[{"constant":false,"id":73722,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:126","nodeType":"VariableDeclaration","scope":73774,"src":"15068:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73721,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73724,"initialValue":{"id":73723,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73716,"src":"15095:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:126"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73729,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15153:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73725,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15119:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15119:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73731,"nodeType":"ExpressionStatement","src":"15119:51:126"},{"assignments":[73733],"declarations":[{"constant":false,"id":73733,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:126","nodeType":"VariableDeclaration","scope":73774,"src":"15180:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73732,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73742,"initialValue":{"arguments":[{"id":73736,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73714,"src":"15245:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73737,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:126","typeDescriptions":{}}},"id":73740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73734,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15202:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"15202:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:126"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73747,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15305:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73743,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15278:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15278:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73749,"nodeType":"ExpressionStatement","src":"15278:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73750,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15331:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73751,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15345:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73753,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"15364:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"15364:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73764,"nodeType":"IfStatement","src":"15327:139:126","trueBody":{"id":73763,"nodeType":"Block","src":"15387:79:126","statements":[{"expression":{"id":73761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73756,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15401:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73757,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"15420:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"15420:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73759,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15444:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73762,"nodeType":"ExpressionStatement","src":"15401:54:126"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73769,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15513:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73765,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15475:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15475:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73771,"nodeType":"ExpressionStatement","src":"15475:55:126"},{"expression":{"id":73772,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15548:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73720,"id":73773,"nodeType":"Return","src":"15541:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:126","parameters":{"id":73717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73714,"mutability":"mutable","name":"_member","nameLocation":"14993:7:126","nodeType":"VariableDeclaration","scope":73775,"src":"14985:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73713,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73716,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:126","nodeType":"VariableDeclaration","scope":73775,"src":"15002:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73715,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:126"},"returnParameters":{"id":73720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73775,"src":"15049:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73718,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73859,"nodeType":"FunctionDefinition","src":"15577:730:126","nodes":[],"body":{"id":73858,"nodeType":"Block","src":"15682:625:126","nodes":[],"statements":[{"assignments":[73785],"declarations":[{"constant":false,"id":73785,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:126","nodeType":"VariableDeclaration","scope":73858,"src":"15692:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73784,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73792,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73788,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73777,"src":"15753:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73786,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15713:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77029,"src":"15713:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73790,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"15764:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:126"},{"assignments":[73794],"declarations":[{"constant":false,"id":73794,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:126","nodeType":"VariableDeclaration","scope":73858,"src":"15789:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73793,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73796,"initialValue":{"hexValue":"3138","id":73795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:126"},{"clauses":[{"block":{"id":73817,"nodeType":"Block","src":"15907:52:126","statements":[{"expression":{"id":73815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73810,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"15921:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73813,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73808,"src":"15939:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73811,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:126","typeDescriptions":{}}},"id":73814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73816,"nodeType":"ExpressionStatement","src":"15921:27:126"}]},"errorName":"","id":73818,"nodeType":"TryCatchClause","parameters":{"id":73809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73808,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:126","nodeType":"VariableDeclaration","scope":73818,"src":"15891:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73807,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:126"},"src":"15882:77:126"},{"block":{"id":73825,"nodeType":"Block","src":"15966:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73819,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15980:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"15980:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73824,"nodeType":"ExpressionStatement","src":"15980:36:126"}]},"errorName":"","id":73826,"nodeType":"TryCatchClause","src":"15960:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73800,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15837:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76132,"src":"15837:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73798,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:126","typeDescriptions":{}}},"id":73803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73797,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"15823:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"15823:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73827,"nodeType":"TryStatement","src":"15819:208:126"},{"assignments":[73829],"declarations":[{"constant":false,"id":73829,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:126","nodeType":"VariableDeclaration","scope":73858,"src":"16036:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73828,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73838,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73832,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"16071:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73834,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"16090:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73830,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"16061:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59169_$","typeString":"type(library Math)"}},"id":73831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58673,"src":"16061:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:126"},{"assignments":[73840],"declarations":[{"constant":false,"id":73840,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:126","nodeType":"VariableDeclaration","scope":73858,"src":"16108:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73839,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73849,"initialValue":{"arguments":[{"id":73843,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73777,"src":"16175:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73844,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:126","typeDescriptions":{}}},"id":73847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73841,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16132:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"16132:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:126"},{"assignments":[73851],"declarations":[{"constant":false,"id":73851,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:126","nodeType":"VariableDeclaration","scope":73858,"src":"16209:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73850,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73855,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73852,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73829,"src":"16236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73853,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73840,"src":"16253:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:126"},{"expression":{"id":73856,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"16284:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73783,"id":73857,"nodeType":"Return","src":"16277:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:126","parameters":{"id":73780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73777,"mutability":"mutable","name":"_member","nameLocation":"15617:7:126","nodeType":"VariableDeclaration","scope":73859,"src":"15609:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73776,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73779,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:126","nodeType":"VariableDeclaration","scope":73859,"src":"15626:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73778,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:126"},"returnParameters":{"id":73783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73859,"src":"15673:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73781,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73869,"nodeType":"FunctionDefinition","src":"16313:136:126","nodes":[],"body":{"id":73868,"nodeType":"Block","src":"16409:40:126","nodes":[],"statements":[{"expression":{"id":73866,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73861,"src":"16426:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73865,"id":73867,"nodeType":"Return","src":"16419:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:126","parameters":{"id":73862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73861,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:126","nodeType":"VariableDeclaration","scope":73869,"src":"16351:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73860,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:126"},"returnParameters":{"id":73865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73869,"src":"16400:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73863,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73963,"nodeType":"FunctionDefinition","src":"16455:802:126","nodes":[],"body":{"id":73962,"nodeType":"Block","src":"16562:695:126","nodes":[],"statements":[{"assignments":[73879],"declarations":[{"constant":false,"id":73879,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:126","nodeType":"VariableDeclaration","scope":73962,"src":"16572:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73878,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73881,"initialValue":{"hexValue":"3138","id":73880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:126"},{"clauses":[{"block":{"id":73902,"nodeType":"Block","src":"16690:52:126","statements":[{"expression":{"id":73900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73895,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"16704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73898,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73893,"src":"16722:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73896,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:126","typeDescriptions":{}}},"id":73899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73901,"nodeType":"ExpressionStatement","src":"16704:27:126"}]},"errorName":"","id":73903,"nodeType":"TryCatchClause","parameters":{"id":73894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73893,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:126","nodeType":"VariableDeclaration","scope":73903,"src":"16674:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73892,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:126"},"src":"16665:77:126"},{"block":{"id":73910,"nodeType":"Block","src":"16749:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73904,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16763:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"16763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73909,"nodeType":"ExpressionStatement","src":"16763:36:126"}]},"errorName":"","id":73911,"nodeType":"TryCatchClause","src":"16743:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73885,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16620:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76132,"src":"16620:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73883,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:126","typeDescriptions":{}}},"id":73888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73882,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"16606:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"16606:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73912,"nodeType":"TryStatement","src":"16602:208:126"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":73916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":73917,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73873,"src":"16851:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73913,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16819:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16819:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73919,"nodeType":"ExpressionStatement","src":"16819:49:126"},{"assignments":[73921],"declarations":[{"constant":false,"id":73921,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:126","nodeType":"VariableDeclaration","scope":73962,"src":"16878:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73920,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73928,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73924,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73871,"src":"16942:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73922,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16902:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77029,"src":"16902:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73926,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73873,"src":"16953:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:126"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":73932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":73933,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73921,"src":"17008:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73929,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16979:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16979:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73935,"nodeType":"ExpressionStatement","src":"16979:43:126"},{"assignments":[73937],"declarations":[{"constant":false,"id":73937,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:126","nodeType":"VariableDeclaration","scope":73962,"src":"17032:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73936,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73946,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73940,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73921,"src":"17067:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73942,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"17089:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73938,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"17057:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59169_$","typeString":"type(library Math)"}},"id":73939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58673,"src":"17057:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:126"},{"assignments":[73948],"declarations":[{"constant":false,"id":73948,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:126","nodeType":"VariableDeclaration","scope":73962,"src":"17107:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73947,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73959,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73951,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73871,"src":"17177:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73954,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73952,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:126","typeDescriptions":{}}},"id":73955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73949,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"17134:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"17134:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73957,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73937,"src":"17203:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:126"},{"expression":{"id":73960,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73948,"src":"17234:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73877,"id":73961,"nodeType":"Return","src":"17227:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:126","parameters":{"id":73874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73871,"mutability":"mutable","name":"_member","nameLocation":"16495:7:126","nodeType":"VariableDeclaration","scope":73963,"src":"16487:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73870,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73873,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:126","nodeType":"VariableDeclaration","scope":73963,"src":"16504:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73872,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:126"},"returnParameters":{"id":73877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73963,"src":"16553:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73875,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73972,"nodeType":"FunctionDefinition","src":"17263:99:126","nodes":[],"body":{"id":73971,"nodeType":"Block","src":"17317:45:126","nodes":[],"statements":[{"expression":{"expression":{"id":73968,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"17334:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"17334:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73967,"id":73970,"nodeType":"Return","src":"17327:28:126"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:126","parameters":{"id":73964,"nodeType":"ParameterList","parameters":[],"src":"17284:2:126"},"returnParameters":{"id":73967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73972,"src":"17308:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73965,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73981,"nodeType":"FunctionDefinition","src":"17368:110:126","nodes":[],"body":{"id":73980,"nodeType":"Block","src":"17443:35:126","nodes":[],"statements":[{"expression":{"id":73978,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"17460:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":73977,"id":73979,"nodeType":"Return","src":"17453:18:126"}]},"baseFunctions":[72792],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:126","parameters":{"id":73973,"nodeType":"ParameterList","parameters":[],"src":"17391:2:126"},"returnParameters":{"id":73977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73981,"src":"17415:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73975,"nodeType":"UserDefinedTypeName","pathNode":{"id":73974,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:126","17430:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"17415:26:126"},"referencedDeclaration":72802,"src":"17415:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73992,"nodeType":"FunctionDefinition","src":"17594:226:126","nodes":[],"body":{"id":73991,"nodeType":"Block","src":"17672:148:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73988,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"17737:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73990,"nodeType":"RevertStatement","src":"17730:23:126"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:126","parameters":{"id":73986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73992,"src":"17619:39:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":73983,"nodeType":"UserDefinedTypeName","pathNode":{"id":73982,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:126","17634:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"17619:30:126"},"referencedDeclaration":72852,"src":"17619:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":73984,"nodeType":"ArrayTypeName","src":"17619:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:126"},"returnParameters":{"id":73987,"nodeType":"ParameterList","parameters":[],"src":"17672:0:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74048,"nodeType":"FunctionDefinition","src":"17966:551:126","nodes":[],"body":{"id":74047,"nodeType":"Block","src":"18040:477:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74001,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18070:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74000,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73268,"src":"18050:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74003,"nodeType":"ExpressionStatement","src":"18050:28:126"},{"assignments":[74005],"declarations":[{"constant":false,"id":74005,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:126","nodeType":"VariableDeclaration","scope":74047,"src":"18134:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74004,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74014,"initialValue":{"arguments":[{"id":74008,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18211:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":74010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74009,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:126","typeDescriptions":{}}},"id":74012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74006,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"18165:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76168,"src":"18165:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:126"},{"condition":{"id":74016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:126","subExpression":{"id":74015,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74005,"src":"18249:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74021,"nodeType":"IfStatement","src":"18244:78:126","trueBody":{"id":74020,"nodeType":"Block","src":"18274:48:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74017,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72899,"src":"18295:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74019,"nodeType":"RevertStatement","src":"18288:23:126"}]}},{"assignments":[74027],"declarations":[{"constant":false,"id":74027,"mutability":"mutable","name":"pv","nameLocation":"18371:2:126","nodeType":"VariableDeclaration","scope":74047,"src":"18331:42:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74025,"nodeType":"UserDefinedTypeName","pathNode":{"id":74024,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:126","18346:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"18331:30:126"},"referencedDeclaration":72852,"src":"18331:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74026,"nodeType":"ArrayTypeName","src":"18331:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74036,"initialValue":{"arguments":[{"id":74030,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73994,"src":"18387:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74031,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"18395:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:126","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":72852,"src":"18395:30:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$72852_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74034,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:126","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:126"},{"expression":{"arguments":[{"id":74038,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18464:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74039,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74027,"src":"18473:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74037,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74738,"src":"18439:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74041,"nodeType":"ExpressionStatement","src":"18439:37:126"},{"expression":{"arguments":[{"id":74043,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18498:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74044,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74027,"src":"18507:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74042,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75025,"src":"18486:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74046,"nodeType":"ExpressionStatement","src":"18486:24:126"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:126","overrides":{"id":73998,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:126"},"parameters":{"id":73997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73994,"mutability":"mutable","name":"_data","nameLocation":"17998:5:126","nodeType":"VariableDeclaration","scope":74048,"src":"17985:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73993,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73996,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:126","nodeType":"VariableDeclaration","scope":74048,"src":"18005:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73995,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:126"},"returnParameters":{"id":73999,"nodeType":"ParameterList","parameters":[],"src":"18040:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74204,"nodeType":"FunctionDefinition","src":"18773:1756:126","nodes":[],"body":{"id":74203,"nodeType":"Block","src":"18859:1670:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74059,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74053,"src":"18952:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:126","memberName":"length","nodeType":"MemberAccess","src":"18952:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74067,"nodeType":"IfStatement","src":"18948:76:126","trueBody":{"id":74066,"nodeType":"Block","src":"18971:53:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74063,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72935,"src":"18992:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74065,"nodeType":"RevertStatement","src":"18985:28:126"}]}},{"assignments":[74069],"declarations":[{"constant":false,"id":74069,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:126","nodeType":"VariableDeclaration","scope":74203,"src":"19034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74068,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74077,"initialValue":{"arguments":[{"id":74072,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74053,"src":"19066:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74073,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:126","typeDescriptions":{}}}],"id":74075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74070,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:126","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74078,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19098:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74085,"nodeType":"IfStatement","src":"19094:77:126","trueBody":{"id":74084,"nodeType":"Block","src":"19115:56:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74081,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72937,"src":"19136:22:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74083,"nodeType":"RevertStatement","src":"19129:31:126"}]}},{"assignments":[74090],"declarations":[{"constant":false,"id":74090,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:126","nodeType":"VariableDeclaration","scope":74203,"src":"19180:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74089,"nodeType":"UserDefinedTypeName","pathNode":{"id":74088,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:126","19195:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"19180:23:126"},"referencedDeclaration":72847,"src":"19180:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74094,"initialValue":{"baseExpression":{"id":74091,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"19223:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74093,"indexExpression":{"id":74092,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19233:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":74099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74095,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"19259:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74096,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"19275:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72797,"src":"19275:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72797_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72795,"src":"19275:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74202,"nodeType":"IfStatement","src":"19255:1208:126","trueBody":{"id":74201,"nodeType":"Block","src":"19312:1151:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74100,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19330:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"19330:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74102,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19353:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74109,"nodeType":"IfStatement","src":"19326:108:126","trueBody":{"id":74108,"nodeType":"Block","src":"19365:69:126","statements":[{"errorCall":{"arguments":[{"id":74105,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19408:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74104,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"19390:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74107,"nodeType":"RevertStatement","src":"19383:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19452:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19452:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74112,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74122,"nodeType":"IfStatement","src":"19448:152:126","trueBody":{"id":74121,"nodeType":"Block","src":"19491:109:126","statements":[{"errorCall":{"arguments":[{"id":74115,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19536:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74116,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19548:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19548:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74118,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74114,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72963,"src":"19516:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74120,"nodeType":"RevertStatement","src":"19509:76:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"id":74128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74123,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19618:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"19618:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74125,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"19645:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"19645:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"19645:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74134,"nodeType":"IfStatement","src":"19614:138:126","trueBody":{"id":74133,"nodeType":"Block","src":"19683:69:126","statements":[{"errorCall":{"arguments":[{"id":74130,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19726:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74129,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"19708:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74132,"nodeType":"RevertStatement","src":"19701:36:126"}]}},{"assignments":[74136],"declarations":[{"constant":false,"id":74136,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:126","nodeType":"VariableDeclaration","scope":74201,"src":"19766:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74135,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74140,"initialValue":{"arguments":[{"id":74138,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19816:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74137,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"19791:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:126"},{"assignments":[74142],"declarations":[{"constant":false,"id":74142,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:126","nodeType":"VariableDeclaration","scope":74201,"src":"19841:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74141,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74147,"initialValue":{"arguments":[{"expression":{"id":74144,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19880:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19880:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74143,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"19861:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74148,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74136,"src":"19924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74149,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74142,"src":"19941:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74151,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19954:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19954:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74160,"nodeType":"IfStatement","src":"19920:137:126","trueBody":{"id":74159,"nodeType":"Block","src":"19984:73:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74156,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"20009:31:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74158,"nodeType":"RevertStatement","src":"20002:40:126"}]}},{"assignments":[74165],"declarations":[{"constant":false,"id":74165,"mutability":"mutable","name":"pool","nameLocation":"20089:4:126","nodeType":"VariableDeclaration","scope":74201,"src":"20071:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74164,"nodeType":"UserDefinedTypeName","pathNode":{"id":74163,"name":"IAllo.Pool","nameLocations":["20071:5:126","20077:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:126"},"referencedDeclaration":2319,"src":"20071:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74170,"initialValue":{"arguments":[{"id":74168,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74166,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:126"},{"expression":{"id":74174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74171,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74172,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20145:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20145:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74175,"nodeType":"ExpressionStatement","src":"20131:38:126"},{"expression":{"arguments":[{"expression":{"id":74177,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"20207:4:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74179,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20219:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"20219:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74181,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20241:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20241:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74176,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74184,"nodeType":"ExpressionStatement","src":"20191:75:126"},{"expression":{"id":74191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74185,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20297:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"20297:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74188,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"20323:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"20323:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:126","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":72819,"src":"20323:38:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74192,"nodeType":"ExpressionStatement","src":"20297:64:126"},{"eventCall":{"arguments":[{"id":74194,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"20393:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74195,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20405:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"20405:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20427:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20427:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74193,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[72978,2858],"referencedDeclaration":72978,"src":"20381:11:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74200,"nodeType":"EmitStatement","src":"20376:76:126"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:126","overrides":{"id":74057,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:126"},"parameters":{"id":74056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74204,"src":"18794:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74049,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74050,"nodeType":"ArrayTypeName","src":"18794:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74053,"mutability":"mutable","name":"_data","nameLocation":"18825:5:126","nodeType":"VariableDeclaration","scope":74204,"src":"18812:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74052,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74204,"src":"18832:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74054,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:126"},"returnParameters":{"id":74058,"nodeType":"ParameterList","parameters":[],"src":"18859:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74258,"nodeType":"FunctionDefinition","src":"20535:735:126","nodes":[],"body":{"id":74257,"nodeType":"Block","src":"20624:646:126","nodes":[],"statements":[{"assignments":[74215],"declarations":[{"constant":false,"id":74215,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:126","nodeType":"VariableDeclaration","scope":74257,"src":"20634:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74214,"nodeType":"UserDefinedTypeName","pathNode":{"id":74213,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:126","20649:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"20634:23:126"},"referencedDeclaration":72847,"src":"20634:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74219,"initialValue":{"baseExpression":{"id":74216,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"20677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74218,"indexExpression":{"id":74217,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74206,"src":"20687:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:126"},{"assignments":[74221,74223],"declarations":[{"constant":false,"id":74221,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:126","nodeType":"VariableDeclaration","scope":74257,"src":"20784:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74220,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74223,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:126","nodeType":"VariableDeclaration","scope":74257,"src":"20808:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74222,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74229,"initialValue":{"arguments":[{"id":74225,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20877:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20887:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"20887:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74224,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75400,"src":"20843:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74230,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"20924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74233,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20947:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74243,"nodeType":"IfStatement","src":"20920:110:126","trueBody":{"id":74242,"nodeType":"Block","src":"20965:65:126","statements":[{"expression":{"id":74240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74237,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"20979:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74238,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20996:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"20996:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74241,"nodeType":"ExpressionStatement","src":"20979:40:126"}]}},{"assignments":[74245],"declarations":[{"constant":false,"id":74245,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:126","nodeType":"VariableDeclaration","scope":74257,"src":"21039:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74244,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74250,"initialValue":{"arguments":[{"expression":{"id":74247,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"21078:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"21078:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74246,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"21059:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:126"},{"expression":{"id":74255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74251,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74209,"src":"21220:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74252,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"21236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74253,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74245,"src":"21254:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74256,"nodeType":"ExpressionStatement","src":"21220:43:126"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:126","parameters":{"id":74207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74206,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:126","nodeType":"VariableDeclaration","scope":74258,"src":"20563:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74205,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:126"},"returnParameters":{"id":74210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74209,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:126","nodeType":"VariableDeclaration","scope":74258,"src":"20604:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74208,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74280,"nodeType":"FunctionDefinition","src":"21560:220:126","nodes":[],"body":{"id":74279,"nodeType":"Block","src":"21651:129:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74267,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74260,"src":"21711:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:126","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":74269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74268,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:126","typeDescriptions":{}}},"id":74271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74275,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:126","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:126","trueExpression":{"expression":{"id":74273,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:126","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74266,"id":74278,"nodeType":"Return","src":"21704:69:126"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:126","overrides":{"id":74262,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:126"},"parameters":{"id":74261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74260,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:126","nodeType":"VariableDeclaration","scope":74280,"src":"21589:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74259,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:126"},"returnParameters":{"id":74266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74280,"src":"21643:6:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74264,"nodeType":"UserDefinedTypeName","pathNode":{"id":74263,"name":"Status","nameLocations":["21643:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:126"},"referencedDeclaration":2815,"src":"21643:6:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74299,"nodeType":"FunctionDefinition","src":"21909:288:126","nodes":[],"body":{"id":74298,"nodeType":"Block","src":"22019:178:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74295,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"22079:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74297,"nodeType":"RevertStatement","src":"22072:23:126"}]},"baseFunctions":[3687],"documentation":{"id":74281,"nodeType":"StructuredDocumentation","src":"21786:118:126","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:126","overrides":{"id":74289,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:126"},"parameters":{"id":74288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21929:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74282,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74283,"nodeType":"ArrayTypeName","src":"21929:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21947:14:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74285,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74286,"nodeType":"ArrayTypeName","src":"21947:7:126","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:126"},"returnParameters":{"id":74294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21995:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74291,"nodeType":"UserDefinedTypeName","pathNode":{"id":74290,"name":"PayoutSummary","nameLocations":["21995:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:126"},"referencedDeclaration":2820,"src":"21995:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74292,"nodeType":"ArrayTypeName","src":"21995:15:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74318,"nodeType":"FunctionDefinition","src":"22203:264:126","nodes":[],"body":{"id":74317,"nodeType":"Block","src":"22355:112:126","nodes":[],"statements":[{"expression":{"id":74310,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74303,"src":"22408:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74311,"nodeType":"ExpressionStatement","src":"22408:5:126"},{"expression":{"arguments":[{"id":74313,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74301,"src":"22444:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74312,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74309,"id":74316,"nodeType":"Return","src":"22423:37:126"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:126","overrides":{"id":74305,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:126"},"parameters":{"id":74304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74301,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:126","nodeType":"VariableDeclaration","scope":74318,"src":"22223:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74300,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74303,"mutability":"mutable","name":"_data","nameLocation":"22258:5:126","nodeType":"VariableDeclaration","scope":74318,"src":"22245:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74302,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:126"},"returnParameters":{"id":74309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74318,"src":"22329:20:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74307,"nodeType":"UserDefinedTypeName","pathNode":{"id":74306,"name":"PayoutSummary","nameLocations":["22329:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:126"},"referencedDeclaration":2820,"src":"22329:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74329,"nodeType":"FunctionDefinition","src":"22473:127:126","nodes":[],"body":{"id":74328,"nodeType":"Block","src":"22550:50:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74325,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74320,"src":"22585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74324,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72988,"src":"22565:19:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74327,"nodeType":"EmitStatement","src":"22560:33:126"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:126","overrides":{"id":74322,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:126"},"parameters":{"id":74321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74320,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:126","nodeType":"VariableDeclaration","scope":74329,"src":"22507:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74319,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:126"},"returnParameters":{"id":74323,"nodeType":"ParameterList","parameters":[],"src":"22550:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74348,"nodeType":"FunctionDefinition","src":"22695:191:126","nodes":[],"body":{"id":74347,"nodeType":"Block","src":"22780:106:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74337,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74331,"src":"22840:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:126","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":74339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74338,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:126","typeDescriptions":{}}},"id":74341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:126","trueExpression":{"hexValue":"66616c7365","id":74343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74336,"id":74346,"nodeType":"Return","src":"22833:46:126"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:126","overrides":{"id":74333,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:126"},"parameters":{"id":74332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74331,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:126","nodeType":"VariableDeclaration","scope":74348,"src":"22722:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74330,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:126"},"returnParameters":{"id":74336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74348,"src":"22774:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74334,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74358,"nodeType":"FunctionDefinition","src":"22892:86:126","nodes":[],"body":{"id":74357,"nodeType":"Block","src":"22938:40:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74354,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74350,"src":"22963:7:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74353,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74356,"nodeType":"ExpressionStatement","src":"22948:23:126"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:126","parameters":{"id":74351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74350,"mutability":"mutable","name":"_active","nameLocation":"22920:7:126","nodeType":"VariableDeclaration","scope":74358,"src":"22915:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74349,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:126"},"returnParameters":{"id":74352,"nodeType":"ParameterList","parameters":[],"src":"22938:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74436,"nodeType":"FunctionDefinition","src":"22984:729:126","nodes":[],"body":{"id":74435,"nodeType":"Block","src":"23028:685:126","nodes":[],"statements":[{"assignments":[74367],"declarations":[{"constant":false,"id":74367,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:126","nodeType":"VariableDeclaration","scope":74435,"src":"23086:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74365,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74366,"nodeType":"ArrayTypeName","src":"23086:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74371,"initialValue":{"baseExpression":{"id":74368,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"23118:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74370,"indexExpression":{"id":74369,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23139:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:126"},{"body":{"id":74433,"nodeType":"Block","src":"23207:500:126","statements":[{"assignments":[74384],"declarations":[{"constant":false,"id":74384,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:126","nodeType":"VariableDeclaration","scope":74433,"src":"23221:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74383,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74388,"initialValue":{"baseExpression":{"id":74385,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74367,"src":"23242:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74387,"indexExpression":{"id":74386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23255:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:126"},{"assignments":[74393],"declarations":[{"constant":false,"id":74393,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:126","nodeType":"VariableDeclaration","scope":74433,"src":"23271:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74392,"nodeType":"UserDefinedTypeName","pathNode":{"id":74391,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:126","23286:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"23271:23:126"},"referencedDeclaration":72847,"src":"23271:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74397,"initialValue":{"baseExpression":{"id":74394,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"23314:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74396,"indexExpression":{"id":74395,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74384,"src":"23324:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:126"},{"condition":{"arguments":[{"id":74399,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74384,"src":"23368:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74398,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"23353:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74432,"nodeType":"IfStatement","src":"23349:348:126","trueBody":{"id":74431,"nodeType":"Block","src":"23381:316:126","statements":[{"assignments":[74402],"declarations":[{"constant":false,"id":74402,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:126","nodeType":"VariableDeclaration","scope":74431,"src":"23399:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74401,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74407,"initialValue":{"baseExpression":{"expression":{"id":74403,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23422:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"23422:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74406,"indexExpression":{"id":74405,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:126"},{"expression":{"id":74414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74408,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23475:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"23475:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74412,"indexExpression":{"id":74410,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23502:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74415,"nodeType":"ExpressionStatement","src":"23475:39:126"},{"expression":{"id":74420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23532:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"23532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74419,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23557:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74421,"nodeType":"ExpressionStatement","src":"23532:37:126"},{"expression":{"id":74424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74422,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"23587:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74423,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23602:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74425,"nodeType":"ExpressionStatement","src":"23587:27:126"},{"expression":{"arguments":[{"id":74427,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23659:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74428,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23669:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74426,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"23632:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74430,"nodeType":"ExpressionStatement","src":"23632:50:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74377,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74367,"src":"23181:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:126","memberName":"length","nodeType":"MemberAccess","src":"23181:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74434,"initializationExpression":{"assignments":[74373],"declarations":[{"constant":false,"id":74373,"mutability":"mutable","name":"i","nameLocation":"23170:1:126","nodeType":"VariableDeclaration","scope":74434,"src":"23162:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74372,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74375,"initialValue":{"hexValue":"30","id":74374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:126"},"loopExpression":{"expression":{"id":74381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:126","subExpression":{"id":74380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23202:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74382,"nodeType":"ExpressionStatement","src":"23202:3:126"},"nodeType":"ForStatement","src":"23157:550:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:126","parameters":{"id":74361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74360,"mutability":"mutable","name":"_member","nameLocation":"23010:7:126","nodeType":"VariableDeclaration","scope":74436,"src":"23002:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74359,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:126"},"returnParameters":{"id":74362,"nodeType":"ParameterList","parameters":[],"src":"23028:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74510,"nodeType":"FunctionDefinition","src":"24275:1038:126","nodes":[],"body":{"id":74509,"nodeType":"Block","src":"24744:569:126","nodes":[],"statements":[{"assignments":[74467],"declarations":[{"constant":false,"id":74467,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:126","nodeType":"VariableDeclaration","scope":74509,"src":"24754:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74466,"nodeType":"UserDefinedTypeName","pathNode":{"id":74465,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:126","24769:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"24754:23:126"},"referencedDeclaration":72847,"src":"24754:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74471,"initialValue":{"baseExpression":{"id":74468,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"24797:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74470,"indexExpression":{"id":74469,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74439,"src":"24807:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:126"},{"expression":{"id":74483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74472,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74459,"src":"24830:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74473,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24842:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"24842:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74479,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24897:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"24897:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74478,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"24878:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:126","trueExpression":{"hexValue":"30","id":74477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74484,"nodeType":"ExpressionStatement","src":"24830:92:126"},{"expression":{"components":[{"expression":{"id":74485,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24953:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24953:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24985:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"24985:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25019:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"25019:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74491,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25056:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"25056:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74493,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25094:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"25094:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74495,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25129:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"25129:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25166:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"25166:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74499,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25198:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"25198:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74501,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74459,"src":"25235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74502,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25258:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"25258:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74506,"indexExpression":{"expression":{"id":74504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:126","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$72820_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74462,"id":74508,"nodeType":"Return","src":"24932:374:126"}]},"documentation":{"id":74437,"nodeType":"StructuredDocumentation","src":"23719:551:126","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:126","parameters":{"id":74440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74439,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:126","nodeType":"VariableDeclaration","scope":74510,"src":"24296:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74438,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:126"},"returnParameters":{"id":74462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74442,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24377:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74441,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74444,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:126","nodeType":"VariableDeclaration","scope":74510,"src":"24408:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74443,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74446,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24441:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74445,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74448,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:126","nodeType":"VariableDeclaration","scope":74510,"src":"24477:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74447,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74450,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:126","nodeType":"VariableDeclaration","scope":74510,"src":"24514:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74449,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74453,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24548:44:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74452,"nodeType":"UserDefinedTypeName","pathNode":{"id":74451,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:126","24563:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72820,"src":"24548:29:126"},"referencedDeclaration":72820,"src":"24548:29:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74455,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24606:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74454,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74457,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24637:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74459,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24673:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74458,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74461,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:126","nodeType":"VariableDeclaration","scope":74510,"src":"24704:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74460,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74531,"nodeType":"FunctionDefinition","src":"25319:198:126","nodes":[],"body":{"id":74530,"nodeType":"Block","src":"25401:116:126","nodes":[],"statements":[{"assignments":[74522],"declarations":[{"constant":false,"id":74522,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:126","nodeType":"VariableDeclaration","scope":74530,"src":"25411:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74521,"nodeType":"UserDefinedTypeName","pathNode":{"id":74520,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:126","25426:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"25411:23:126"},"referencedDeclaration":72847,"src":"25411:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74526,"initialValue":{"baseExpression":{"id":74523,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"25454:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74525,"indexExpression":{"id":74524,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"25464:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:126"},{"expression":{"expression":{"id":74527,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"25493:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72846,"src":"25493:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74517,"id":74529,"nodeType":"Return","src":"25486:24:126"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:126","parameters":{"id":74513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74512,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:126","nodeType":"VariableDeclaration","scope":74531,"src":"25340:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74511,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:126"},"returnParameters":{"id":74517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74531,"src":"25384:15:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74515,"nodeType":"UserDefinedTypeName","pathNode":{"id":74514,"name":"Metadata","nameLocations":["25384:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:126"},"referencedDeclaration":3098,"src":"25384:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74547,"nodeType":"FunctionDefinition","src":"25718:176:126","nodes":[],"body":{"id":74546,"nodeType":"Block","src":"25818:76:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74542,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74534,"src":"25867:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74543,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"25880:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74541,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"25835:31:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74540,"id":74545,"nodeType":"Return","src":"25828:59:126"}]},"documentation":{"id":74532,"nodeType":"StructuredDocumentation","src":"25523:190:126","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:126","parameters":{"id":74537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74534,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:126","nodeType":"VariableDeclaration","scope":74547,"src":"25749:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74533,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74536,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:126","nodeType":"VariableDeclaration","scope":74547,"src":"25770:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74535,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:126"},"returnParameters":{"id":74540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74547,"src":"25809:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74538,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74560,"nodeType":"FunctionDefinition","src":"25900:145:126","nodes":[],"body":{"id":74559,"nodeType":"Block","src":"25986:59:126","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74554,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26003:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74556,"indexExpression":{"id":74555,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"26013:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"26003:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74553,"id":74558,"nodeType":"Return","src":"25996:42:126"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:126","parameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:126","nodeType":"VariableDeclaration","scope":74560,"src":"25933:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74548,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:126"},"returnParameters":{"id":74553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74560,"src":"25977:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74572,"nodeType":"FunctionDefinition","src":"26114:127:126","nodes":[],"body":{"id":74571,"nodeType":"Block","src":"26191:50:126","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74567,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73096,"src":"26208:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74569,"indexExpression":{"id":74568,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"26227:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74566,"id":74570,"nodeType":"Return","src":"26201:33:126"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:126","parameters":{"id":74563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74562,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:126","nodeType":"VariableDeclaration","scope":74572,"src":"26145:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74561,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:126"},"returnParameters":{"id":74566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74572,"src":"26182:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74564,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74589,"nodeType":"FunctionDefinition","src":"26247:182:126","nodes":[],"body":{"id":74588,"nodeType":"Block","src":"26357:72:126","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74581,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26374:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74583,"indexExpression":{"id":74582,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74574,"src":"26384:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"26374:40:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74586,"indexExpression":{"id":74585,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74576,"src":"26415:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74580,"id":74587,"nodeType":"Return","src":"26367:55:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:126","parameters":{"id":74577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74574,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:126","nodeType":"VariableDeclaration","scope":74589,"src":"26288:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74573,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74576,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:126","nodeType":"VariableDeclaration","scope":74589,"src":"26309:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74575,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:126"},"returnParameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74589,"src":"26348:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74578,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74599,"nodeType":"FunctionDefinition","src":"26435:145:126","nodes":[],"body":{"id":74598,"nodeType":"Block","src":"26499:81:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74594,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"26516:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:126","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77472,"src":"26516:38:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74593,"id":74597,"nodeType":"Return","src":"26509:47:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:126","parameters":{"id":74590,"nodeType":"ParameterList","parameters":[],"src":"26464:2:126"},"returnParameters":{"id":74593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74599,"src":"26490:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74591,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74624,"nodeType":"FunctionDefinition","src":"26586:185:126","nodes":[],"body":{"id":74623,"nodeType":"Block","src":"26660:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74606,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74608,"indexExpression":{"id":74607,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"26687:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"26677:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74612,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26718:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74614,"indexExpression":{"id":74613,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"26728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"26718:32:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:126","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":74617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74616,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:126","typeDescriptions":{}}},"id":74619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74605,"id":74622,"nodeType":"Return","src":"26670:94:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:126","parameters":{"id":74602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74601,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:126","nodeType":"VariableDeclaration","scope":74624,"src":"26610:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:126"},"returnParameters":{"id":74605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74624,"src":"26654:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74603,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74642,"nodeType":"FunctionDefinition","src":"26777:174:126","nodes":[],"body":{"id":74641,"nodeType":"Block","src":"26872:79:126","nodes":[],"statements":[{"expression":{"id":74639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74631,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"26882:14:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74632,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"26899:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74633,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74635,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74626,"src":"26924:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74636,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"26943:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74640,"nodeType":"ExpressionStatement","src":"26882:62:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:126","parameters":{"id":74627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74626,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:126","nodeType":"VariableDeclaration","scope":74642,"src":"26802:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74625,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:126"},"returnParameters":{"id":74630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74629,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:126","nodeType":"VariableDeclaration","scope":74642,"src":"26851:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74628,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74738,"nodeType":"FunctionDefinition","src":"26957:1548:126","nodes":[],"body":{"id":74737,"nodeType":"Block","src":"27087:1418:126","nodes":[],"statements":[{"assignments":[74652],"declarations":[{"constant":false,"id":74652,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:126","nodeType":"VariableDeclaration","scope":74737,"src":"27097:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74651,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74654,"initialValue":{"hexValue":"30","id":74653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:126"},{"body":{"id":74699,"nodeType":"Block","src":"27187:576:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74666,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27260:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74668,"indexExpression":{"id":74667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27277:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"27260:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74674,"nodeType":"IfStatement","src":"27256:187:126","trueBody":{"id":74673,"nodeType":"Block","src":"27297:146:126","statements":[{"id":74672,"nodeType":"Continue","src":"27420:8:126"}]}},{"assignments":[74676],"declarations":[{"constant":false,"id":74676,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:126","nodeType":"VariableDeclaration","scope":74699,"src":"27456:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74675,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74681,"initialValue":{"expression":{"baseExpression":{"id":74677,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27477:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74679,"indexExpression":{"id":74678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27494:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"27477:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:126"},{"condition":{"id":74685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:126","subExpression":{"arguments":[{"id":74683,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74676,"src":"27541:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74682,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"27526:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74691,"nodeType":"IfStatement","src":"27521:167:126","trueBody":{"id":74690,"nodeType":"Block","src":"27554:134:126","statements":[{"errorCall":{"arguments":[{"id":74687,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74676,"src":"27597:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74686,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"27579:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74689,"nodeType":"RevertStatement","src":"27572:36:126"}]}},{"expression":{"id":74697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74692,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27701:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74693,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27720:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74695,"indexExpression":{"id":74694,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27737:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"27720:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74698,"nodeType":"ExpressionStatement","src":"27701:51:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27153:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74660,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27157:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:126","memberName":"length","nodeType":"MemberAccess","src":"27157:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74700,"initializationExpression":{"assignments":[74656],"declarations":[{"constant":false,"id":74656,"mutability":"mutable","name":"i","nameLocation":"27146:1:126","nodeType":"VariableDeclaration","scope":74700,"src":"27138:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74655,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74658,"initialValue":{"hexValue":"30","id":74657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:126"},"loopExpression":{"expression":{"id":74664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:126","subExpression":{"id":74663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27182:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74665,"nodeType":"ExpressionStatement","src":"27182:3:126"},"nodeType":"ForStatement","src":"27133:630:126"},{"assignments":[74702],"declarations":[{"constant":false,"id":74702,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:126","nodeType":"VariableDeclaration","scope":74737,"src":"27859:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74701,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74709,"initialValue":{"arguments":[{"arguments":[{"id":74705,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"27925:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74704,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"27903:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74707,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27935:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74703,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75060,"src":"27891:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:126"},{"assignments":[74711],"declarations":[{"constant":false,"id":74711,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:126","nodeType":"VariableDeclaration","scope":74737,"src":"28033:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74710,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74720,"initialValue":{"arguments":[{"id":74714,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"28105:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74717,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":74716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74715,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:126","typeDescriptions":{}}},"id":74718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74712,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"28062:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"28062:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74721,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28294:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74722,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74711,"src":"28318:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74730,"nodeType":"IfStatement","src":"28290:147:126","trueBody":{"id":74729,"nodeType":"Block","src":"28338:99:126","statements":[{"errorCall":{"arguments":[{"id":74725,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28384:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74726,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74711,"src":"28407:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74724,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72933,"src":"28359:24:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74728,"nodeType":"RevertStatement","src":"28352:74:126"}]}},{"expression":{"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74731,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73096,"src":"28447:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74733,"indexExpression":{"id":74732,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"28466:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74734,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28477:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74736,"nodeType":"ExpressionStatement","src":"28447:51:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:126","parameters":{"id":74649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74644,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:126","nodeType":"VariableDeclaration","scope":74738,"src":"26991:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74643,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74648,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:126","nodeType":"VariableDeclaration","scope":74738,"src":"27008:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74646,"nodeType":"UserDefinedTypeName","pathNode":{"id":74645,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:126","27023:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"27008:30:126"},"referencedDeclaration":72852,"src":"27008:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74647,"nodeType":"ArrayTypeName","src":"27008:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:126"},"returnParameters":{"id":74650,"nodeType":"ParameterList","parameters":[],"src":"27087:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75025,"nodeType":"FunctionDefinition","src":"28511:3479:126","nodes":[],"body":{"id":75024,"nodeType":"Block","src":"28616:3374:126","nodes":[],"statements":[{"assignments":[74751],"declarations":[{"constant":false,"id":74751,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:126","nodeType":"VariableDeclaration","scope":75024,"src":"28626:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74749,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74750,"nodeType":"ArrayTypeName","src":"28626:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74752,"nodeType":"VariableDeclarationStatement","src":"28626:29:126"},{"body":{"id":75022,"nodeType":"Block","src":"28719:3265:126","statements":[{"assignments":[74765],"declarations":[{"constant":false,"id":74765,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:126","nodeType":"VariableDeclaration","scope":75022,"src":"28733:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74764,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74770,"initialValue":{"expression":{"baseExpression":{"id":74766,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"28754:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74768,"indexExpression":{"id":74767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28771:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"28754:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74771,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28857:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:126","memberName":"length","nodeType":"MemberAccess","src":"28857:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74873,"nodeType":"Block","src":"29009:764:126","statements":[{"assignments":[74791],"declarations":[{"constant":false,"id":74791,"mutability":"mutable","name":"exist","nameLocation":"29032:5:126","nodeType":"VariableDeclaration","scope":74873,"src":"29027:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74790,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74793,"initialValue":{"hexValue":"66616c7365","id":74792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:126"},{"body":{"id":74821,"nodeType":"Block","src":"29113:268:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":74805,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29164:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74807,"indexExpression":{"id":74806,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":74808,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29183:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74820,"nodeType":"IfStatement","src":"29160:203:126","trueBody":{"id":74819,"nodeType":"Block","src":"29195:168:126","statements":[{"expression":{"id":74812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74810,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"29221:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74813,"nodeType":"ExpressionStatement","src":"29221:12:126"},{"errorCall":{"arguments":[{"id":74815,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29292:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74816,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29304:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74814,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72951,"src":"29266:25:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74818,"nodeType":"RevertStatement","src":"29259:47:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74798,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29083:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74799,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29087:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:126","memberName":"length","nodeType":"MemberAccess","src":"29087:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74822,"initializationExpression":{"assignments":[74795],"declarations":[{"constant":false,"id":74795,"mutability":"mutable","name":"j","nameLocation":"29076:1:126","nodeType":"VariableDeclaration","scope":74822,"src":"29068:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74794,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74797,"initialValue":{"hexValue":"30","id":74796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:126"},"loopExpression":{"expression":{"id":74803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:126","subExpression":{"id":74802,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29108:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74804,"nodeType":"ExpressionStatement","src":"29108:3:126"},"nodeType":"ForStatement","src":"29063:318:126"},{"condition":{"id":74824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:126","subExpression":{"id":74823,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"29403:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74872,"nodeType":"IfStatement","src":"29398:361:126","trueBody":{"id":74871,"nodeType":"Block","src":"29410:349:126","statements":[{"assignments":[74829],"declarations":[{"constant":false,"id":74829,"mutability":"mutable","name":"temp","nameLocation":"29449:4:126","nodeType":"VariableDeclaration","scope":74871,"src":"29432:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74827,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74828,"nodeType":"ArrayTypeName","src":"29432:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74838,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74833,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29470:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:126","memberName":"length","nodeType":"MemberAccess","src":"29470:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":74835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74830,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74831,"nodeType":"ArrayTypeName","src":"29460:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:126"},{"body":{"id":74858,"nodeType":"Block","src":"29566:74:126","statements":[{"expression":{"id":74856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74850,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29592:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74852,"indexExpression":{"id":74851,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29597:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":74853,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29602:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74855,"indexExpression":{"id":74854,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29615:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74857,"nodeType":"ExpressionStatement","src":"29592:25:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74843,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29536:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74844,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29540:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:126","memberName":"length","nodeType":"MemberAccess","src":"29540:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74859,"initializationExpression":{"assignments":[74840],"declarations":[{"constant":false,"id":74840,"mutability":"mutable","name":"j","nameLocation":"29529:1:126","nodeType":"VariableDeclaration","scope":74859,"src":"29521:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74839,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74842,"initialValue":{"hexValue":"30","id":74841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:126"},"loopExpression":{"expression":{"id":74848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:126","subExpression":{"id":74847,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29561:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74849,"nodeType":"ExpressionStatement","src":"29561:3:126"},"nodeType":"ForStatement","src":"29516:124:126"},{"expression":{"id":74865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74860,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29661:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74863,"indexExpression":{"expression":{"id":74861,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29666:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:126","memberName":"length","nodeType":"MemberAccess","src":"29666:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74864,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29689:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74866,"nodeType":"ExpressionStatement","src":"29661:38:126"},{"expression":{"id":74869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74867,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29721:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74868,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29736:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74870,"nodeType":"ExpressionStatement","src":"29721:19:126"}]}}]},"id":74874,"nodeType":"IfStatement","src":"28853:920:126","trueBody":{"id":74789,"nodeType":"Block","src":"28883:120:126","statements":[{"expression":{"id":74781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74775,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28901:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":74779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:126","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":74778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74776,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74777,"nodeType":"ArrayTypeName","src":"28920:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74782,"nodeType":"ExpressionStatement","src":"28901:31:126"},{"expression":{"id":74787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74783,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28950:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74785,"indexExpression":{"hexValue":"30","id":74784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74786,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"28968:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74788,"nodeType":"ExpressionStatement","src":"28950:28:126"}]}},{"assignments":[74876],"declarations":[{"constant":false,"id":74876,"mutability":"mutable","name":"delta","nameLocation":"29793:5:126","nodeType":"VariableDeclaration","scope":75022,"src":"29786:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74875,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74881,"initialValue":{"expression":{"baseExpression":{"id":74877,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"29801:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74879,"indexExpression":{"id":74878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"29818:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"29801:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:126"},{"assignments":[74886],"declarations":[{"constant":false,"id":74886,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:126","nodeType":"VariableDeclaration","scope":75022,"src":"29848:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74885,"nodeType":"UserDefinedTypeName","pathNode":{"id":74884,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:126","29863:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"29848:23:126"},"referencedDeclaration":72847,"src":"29848:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74890,"initialValue":{"baseExpression":{"id":74887,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"29891:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74889,"indexExpression":{"id":74888,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29901:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:126"},{"assignments":[74892],"declarations":[{"constant":false,"id":74892,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:126","nodeType":"VariableDeclaration","scope":75022,"src":"30014:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74891,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74897,"initialValue":{"baseExpression":{"expression":{"id":74893,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30045:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"30045:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74896,"indexExpression":{"id":74895,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30072:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:126"},{"assignments":[74899],"declarations":[{"constant":false,"id":74899,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:126","nodeType":"VariableDeclaration","scope":75022,"src":"30245:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74898,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74904,"initialValue":{"arguments":[{"id":74901,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"30280:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74902,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74876,"src":"30302:5:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74900,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75060,"src":"30268:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:126"},{"expression":{"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74905,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30443:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"30443:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74909,"indexExpression":{"id":74907,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30470:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74910,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"30481:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74912,"nodeType":"ExpressionStatement","src":"30443:50:126"},{"assignments":[74914],"declarations":[{"constant":false,"id":74914,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:126","nodeType":"VariableDeclaration","scope":75022,"src":"30727:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74913,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74916,"initialValue":{"hexValue":"66616c7365","id":74915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:126"},{"body":{"id":74945,"nodeType":"Block","src":"30832:179:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":74930,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"30854:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74932,"indexExpression":{"id":74931,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30875:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74934,"indexExpression":{"id":74933,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30884:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":74935,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30890:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"30890:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74944,"nodeType":"IfStatement","src":"30850:147:126","trueBody":{"id":74943,"nodeType":"Block","src":"30911:86:126","statements":[{"expression":{"id":74940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74938,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74914,"src":"30933:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74941,"nodeType":"ExpressionStatement","src":"30933:18:126"},{"id":74942,"nodeType":"Break","src":"30973:5:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74921,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30785:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":74922,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"30789:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74924,"indexExpression":{"id":74923,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:126","memberName":"length","nodeType":"MemberAccess","src":"30789:36:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74946,"initializationExpression":{"assignments":[74918],"declarations":[{"constant":false,"id":74918,"mutability":"mutable","name":"k","nameLocation":"30778:1:126","nodeType":"VariableDeclaration","scope":74946,"src":"30770:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74917,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74920,"initialValue":{"hexValue":"30","id":74919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:126"},"loopExpression":{"expression":{"id":74928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:126","subExpression":{"id":74927,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30827:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74929,"nodeType":"ExpressionStatement","src":"30827:3:126"},"nodeType":"ForStatement","src":"30765:246:126"},{"condition":{"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:126","subExpression":{"id":74947,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74914,"src":"31029:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74958,"nodeType":"IfStatement","src":"31024:106:126","trueBody":{"id":74957,"nodeType":"Block","src":"31042:88:126","statements":[{"expression":{"arguments":[{"expression":{"id":74953,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31095:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"31095:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":74949,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"31060:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74951,"indexExpression":{"id":74950,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"31081:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:126","memberName":"push","nodeType":"MemberAccess","src":"31060:34:126","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":74955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74956,"nodeType":"ExpressionStatement","src":"31060:55:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74959,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31285:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":74960,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31309:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74991,"nodeType":"Block","src":"31490:161:126","statements":[{"expression":{"id":74981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74977,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"31508:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74978,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31523:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74979,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31546:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74982,"nodeType":"ExpressionStatement","src":"31508:50:126"},{"expression":{"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74983,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31576:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31576:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31601:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74987,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31624:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74990,"nodeType":"ExpressionStatement","src":"31576:60:126"}]},"id":74992,"nodeType":"IfStatement","src":"31281:370:126","trueBody":{"id":74976,"nodeType":"Block","src":"31323:161:126","statements":[{"expression":{"id":74966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74962,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"31341:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74963,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31356:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74964,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31371:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74967,"nodeType":"ExpressionStatement","src":"31341:50:126"},{"expression":{"id":74974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74968,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31409:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31409:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74971,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31434:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74972,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31449:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74975,"nodeType":"ExpressionStatement","src":"31409:60:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31668:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31668:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75020,"nodeType":"Block","src":"31765:209:126","statements":[{"expression":{"arguments":[{"id":75006,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31810:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75007,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31820:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75005,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"31783:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75009,"nodeType":"ExpressionStatement","src":"31783:58:126"},{"eventCall":{"arguments":[{"id":75011,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"31877:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75012,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"31886:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75013,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31898:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31912:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31912:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75016,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31935:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"31935:23:126","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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75010,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73016,"src":"31864:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75019,"nodeType":"EmitStatement","src":"31859:100:126"}]},"id":75021,"nodeType":"IfStatement","src":"31664:310:126","trueBody":{"id":75004,"nodeType":"Block","src":"31693:66:126","statements":[{"expression":{"id":75002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74997,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31711:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31711:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75000,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:126","memberName":"number","nodeType":"MemberAccess","src":"31732:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75003,"nodeType":"ExpressionStatement","src":"31711:33:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74757,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28685:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74758,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"28689:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:126","memberName":"length","nodeType":"MemberAccess","src":"28689:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75023,"initializationExpression":{"assignments":[74754],"declarations":[{"constant":false,"id":74754,"mutability":"mutable","name":"i","nameLocation":"28678:1:126","nodeType":"VariableDeclaration","scope":75023,"src":"28670:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74753,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74756,"initialValue":{"hexValue":"30","id":74755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:126"},"loopExpression":{"expression":{"id":74762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:126","subExpression":{"id":74761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28714:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74763,"nodeType":"ExpressionStatement","src":"28714:3:126"},"nodeType":"ForStatement","src":"28665:3319:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:126","parameters":{"id":74745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74740,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:126","nodeType":"VariableDeclaration","scope":75025,"src":"28532:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74739,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74744,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:126","nodeType":"VariableDeclaration","scope":75025,"src":"28549:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74742,"nodeType":"UserDefinedTypeName","pathNode":{"id":74741,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:126","28564:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"28549:30:126"},"referencedDeclaration":72852,"src":"28549:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74743,"nodeType":"ArrayTypeName","src":"28549:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:126"},"returnParameters":{"id":74746,"nodeType":"ParameterList","parameters":[],"src":"28616:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75060,"nodeType":"FunctionDefinition","src":"31996:276:126","nodes":[],"body":{"id":75059,"nodeType":"Block","src":"32082:190:126","nodes":[],"statements":[{"assignments":[75035],"declarations":[{"constant":false,"id":75035,"mutability":"mutable","name":"result","nameLocation":"32099:6:126","nodeType":"VariableDeclaration","scope":75059,"src":"32092:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75034,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75042,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75038,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75027,"src":"32115:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75036,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:126","typeDescriptions":{}}},"id":75039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75040,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"32127:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:126"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75043,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32148:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75053,"nodeType":"IfStatement","src":"32144:90:126","trueBody":{"id":75052,"nodeType":"Block","src":"32160:74:126","statements":[{"errorCall":{"arguments":[{"id":75047,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75027,"src":"32198:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75048,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"32208:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75049,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32216:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75046,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"32181:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75051,"nodeType":"RevertStatement","src":"32174:49:126"}]}},{"expression":{"arguments":[{"id":75056,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32258:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75054,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:126","typeDescriptions":{}}},"id":75057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75033,"id":75058,"nodeType":"Return","src":"32243:22:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:126","parameters":{"id":75030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75027,"mutability":"mutable","name":"_support","nameLocation":"32025:8:126","nodeType":"VariableDeclaration","scope":75060,"src":"32017:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75026,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75029,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:126","nodeType":"VariableDeclaration","scope":75060,"src":"32035:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75028,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:126"},"returnParameters":{"id":75033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75060,"src":"32073:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75031,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75116,"nodeType":"FunctionDefinition","src":"32689:1145:126","nodes":[],"body":{"id":75115,"nodeType":"Block","src":"32836:998:126","nodes":[],"statements":[{"assignments":[75073],"declarations":[{"constant":false,"id":75073,"mutability":"mutable","name":"t","nameLocation":"32854:1:126","nodeType":"VariableDeclaration","scope":75115,"src":"32846:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75072,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75075,"initialValue":{"id":75074,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75063,"src":"32858:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:126"},{"assignments":[75077],"declarations":[{"constant":false,"id":75077,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:126","nodeType":"VariableDeclaration","scope":75115,"src":"33184:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75076,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75087,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75079,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33210:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75082,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75083,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33226:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75085,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75073,"src":"33229:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75078,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"33204:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75088,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75077,"src":"33727:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75089,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75065,"src":"33739:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75092,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75067,"src":"33754:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75093,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33767:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75095,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"33772:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75096,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75077,"src":"33782:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75101,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33797:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75102,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33801:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75109,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73051,"src":"33812:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75111,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75071,"id":75114,"nodeType":"Return","src":"33717:110:126"}]},"documentation":{"id":75061,"nodeType":"StructuredDocumentation","src":"32278:406:126","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:126","parameters":{"id":75068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75063,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:126","nodeType":"VariableDeclaration","scope":75116,"src":"32718:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75062,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75065,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:126","nodeType":"VariableDeclaration","scope":75116,"src":"32739:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75064,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75067,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:126","nodeType":"VariableDeclaration","scope":75116,"src":"32758:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75066,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:126"},"returnParameters":{"id":75071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75116,"src":"32823:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75069,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75204,"nodeType":"FunctionDefinition","src":"34415:1482:126","nodes":[],"body":{"id":75203,"nodeType":"Block","src":"34510:1387:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75124,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75131,"nodeType":"IfStatement","src":"34640:66:126","trueBody":{"id":75130,"nodeType":"Block","src":"34661:45:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75127,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72901,"src":"34682:11:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75129,"nodeType":"RevertStatement","src":"34675:20:126"}]}},{"condition":{"arguments":[{"id":75133,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"35162:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75132,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"35146:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75139,"nodeType":"IfStatement","src":"35142:91:126","trueBody":{"id":75138,"nodeType":"Block","src":"35181:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"35202:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75137,"nodeType":"RevertStatement","src":"35195:27:126"}]}},{"assignments":[75141],"declarations":[{"constant":false,"id":75141,"mutability":"mutable","name":"denom","nameLocation":"35389:5:126","nodeType":"VariableDeclaration","scope":75203,"src":"35381:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75140,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75159,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75142,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"35398:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75148,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35420:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"35425:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75156,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:126"},{"expression":{"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75160,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35475:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75161,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"35507:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75165,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35524:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75168,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75141,"src":"35531:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75169,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75141,"src":"35539:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75171,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75177,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35556:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75180,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35562:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75181,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"35566:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75185,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75186,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75312,"src":"35576:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75189,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75193,"nodeType":"ExpressionStatement","src":"35475:145:126"},{"expression":{"id":75201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75194,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35810:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75195,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35823:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75196,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"35836:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75199,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"35871:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:126","trueExpression":{"id":75198,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35858:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75202,"nodeType":"ExpressionStatement","src":"35810:80:126"}]},"documentation":{"id":75117,"nodeType":"StructuredDocumentation","src":"33840:570:126","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:126","parameters":{"id":75120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75119,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:126","nodeType":"VariableDeclaration","scope":75204,"src":"34443:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75118,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:126"},"returnParameters":{"id":75123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75122,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:126","nodeType":"VariableDeclaration","scope":75204,"src":"34490:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75121,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75239,"nodeType":"FunctionDefinition","src":"36158:269:126","nodes":[],"body":{"id":75238,"nodeType":"Block","src":"36236:191:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75215,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"36254:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75216,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36260:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75220,"nodeType":"ExpressionStatement","src":"36246:66:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75222,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"36330:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75223,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36335:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75227,"nodeType":"ExpressionStatement","src":"36322:53:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75228,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"36394:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75229,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"36399:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75232,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73051,"src":"36405:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75234,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75213,"id":75237,"nodeType":"Return","src":"36385:35:126"}]},"documentation":{"id":75205,"nodeType":"StructuredDocumentation","src":"35903:250:126","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:126","parameters":{"id":75210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75207,"mutability":"mutable","name":"_a","nameLocation":"36180:2:126","nodeType":"VariableDeclaration","scope":75239,"src":"36172:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75206,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75209,"mutability":"mutable","name":"_b","nameLocation":"36192:2:126","nodeType":"VariableDeclaration","scope":75239,"src":"36184:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75208,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:126"},"returnParameters":{"id":75213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75212,"mutability":"mutable","name":"_result","nameLocation":"36227:7:126","nodeType":"VariableDeclaration","scope":75239,"src":"36219:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75211,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75304,"nodeType":"FunctionDefinition","src":"36649:447:126","nodes":[],"body":{"id":75303,"nodeType":"Block","src":"36727:369:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75250,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75242,"src":"36745:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75251,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36750:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75255,"nodeType":"ExpressionStatement","src":"36737:53:126"},{"assignments":[75257],"declarations":[{"constant":false,"id":75257,"mutability":"mutable","name":"a","nameLocation":"36808:1:126","nodeType":"VariableDeclaration","scope":75303,"src":"36800:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75256,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75259,"initialValue":{"id":75258,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75242,"src":"36812:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:126"},{"assignments":[75261],"declarations":[{"constant":false,"id":75261,"mutability":"mutable","name":"b","nameLocation":"36832:1:126","nodeType":"VariableDeclaration","scope":75303,"src":"36824:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75260,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75263,"initialValue":{"id":75262,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75244,"src":"36836:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:126"},{"expression":{"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75264,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"36848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75265,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36858:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75267,"nodeType":"ExpressionStatement","src":"36848:17:126"},{"body":{"id":75301,"nodeType":"Block","src":"36889:201:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75271,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36907:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75299,"nodeType":"Block","src":"36997:83:126","statements":[{"expression":{"id":75293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75288,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37015:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75290,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75291,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"37039:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75289,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75239,"src":"37025:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75294,"nodeType":"ExpressionStatement","src":"37015:26:126"},{"expression":{"id":75297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75295,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"37059:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75298,"nodeType":"ExpressionStatement","src":"37059:6:126"}]},"id":75300,"nodeType":"IfStatement","src":"36903:177:126","trueBody":{"id":75287,"nodeType":"Block","src":"36919:72:126","statements":[{"expression":{"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75276,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36937:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75278,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36946:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75279,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36949:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75277,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75239,"src":"36941:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75282,"nodeType":"ExpressionStatement","src":"36937:14:126"},{"expression":{"id":75285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75283,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36969:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75286,"nodeType":"ExpressionStatement","src":"36969:7:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75268,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36882:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75302,"nodeType":"WhileStatement","src":"36875:215:126"}]},"documentation":{"id":75240,"nodeType":"StructuredDocumentation","src":"36433:211:126","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:126","parameters":{"id":75245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75242,"mutability":"mutable","name":"_a","nameLocation":"36671:2:126","nodeType":"VariableDeclaration","scope":75304,"src":"36663:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75241,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75244,"mutability":"mutable","name":"_b","nameLocation":"36683:2:126","nodeType":"VariableDeclaration","scope":75304,"src":"36675:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75243,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:126"},"returnParameters":{"id":75248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75247,"mutability":"mutable","name":"_result","nameLocation":"36718:7:126","nodeType":"VariableDeclaration","scope":75304,"src":"36710:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75246,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75312,"nodeType":"FunctionDefinition","src":"37102:112:126","nodes":[],"body":{"id":75311,"nodeType":"Block","src":"37170:44:126","nodes":[],"statements":[{"expression":{"id":75309,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"37187:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75308,"id":75310,"nodeType":"Return","src":"37180:27:126"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:126","parameters":{"id":75305,"nodeType":"ParameterList","parameters":[],"src":"37137:2:126"},"returnParameters":{"id":75308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75312,"src":"37161:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75306,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75353,"nodeType":"FunctionDefinition","src":"37404:396:126","nodes":[],"body":{"id":75352,"nodeType":"Block","src":"37512:288:126","nodes":[],"statements":[{"assignments":[75322,75324],"declarations":[{"constant":false,"id":75322,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:126","nodeType":"VariableDeclaration","scope":75352,"src":"37523:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75321,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75324,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:126","nodeType":"VariableDeclaration","scope":75352,"src":"37543:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75323,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75329,"initialValue":{"arguments":[{"id":75326,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37600:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75327,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75318,"src":"37611:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75325,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75400,"src":"37566:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75330,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"37636:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75333,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37655:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75339,"nodeType":"IfStatement","src":"37632:72:126","trueBody":{"id":75338,"nodeType":"Block","src":"37673:31:126","statements":[{"functionReturnParameters":75320,"id":75337,"nodeType":"Return","src":"37687:7:126"}]}},{"expression":{"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75340,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37713:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"37713:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75343,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37735:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75345,"nodeType":"ExpressionStatement","src":"37713:33:126"},{"expression":{"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75346,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37756:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"37756:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75349,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"37783:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75351,"nodeType":"ExpressionStatement","src":"37756:37:126"}]},"documentation":{"id":75313,"nodeType":"StructuredDocumentation","src":"37220:179:126","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:126","parameters":{"id":75319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75316,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:126","nodeType":"VariableDeclaration","scope":75353,"src":"37440:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75315,"nodeType":"UserDefinedTypeName","pathNode":{"id":75314,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:126","37455:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"37440:23:126"},"referencedDeclaration":72847,"src":"37440:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75318,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:126","nodeType":"VariableDeclaration","scope":75353,"src":"37483:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75317,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:126"},"returnParameters":{"id":75320,"nodeType":"ParameterList","parameters":[],"src":"37512:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75400,"nodeType":"FunctionDefinition","src":"37806:719:126","nodes":[],"body":{"id":75399,"nodeType":"Block","src":"38004:521:126","nodes":[],"statements":[{"expression":{"id":75368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75365,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38014:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75366,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:126","memberName":"number","nodeType":"MemberAccess","src":"38028:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75369,"nodeType":"ExpressionStatement","src":"38014:26:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75371,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38057:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38057:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75373,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38080:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75370,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:126","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75376,"nodeType":"ExpressionStatement","src":"38050:42:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75377,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38106:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38106:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75379,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38129:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75386,"nodeType":"IfStatement","src":"38102:173:126","trueBody":{"id":75385,"nodeType":"Block","src":"38142:133:126","statements":[{"expression":{"components":[{"hexValue":"30","id":75381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75364,"id":75384,"nodeType":"Return","src":"38222:13:126"}]}},{"expression":{"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75387,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"38328:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75389,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38374:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75390,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38388:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38388:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75393,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38460:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"38460:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75395,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75358,"src":"38498:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75388,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"38341:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75398,"nodeType":"ExpressionStatement","src":"38328:190:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:126","parameters":{"id":75359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75356,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:126","nodeType":"VariableDeclaration","scope":75400,"src":"37849:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75355,"nodeType":"UserDefinedTypeName","pathNode":{"id":75354,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:126","37864:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"37849:23:126"},"referencedDeclaration":72847,"src":"37849:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75358,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:126","nodeType":"VariableDeclaration","scope":75400,"src":"37892:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75357,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:126"},"returnParameters":{"id":75364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75361,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:126","nodeType":"VariableDeclaration","scope":75400,"src":"37959:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75360,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75363,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:126","nodeType":"VariableDeclaration","scope":75400,"src":"37979:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75362,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75448,"nodeType":"FunctionDefinition","src":"38531:520:126","nodes":[],"body":{"id":75447,"nodeType":"Block","src":"38610:441:126","nodes":[],"statements":[{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:126","nodeType":"VariableDeclaration","scope":75447,"src":"38620:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75410,"nodeType":"UserDefinedTypeName","pathNode":{"id":75409,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:126","38635:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"38620:23:126"},"referencedDeclaration":72847,"src":"38620:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75415,"initialValue":{"baseExpression":{"id":75412,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"38663:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75414,"indexExpression":{"id":75413,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38673:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38699:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"38699:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75418,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38722:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75425,"nodeType":"IfStatement","src":"38695:100:126","trueBody":{"id":75424,"nodeType":"Block","src":"38734:61:126","statements":[{"errorCall":{"arguments":[{"id":75421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38773:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75420,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"38755:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75423,"nodeType":"RevertStatement","src":"38748:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75426,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38809:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"38809:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75428,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"38836:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":75429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"38836:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"38836:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75437,"nodeType":"IfStatement","src":"38805:130:126","trueBody":{"id":75436,"nodeType":"Block","src":"38874:61:126","statements":[{"errorCall":{"arguments":[{"id":75433,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38913:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75432,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"38895:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75435,"nodeType":"RevertStatement","src":"38888:36:126"}]}},{"expression":{"arguments":[{"id":75439,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38972:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75440,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38982:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"38982:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75438,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"38945:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75443,"nodeType":"ExpressionStatement","src":"38945:59:126"},{"expression":{"expression":{"id":75444,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"39021:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"39021:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75406,"id":75446,"nodeType":"Return","src":"39014:30:126"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:126","parameters":{"id":75403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75402,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:126","nodeType":"VariableDeclaration","scope":75448,"src":"38565:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75401,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:126"},"returnParameters":{"id":75406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75448,"src":"38601:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75404,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75467,"nodeType":"FunctionDefinition","src":"39057:124:126","nodes":[],"body":{"id":75466,"nodeType":"Block","src":"39129:52:126","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75455,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75450,"src":"39148:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75456,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"39157:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75458,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75459,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"39163:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75460,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"39167:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75454,"id":75465,"nodeType":"Return","src":"39139:35:126"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:126","parameters":{"id":75451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75450,"mutability":"mutable","name":"amount","nameLocation":"39091:6:126","nodeType":"VariableDeclaration","scope":75467,"src":"39083:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75449,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:126"},"returnParameters":{"id":75454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75467,"src":"39120:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75452,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"39187:137:126","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"39258:66:126","nodes":[],"statements":[{"expression":{"id":75478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75476,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"39268:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75477,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"39276:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75479,"nodeType":"ExpressionStatement","src":"39268:14:126"},{"eventCall":{"arguments":[{"id":75481,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"39310:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75480,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73024,"src":"39297:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75483,"nodeType":"EmitStatement","src":"39292:25:126"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75474,"kind":"modifierInvocation","modifierName":{"id":75471,"name":"onlyPoolManager","nameLocations":["39230:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:126"},"nodeType":"ModifierInvocation","src":"39230:27:126"}],"name":"setDecay","nameLocation":"39196:8:126","parameters":{"id":75470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75469,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:126","nodeType":"VariableDeclaration","scope":75485,"src":"39205:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75468,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:126"},"returnParameters":{"id":75475,"nodeType":"ParameterList","parameters":[],"src":"39258:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75503,"nodeType":"FunctionDefinition","src":"39330:155:126","nodes":[],"body":{"id":75502,"nodeType":"Block","src":"39407:78:126","nodes":[],"statements":[{"expression":{"id":75496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75494,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"39417:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75495,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75487,"src":"39428:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75497,"nodeType":"ExpressionStatement","src":"39417:20:126"},{"eventCall":{"arguments":[{"id":75499,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75487,"src":"39468:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75498,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73028,"src":"39452:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75501,"nodeType":"EmitStatement","src":"39447:31:126"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75492,"kind":"modifierInvocation","modifierName":{"id":75489,"name":"onlyPoolManager","nameLocations":["39379:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:126"},"nodeType":"ModifierInvocation","src":"39379:27:126"}],"name":"setMaxRatio","nameLocation":"39339:11:126","parameters":{"id":75488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75487,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:126","nodeType":"VariableDeclaration","scope":75503,"src":"39351:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75486,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:126"},"returnParameters":{"id":75493,"nodeType":"ParameterList","parameters":[],"src":"39407:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75521,"nodeType":"FunctionDefinition","src":"39491:143:126","nodes":[],"body":{"id":75520,"nodeType":"Block","src":"39564:70:126","nodes":[],"statements":[{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75512,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"39574:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75513,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"39583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"39574:16:126"},{"eventCall":{"arguments":[{"id":75517,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"39619:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75516,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73032,"src":"39605:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75519,"nodeType":"EmitStatement","src":"39600:27:126"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75510,"kind":"modifierInvocation","modifierName":{"id":75507,"name":"onlyPoolManager","nameLocations":["39536:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:126"},"nodeType":"ModifierInvocation","src":"39536:27:126"}],"name":"setWeight","nameLocation":"39500:9:126","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75505,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:126","nodeType":"VariableDeclaration","scope":75521,"src":"39510:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75504,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:126"},"returnParameters":{"id":75511,"nodeType":"ParameterList","parameters":[],"src":"39564:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75541,"nodeType":"FunctionDefinition","src":"39640:219:126","nodes":[],"body":{"id":75540,"nodeType":"Block","src":"39735:124:126","nodes":[],"statements":[{"expression":{"id":75534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75530,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"39745:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75532,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"39783:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75531,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"39765:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77675_$","typeString":"type(contract RegistryCommunity)"}},"id":75533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"src":"39745:57:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":75535,"nodeType":"ExpressionStatement","src":"39745:57:126"},{"eventCall":{"arguments":[{"id":75537,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"39833:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75536,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73036,"src":"39817:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75539,"nodeType":"EmitStatement","src":"39812:40:126"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75526,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75528,"kind":"modifierInvocation","modifierName":{"id":75525,"name":"onlyPoolManager","nameLocations":["39707:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:126"},"nodeType":"ModifierInvocation","src":"39707:27:126"}],"name":"setRegistryCommunity","nameLocation":"39649:20:126","parameters":{"id":75524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75523,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:126","nodeType":"VariableDeclaration","scope":75541,"src":"39670:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75522,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:126"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[],"src":"39735:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75560,"nodeType":"FunctionDefinition","src":"39865:237:126","nodes":[],"body":{"id":75559,"nodeType":"Block","src":"39962:140:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75551,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"40003:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75552,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"40024:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75550,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73042,"src":"39977:25:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75554,"nodeType":"EmitStatement","src":"39972:72:126"},{"expression":{"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75555,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"40054:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75556,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"40076:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75558,"nodeType":"ExpressionStatement","src":"40054:41:126"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75546,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75548,"kind":"modifierInvocation","modifierName":{"id":75545,"name":"onlyPoolManager","nameLocations":["39934:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:126"},"nodeType":"ModifierInvocation","src":"39934:27:126"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:126","parameters":{"id":75544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75543,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:126","nodeType":"VariableDeclaration","scope":75560,"src":"39896:27:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75542,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:126"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[],"src":"39962:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":72885,"name":"BaseStrategy","nameLocations":["2845:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:126"},"id":72886,"nodeType":"InheritanceSpecifier","src":"2845:12:126"},{"baseName":{"id":72887,"name":"IPointStrategy","nameLocations":["2859:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72793,"src":"2859:14:126"},"id":72888,"nodeType":"InheritanceSpecifier","src":"2859:14:126"},{"baseName":{"id":72889,"name":"ERC165","nameLocations":["2875:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":58097,"src":"2875:6:126"},"id":72890,"nodeType":"InheritanceSpecifier","src":"2875:6:126"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75561,58097,58303,72793,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:126","scope":75562,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,72895,72897,72899,72901,72903,72905,72907,72909,72911,72913,72915,72923,72925,72927,72933,72935,72937,72941,72945,72951,72953,72955,72963]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json b/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json index 89f0879c0..3a17e078c 100644 --- a/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json +++ b/pkg/contracts/out/CVStrategy.sol/StrategyStruct.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220edf89562a18f5ea38be957b46893254659b25a8f21ce61065527ce423b41780d64736f6c63430008130033","sourceMap":"851:1969:126:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;851:1969:126;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220edf89562a18f5ea38be957b46893254659b25a8f21ce61065527ce423b41780d64736f6c63430008130033","sourceMap":"851:1969:126:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"StrategyStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"StrategyStruct"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75570,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75569],"ERC165":[58105],"ERC20":[56822],"IAllo":[2610],"IERC165":[58311],"IPointStrategy":[72801],"Math":[59177],"Metadata":[3098],"RegistryCommunity":[77692],"StrategyStruct":[72892],"console":[29549]},"nodeType":"SourceUnit","src":"42:40063:126","nodes":[{"id":72756,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72759,"nodeType":"ImportDirective","src":"68:82:126","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72757,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72758,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72762,"nodeType":"ImportDirective","src":"152:68:126","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":77693,"symbolAliases":[{"foreign":{"id":72760,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"160:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72761,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72765,"nodeType":"ImportDirective","src":"221:87:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":58106,"symbolAliases":[{"foreign":{"id":72763,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58105,"src":"229:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72764,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58311,"src":"237:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72767,"nodeType":"ImportDirective","src":"309:68:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":56823,"symbolAliases":[{"foreign":{"id":72766,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"317:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72769,"nodeType":"ImportDirective","src":"379:46:126","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":29550,"symbolAliases":[{"foreign":{"id":72768,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"387:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72771,"nodeType":"ImportDirective","src":"427:65:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75570,"sourceUnit":59178,"symbolAliases":[{"foreign":{"id":72770,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"435:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72801,"nodeType":"ContractDefinition","src":"494:355:126","nodes":[{"id":72776,"nodeType":"FunctionDefinition","src":"525:52:126","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:126","parameters":{"id":72774,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72773,"mutability":"mutable","name":"_member","nameLocation":"559:7:126","nodeType":"VariableDeclaration","scope":72776,"src":"551:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72772,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:126"},"returnParameters":{"id":72775,"nodeType":"ParameterList","parameters":[],"src":"576:0:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72785,"nodeType":"FunctionDefinition","src":"582:91:126","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:126","parameters":{"id":72781,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72778,"mutability":"mutable","name":"_member","nameLocation":"613:7:126","nodeType":"VariableDeclaration","scope":72785,"src":"605:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72777,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72780,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:126","nodeType":"VariableDeclaration","scope":72785,"src":"622:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72779,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:126"},"returnParameters":{"id":72784,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72783,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72785,"src":"664:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72782,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72794,"nodeType":"FunctionDefinition","src":"678:92:126","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:126","parameters":{"id":72790,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72787,"mutability":"mutable","name":"_member","nameLocation":"709:7:126","nodeType":"VariableDeclaration","scope":72794,"src":"701:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72786,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72789,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:126","nodeType":"VariableDeclaration","scope":72794,"src":"718:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72788,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:126"},"returnParameters":{"id":72793,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72792,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72794,"src":"761:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72791,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72800,"nodeType":"FunctionDefinition","src":"775:72:126","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:126","parameters":{"id":72795,"nodeType":"ParameterList","parameters":[],"src":"798:2:126"},"returnParameters":{"id":72799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72798,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72800,"src":"819:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72797,"nodeType":"UserDefinedTypeName","pathNode":{"id":72796,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:126","834:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"819:26:126"},"referencedDeclaration":72810,"src":"819:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:126"},"scope":72801,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[72801],"name":"IPointStrategy","nameLocation":"504:14:126","scope":75570,"usedErrors":[]},{"id":72892,"nodeType":"ContractDefinition","src":"851:1969:126","nodes":[{"id":72805,"nodeType":"EnumDefinition","src":"880:79:126","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":72802,"name":"Signaling","nameLocation":"908:9:126","nodeType":"EnumValue","src":"908:9:126"},{"id":72803,"name":"Funding","nameLocation":"927:7:126","nodeType":"EnumValue","src":"927:7:126"},{"id":72804,"name":"Streaming","nameLocation":"944:9:126","nodeType":"EnumValue","src":"944:9:126"}],"name":"ProposalType","nameLocation":"885:12:126"},{"id":72810,"nodeType":"EnumDefinition","src":"965:92:126","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":72806,"name":"Fixed","nameLocation":"992:5:126","nodeType":"EnumValue","src":"992:5:126"},{"id":72807,"name":"Capped","nameLocation":"1007:6:126","nodeType":"EnumValue","src":"1007:6:126"},{"id":72808,"name":"Unlimited","nameLocation":"1023:9:126","nodeType":"EnumValue","src":"1023:9:126"},{"id":72809,"name":"Quadratic","nameLocation":"1042:9:126","nodeType":"EnumValue","src":"1042:9:126"}],"name":"PointSystem","nameLocation":"970:11:126"},{"id":72822,"nodeType":"StructDefinition","src":"1063:243:126","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":72812,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:126","nodeType":"VariableDeclaration","scope":72822,"src":"1126:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72811,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72814,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:126","nodeType":"VariableDeclaration","scope":72822,"src":"1150:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72813,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72816,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:126","nodeType":"VariableDeclaration","scope":72822,"src":"1217:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72818,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:126","nodeType":"VariableDeclaration","scope":72822,"src":"1250:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72817,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72821,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:126","nodeType":"VariableDeclaration","scope":72822,"src":"1282:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72820,"nodeType":"UserDefinedTypeName","pathNode":{"id":72819,"name":"Metadata","nameLocations":["1282:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:126"},"referencedDeclaration":3098,"src":"1282:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:126","scope":72892,"visibility":"public"},{"id":72828,"nodeType":"EnumDefinition","src":"1312:289:126","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":72823,"name":"Inactive","nameLocation":"1342:8:126","nodeType":"EnumValue","src":"1342:8:126"},{"id":72824,"name":"Active","nameLocation":"1372:6:126","nodeType":"EnumValue","src":"1372:6:126"},{"id":72825,"name":"Paused","nameLocation":"1435:6:126","nodeType":"EnumValue","src":"1435:6:126"},{"id":72826,"name":"Cancelled","nameLocation":"1500:9:126","nodeType":"EnumValue","src":"1500:9:126"},{"id":72827,"name":"Executed","nameLocation":"1553:8:126","nodeType":"EnumValue","src":"1553:8:126"}],"name":"ProposalStatus","nameLocation":"1317:14:126"},{"id":72855,"nodeType":"StructDefinition","src":"1607:405:126","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":72830,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:126","nodeType":"VariableDeclaration","scope":72855,"src":"1633:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72829,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:126","nodeType":"VariableDeclaration","scope":72855,"src":"1661:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72831,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72834,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:126","nodeType":"VariableDeclaration","scope":72855,"src":"1694:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72833,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72836,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1724:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72838,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:126","nodeType":"VariableDeclaration","scope":72855,"src":"1756:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72837,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72840,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"1785:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72839,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72842,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1812:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72841,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72844,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"1844:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72843,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72847,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:126","nodeType":"VariableDeclaration","scope":72855,"src":"1871:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":72846,"nodeType":"UserDefinedTypeName","pathNode":{"id":72845,"name":"ProposalStatus","nameLocations":["1871:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72828,"src":"1871:14:126"},"referencedDeclaration":72828,"src":"1871:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":72851,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:126","nodeType":"VariableDeclaration","scope":72855,"src":"1910:45:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":72850,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":72848,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":72849,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":72854,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:126","nodeType":"VariableDeclaration","scope":72855,"src":"1988:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72853,"nodeType":"UserDefinedTypeName","pathNode":{"id":72852,"name":"Metadata","nameLocations":["1988:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:126"},"referencedDeclaration":3098,"src":"1988:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:126","scope":72892,"visibility":"public"},{"id":72860,"nodeType":"StructDefinition","src":"2018:126:126","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":72857,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:126","nodeType":"VariableDeclaration","scope":72860,"src":"2051:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72856,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72859,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:126","nodeType":"VariableDeclaration","scope":72860,"src":"2079:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72858,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:126","scope":72892,"visibility":"public"},{"id":72863,"nodeType":"StructDefinition","src":"2150:89:126","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":72862,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:126","nodeType":"VariableDeclaration","scope":72863,"src":"2215:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72861,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:126","scope":72892,"visibility":"public"},{"id":72868,"nodeType":"StructDefinition","src":"2245:88:126","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":72865,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:126","nodeType":"VariableDeclaration","scope":72868,"src":"2274:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72864,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72867,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:126","nodeType":"VariableDeclaration","scope":72868,"src":"2309:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72866,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:126","scope":72892,"visibility":"public"},{"id":72891,"nodeType":"StructDefinition","src":"2339:479:126","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":72870,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:126","nodeType":"VariableDeclaration","scope":72891,"src":"2373:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72869,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72872,"mutability":"mutable","name":"decay","nameLocation":"2445:5:126","nodeType":"VariableDeclaration","scope":72891,"src":"2437:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72874,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:126","nodeType":"VariableDeclaration","scope":72891,"src":"2507:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72873,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72876,"mutability":"mutable","name":"weight","nameLocation":"2569:6:126","nodeType":"VariableDeclaration","scope":72891,"src":"2561:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72875,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72878,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:126","nodeType":"VariableDeclaration","scope":72891,"src":"2585:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72877,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72881,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:126","nodeType":"VariableDeclaration","scope":72891,"src":"2646:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":72880,"nodeType":"UserDefinedTypeName","pathNode":{"id":72879,"name":"ProposalType","nameLocations":["2646:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"2646:12:126"},"referencedDeclaration":72805,"src":"2646:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":72884,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2716:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72883,"nodeType":"UserDefinedTypeName","pathNode":{"id":72882,"name":"PointSystem","nameLocations":["2716:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"2716:11:126"},"referencedDeclaration":72810,"src":"2716:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":72887,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2749:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":72886,"nodeType":"UserDefinedTypeName","pathNode":{"id":72885,"name":"PointSystemConfig","nameLocations":["2749:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"2749:17:126"},"referencedDeclaration":72863,"src":"2749:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":72890,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:126","nodeType":"VariableDeclaration","scope":72891,"src":"2788:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72868_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":72889,"nodeType":"UserDefinedTypeName","pathNode":{"id":72888,"name":"SybilConfig","nameLocations":["2788:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72868,"src":"2788:11:126"},"referencedDeclaration":72868,"src":"2788:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72868_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:126","scope":72892,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[72892],"name":"StrategyStruct","nameLocation":"859:14:126","scope":75570,"usedErrors":[]},{"id":75569,"nodeType":"ContractDefinition","src":"2822:37282:126","nodes":[{"id":72901,"nodeType":"UsingForDirective","src":"2888:23:126","nodes":[],"global":false,"libraryName":{"id":72899,"name":"Math","nameLocations":["2894:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":59177,"src":"2894:4:126"},"typeName":{"id":72900,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":72903,"nodeType":"ErrorDefinition","src":"3082:25:126","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:126","parameters":{"id":72902,"nodeType":"ParameterList","parameters":[],"src":"3104:2:126"}},{"id":72905,"nodeType":"ErrorDefinition","src":"3126:26:126","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:126","parameters":{"id":72904,"nodeType":"ParameterList","parameters":[],"src":"3149:2:126"}},{"id":72907,"nodeType":"ErrorDefinition","src":"3170:23:126","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:126","parameters":{"id":72906,"nodeType":"ParameterList","parameters":[],"src":"3190:2:126"}},{"id":72909,"nodeType":"ErrorDefinition","src":"3212:20:126","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:126","parameters":{"id":72908,"nodeType":"ParameterList","parameters":[],"src":"3229:2:126"}},{"id":72911,"nodeType":"ErrorDefinition","src":"3251:23:126","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:126","parameters":{"id":72910,"nodeType":"ParameterList","parameters":[],"src":"3271:2:126"}},{"id":72913,"nodeType":"ErrorDefinition","src":"3292:26:126","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:126","parameters":{"id":72912,"nodeType":"ParameterList","parameters":[],"src":"3315:2:126"}},{"id":72915,"nodeType":"ErrorDefinition","src":"3336:24:126","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:126","parameters":{"id":72914,"nodeType":"ParameterList","parameters":[],"src":"3357:2:126"}},{"id":72917,"nodeType":"ErrorDefinition","src":"3379:27:126","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:126","parameters":{"id":72916,"nodeType":"ParameterList","parameters":[],"src":"3403:2:126"}},{"id":72919,"nodeType":"ErrorDefinition","src":"3425:27:126","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:126","parameters":{"id":72918,"nodeType":"ParameterList","parameters":[],"src":"3449:2:126"}},{"id":72921,"nodeType":"ErrorDefinition","src":"3470:28:126","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:126","parameters":{"id":72920,"nodeType":"ParameterList","parameters":[],"src":"3495:2:126"}},{"id":72923,"nodeType":"ErrorDefinition","src":"3516:29:126","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:126","parameters":{"id":72922,"nodeType":"ParameterList","parameters":[],"src":"3542:2:126"}},{"id":72931,"nodeType":"ErrorDefinition","src":"3564:72:126","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:126","parameters":{"id":72930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72925,"mutability":"mutable","name":"_support","nameLocation":"3595:8:126","nodeType":"VariableDeclaration","scope":72931,"src":"3587:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72927,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:126","nodeType":"VariableDeclaration","scope":72931,"src":"3605:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72926,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":72929,"mutability":"mutable","name":"_result","nameLocation":"3627:7:126","nodeType":"VariableDeclaration","scope":72931,"src":"3620:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72928,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:126"}},{"id":72933,"nodeType":"ErrorDefinition","src":"3655:25:126","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:126","parameters":{"id":72932,"nodeType":"ParameterList","parameters":[],"src":"3677:2:126"}},{"id":72935,"nodeType":"ErrorDefinition","src":"3699:32:126","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:126","parameters":{"id":72934,"nodeType":"ParameterList","parameters":[],"src":"3728:2:126"}},{"id":72941,"nodeType":"ErrorDefinition","src":"3750:77:126","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:126","parameters":{"id":72940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72937,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:126","nodeType":"VariableDeclaration","scope":72941,"src":"3781:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72936,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72939,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:126","nodeType":"VariableDeclaration","scope":72941,"src":"3804:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72938,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:126"}},{"id":72943,"nodeType":"ErrorDefinition","src":"3847:28:126","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:126","parameters":{"id":72942,"nodeType":"ParameterList","parameters":[],"src":"3872:2:126"}},{"id":72945,"nodeType":"ErrorDefinition","src":"3893:31:126","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:126","parameters":{"id":72944,"nodeType":"ParameterList","parameters":[],"src":"3921:2:126"}},{"id":72949,"nodeType":"ErrorDefinition","src":"3942:45:126","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:126","parameters":{"id":72948,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72947,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:126","nodeType":"VariableDeclaration","scope":72949,"src":"3966:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72946,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:126"}},{"id":72953,"nodeType":"ErrorDefinition","src":"4006:45:126","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:126","parameters":{"id":72952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72951,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:126","nodeType":"VariableDeclaration","scope":72953,"src":"4030:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72950,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:126"}},{"id":72959,"nodeType":"ErrorDefinition","src":"4070:68:126","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:126","parameters":{"id":72958,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72955,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:126","nodeType":"VariableDeclaration","scope":72959,"src":"4102:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72954,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72957,"mutability":"mutable","name":"index","nameLocation":"4131:5:126","nodeType":"VariableDeclaration","scope":72959,"src":"4123:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72956,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:126"}},{"id":72961,"nodeType":"ErrorDefinition","src":"4156:40:126","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:126","parameters":{"id":72960,"nodeType":"ParameterList","parameters":[],"src":"4193:2:126"}},{"id":72963,"nodeType":"ErrorDefinition","src":"4215:29:126","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:126","parameters":{"id":72962,"nodeType":"ParameterList","parameters":[],"src":"4241:2:126"}},{"id":72971,"nodeType":"ErrorDefinition","src":"4263:94:126","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:126","parameters":{"id":72970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72965,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:126","nodeType":"VariableDeclaration","scope":72971,"src":"4289:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72964,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72967,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:126","nodeType":"VariableDeclaration","scope":72971,"src":"4310:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72966,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72969,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:126","nodeType":"VariableDeclaration","scope":72971,"src":"4336:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72968,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:126"}},{"id":72978,"nodeType":"EventDefinition","src":"4542:74:126","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:126","parameters":{"id":72977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72973,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:126","nodeType":"VariableDeclaration","scope":72978,"src":"4562:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72972,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72976,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:126","nodeType":"VariableDeclaration","scope":72978,"src":"4578:36:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":72975,"nodeType":"UserDefinedTypeName","pathNode":{"id":72974,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:126","4593:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"4578:31:126"},"referencedDeclaration":72891,"src":"4578:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:126"}},{"id":72986,"nodeType":"EventDefinition","src":"4621:75:126","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:126","parameters":{"id":72985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72980,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:126","nodeType":"VariableDeclaration","scope":72986,"src":"4639:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72982,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:126","nodeType":"VariableDeclaration","scope":72986,"src":"4659:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72981,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72984,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:126","nodeType":"VariableDeclaration","scope":72986,"src":"4680:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72983,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:126"}},{"id":72992,"nodeType":"EventDefinition","src":"4701:58:126","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:126","parameters":{"id":72991,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72988,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:126","nodeType":"VariableDeclaration","scope":72992,"src":"4723:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72987,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72990,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:126","nodeType":"VariableDeclaration","scope":72992,"src":"4739:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72989,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:126"}},{"id":72996,"nodeType":"EventDefinition","src":"4764:42:126","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:126","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72994,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:126","nodeType":"VariableDeclaration","scope":72996,"src":"4790:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72993,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:126"}},{"id":73004,"nodeType":"EventDefinition","src":"4811:85:126","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:126","parameters":{"id":73003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72998,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:126","nodeType":"VariableDeclaration","scope":73004,"src":"4832:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72997,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73000,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:126","nodeType":"VariableDeclaration","scope":73004,"src":"4848:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73002,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:126","nodeType":"VariableDeclaration","scope":73004,"src":"4870:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:126"}},{"id":73012,"nodeType":"EventDefinition","src":"4901:87:126","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:126","parameters":{"id":73011,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73006,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:126","nodeType":"VariableDeclaration","scope":73012,"src":"4922:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73005,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73008,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:126","nodeType":"VariableDeclaration","scope":73012,"src":"4938:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73007,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73010,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:126","nodeType":"VariableDeclaration","scope":73012,"src":"4962:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:126"}},{"id":73024,"nodeType":"EventDefinition","src":"4993:134:126","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:126","parameters":{"id":73023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73014,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:126","nodeType":"VariableDeclaration","scope":73024,"src":"5021:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73013,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73016,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:126","nodeType":"VariableDeclaration","scope":73024,"src":"5035:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73015,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73018,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:126","nodeType":"VariableDeclaration","scope":73024,"src":"5055:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73017,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73020,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:126","nodeType":"VariableDeclaration","scope":73024,"src":"5071:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73019,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73022,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:126","nodeType":"VariableDeclaration","scope":73024,"src":"5098:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:126"}},{"id":73028,"nodeType":"EventDefinition","src":"5132:40:126","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:126","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73026,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:126","nodeType":"VariableDeclaration","scope":73028,"src":"5156:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73025,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:126"}},{"id":73032,"nodeType":"EventDefinition","src":"5177:34:126","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:126","parameters":{"id":73031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73030,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:126","nodeType":"VariableDeclaration","scope":73032,"src":"5196:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:126"}},{"id":73036,"nodeType":"EventDefinition","src":"5216:40:126","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:126","parameters":{"id":73035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73034,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:126","nodeType":"VariableDeclaration","scope":73036,"src":"5238:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73033,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:126"}},{"id":73040,"nodeType":"EventDefinition","src":"5261:36:126","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:126","parameters":{"id":73039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73038,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:126","nodeType":"VariableDeclaration","scope":73040,"src":"5281:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:126"}},{"id":73044,"nodeType":"EventDefinition","src":"5302:49:126","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:126","parameters":{"id":73043,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73042,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:126","nodeType":"VariableDeclaration","scope":73044,"src":"5324:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73041,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:126"}},{"id":73050,"nodeType":"EventDefinition","src":"5356:76:126","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:126","parameters":{"id":73049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73046,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:126","nodeType":"VariableDeclaration","scope":73050,"src":"5388:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73045,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73048,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:126","nodeType":"VariableDeclaration","scope":73050,"src":"5404:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73047,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:126"}},{"id":73053,"nodeType":"VariableDeclaration","src":"5806:36:126","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73051,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:126","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73056,"nodeType":"VariableDeclaration","src":"5856:70:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73054,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73055,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:126","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73059,"nodeType":"VariableDeclaration","src":"5942:69:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73057,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73058,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:126","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73062,"nodeType":"VariableDeclaration","src":"6027:53:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73065,"nodeType":"VariableDeclaration","src":"6095:49:126","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73063,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73064,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73067,"nodeType":"VariableDeclaration","src":"6272:20:126","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73066,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73069,"nodeType":"VariableDeclaration","src":"6298:23:126","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73068,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73071,"nodeType":"VariableDeclaration","src":"6327:21:126","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73070,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73074,"nodeType":"VariableDeclaration","src":"6354:34:126","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73072,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73076,"nodeType":"VariableDeclaration","src":"6394:26:126","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73075,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73078,"nodeType":"VariableDeclaration","src":"6426:35:126","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73077,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73081,"nodeType":"VariableDeclaration","src":"6467:38:126","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73079,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73083,"nodeType":"VariableDeclaration","src":"6546:47:126","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73082,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73086,"nodeType":"VariableDeclaration","src":"6678:47:126","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73085,"nodeType":"UserDefinedTypeName","pathNode":{"id":73084,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:126","6693:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"6678:27:126"},"referencedDeclaration":72805,"src":"6678:27:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73089,"nodeType":"VariableDeclaration","src":"6784:45:126","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73088,"nodeType":"UserDefinedTypeName","pathNode":{"id":73087,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:126","6799:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"6784:26:126"},"referencedDeclaration":72810,"src":"6784:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73092,"nodeType":"VariableDeclaration","src":"6835:51:126","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73091,"nodeType":"UserDefinedTypeName","pathNode":{"id":73090,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:126","6850:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"6835:32:126"},"referencedDeclaration":72863,"src":"6835:32:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73095,"nodeType":"VariableDeclaration","src":"6919:42:126","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"},"typeName":{"id":73094,"nodeType":"UserDefinedTypeName","pathNode":{"id":73093,"name":"RegistryCommunity","nameLocations":["6919:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"6919:17:126"},"referencedDeclaration":77692,"src":"6919:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73100,"nodeType":"VariableDeclaration","src":"7028:60:126","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73099,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73096,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73098,"nodeType":"UserDefinedTypeName","pathNode":{"id":73097,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:126","7062:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"7047:23:126"},"referencedDeclaration":72855,"src":"7047:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73104,"nodeType":"VariableDeclaration","src":"7144:53:126","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73103,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73101,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73102,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73109,"nodeType":"VariableDeclaration","src":"7235:57:126","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:126","scope":75569,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73108,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73105,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73106,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73107,"nodeType":"ArrayTypeName","src":"7254:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73122,"nodeType":"FunctionDefinition","src":"7496:72:126","nodes":[],"body":{"id":73121,"nodeType":"Block","src":"7566:2:126","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73116,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73111,"src":"7544:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73115,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73114,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:126","typeDescriptions":{}}},"id":73117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73118,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73119,"kind":"baseConstructorSpecifier","modifierName":{"id":73113,"name":"BaseStrategy","nameLocations":["7523:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:126"},"nodeType":"ModifierInvocation","src":"7523:42:126"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73112,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73111,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:126","nodeType":"VariableDeclaration","scope":73122,"src":"7508:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73110,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:126"},"returnParameters":{"id":73120,"nodeType":"ParameterList","parameters":[],"src":"7566:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73206,"nodeType":"FunctionDefinition","src":"7574:1028:126","nodes":[],"body":{"id":73205,"nodeType":"Block","src":"7640:962:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":73130,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"7670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73129,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73132,"nodeType":"ExpressionStatement","src":"7650:28:126"},{"assignments":[73137],"declarations":[{"constant":false,"id":73137,"mutability":"mutable","name":"ip","nameLocation":"7727:2:126","nodeType":"VariableDeclaration","scope":73205,"src":"7688:41:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73136,"nodeType":"UserDefinedTypeName","pathNode":{"id":73135,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:126","7703:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"7688:31:126"},"referencedDeclaration":72891,"src":"7688:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73145,"initialValue":{"arguments":[{"id":73140,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73126,"src":"7743:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73141,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"7751:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:126","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":72891,"src":"7751:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73143,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72891_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73138,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73139,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:126","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73152,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73146,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8139:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73147,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8139:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73150,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:126","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":73149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73148,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:126","typeDescriptions":{}}},"id":73151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73157,"nodeType":"IfStatement","src":"8135:94:126","trueBody":{"id":73156,"nodeType":"Block","src":"8175:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73153,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"8196:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73155,"nodeType":"RevertStatement","src":"8189:29:126"}]}},{"expression":{"id":73163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73158,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"8239:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73160,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8277:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73161,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8277:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73159,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"8259:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77692_$","typeString":"type(contract RegistryCommunity)"}},"id":73162,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"src":"8239:59:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73164,"nodeType":"ExpressionStatement","src":"8239:59:126"},{"expression":{"id":73168,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73165,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"8308:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73166,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8316:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73167,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:126","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72872,"src":"8316:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73169,"nodeType":"ExpressionStatement","src":"8308:16:126"},{"expression":{"id":73173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73170,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"8334:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73171,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8345:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73172,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:126","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72874,"src":"8345:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73174,"nodeType":"ExpressionStatement","src":"8334:22:126"},{"expression":{"id":73178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73175,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"8366:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73176,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8375:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73177,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:126","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"8375:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73179,"nodeType":"ExpressionStatement","src":"8366:18:126"},{"expression":{"id":73183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73180,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"8394:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73181,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8409:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:126","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72881,"src":"8409:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"id":73184,"nodeType":"ExpressionStatement","src":"8394:30:126"},{"expression":{"id":73188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73185,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"8434:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73186,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8448:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:126","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72884,"src":"8448:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"id":73189,"nodeType":"ExpressionStatement","src":"8434:28:126"},{"expression":{"id":73193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73190,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"8472:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73191,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8486:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73192,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:126","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72887,"src":"8486:14:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73194,"nodeType":"ExpressionStatement","src":"8472:28:126"},{"expression":{"id":73198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73195,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"8510:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73196,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8532:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73197,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:126","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":72878,"src":"8532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73199,"nodeType":"ExpressionStatement","src":"8510:43:126"},{"eventCall":{"arguments":[{"id":73201,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73124,"src":"8583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73202,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73137,"src":"8592:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73200,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72978,"src":"8569:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$72891_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73204,"nodeType":"EmitStatement","src":"8564:31:126"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:126","parameters":{"id":73127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73124,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:126","nodeType":"VariableDeclaration","scope":73206,"src":"7594:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73123,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73126,"mutability":"mutable","name":"_data","nameLocation":"7624:5:126","nodeType":"VariableDeclaration","scope":73206,"src":"7611:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73125,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:126"},"returnParameters":{"id":73128,"nodeType":"ParameterList","parameters":[],"src":"7640:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73210,"nodeType":"FunctionDefinition","src":"8773:83:126","nodes":[],"body":{"id":73209,"nodeType":"Block","src":"8801:55:126","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73207,"nodeType":"ParameterList","parameters":[],"src":"8781:2:126"},"returnParameters":{"id":73208,"nodeType":"ParameterList","parameters":[],"src":"8801:0:126"},"scope":75569,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73214,"nodeType":"FunctionDefinition","src":"8862:135:126","nodes":[],"body":{"id":73213,"nodeType":"Block","src":"8889:108:126","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73211,"nodeType":"ParameterList","parameters":[],"src":"8869:2:126"},"returnParameters":{"id":73212,"nodeType":"ParameterList","parameters":[],"src":"8889:0:126"},"scope":75569,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73235,"nodeType":"FunctionDefinition","src":"9003:202:126","nodes":[],"body":{"id":73234,"nodeType":"Block","src":"9094:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73216,"src":"9111:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73224,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"9131:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":73223,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:126","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":73226,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:126","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73230,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73216,"src":"9186:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73228,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75569_$","typeString":"type(contract super CVStrategy)"}},"id":73229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:126","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58104,"src":"9162:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73221,"id":73233,"nodeType":"Return","src":"9104:94:126"}]},"baseFunctions":[58104],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:126","overrides":{"id":73218,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:126"},"parameters":{"id":73217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73216,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:126","nodeType":"VariableDeclaration","scope":73235,"src":"9030:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73215,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:126"},"returnParameters":{"id":73221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73235,"src":"9088:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73219,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:126"},"scope":75569,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73276,"nodeType":"FunctionDefinition","src":"9376:377:126","nodes":[],"body":{"id":73275,"nodeType":"Block","src":"9435:318:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73240,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73237,"src":"9449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:126","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":73242,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73241,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:126","typeDescriptions":{}}},"id":73244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73250,"nodeType":"IfStatement","src":"9445:77:126","trueBody":{"id":73249,"nodeType":"Block","src":"9472:50:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73246,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"9493:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73248,"nodeType":"RevertStatement","src":"9486:25:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73253,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9543:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":73252,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73251,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:126","typeDescriptions":{}}},"id":73254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73257,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:126","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":73256,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73255,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:126","typeDescriptions":{}}},"id":73258,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73264,"nodeType":"IfStatement","src":"9531:100:126","trueBody":{"id":73263,"nodeType":"Block","src":"9577:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73260,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"9598:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73261,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73262,"nodeType":"RevertStatement","src":"9591:29:126"}]}},{"condition":{"id":73269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:126","subExpression":{"arguments":[{"id":73267,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73237,"src":"9672:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73265,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9645:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:126","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77273,"src":"9645:26:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73274,"nodeType":"IfStatement","src":"9640:93:126","trueBody":{"id":73273,"nodeType":"Block","src":"9682:51:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73270,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"9703:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73271,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73272,"nodeType":"RevertStatement","src":"9696:26:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:126","parameters":{"id":73238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73237,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:126","nodeType":"VariableDeclaration","scope":73276,"src":"9405:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73236,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:126"},"returnParameters":{"id":73239,"nodeType":"ParameterList","parameters":[],"src":"9435:0:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73292,"nodeType":"FunctionDefinition","src":"9759:162:126","nodes":[],"body":{"id":73291,"nodeType":"Block","src":"9805:116:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73279,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:126","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73283,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"9841:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":73282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73281,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:126","typeDescriptions":{}}},"id":73284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73290,"nodeType":"IfStatement","src":"9815:100:126","trueBody":{"id":73289,"nodeType":"Block","src":"9861:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73286,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72963,"src":"9882:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73288,"nodeType":"RevertStatement","src":"9875:29:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:126","parameters":{"id":73277,"nodeType":"ParameterList","parameters":[],"src":"9789:2:126"},"returnParameters":{"id":73278,"nodeType":"ParameterList","parameters":[],"src":"9805:0:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73308,"nodeType":"FunctionDefinition","src":"9927:132:126","nodes":[],"body":{"id":73307,"nodeType":"Block","src":"9986:73:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73297,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73294,"src":"10000:8:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:126","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":73299,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73298,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:126","typeDescriptions":{}}},"id":73301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73306,"nodeType":"IfStatement","src":"9996:56:126","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73303,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72921,"src":"10031:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73305,"nodeType":"RevertStatement","src":"10024:28:126"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:126","parameters":{"id":73295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73294,"mutability":"mutable","name":"_address","nameLocation":"9962:8:126","nodeType":"VariableDeclaration","scope":73308,"src":"9954:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73293,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:126"},"returnParameters":{"id":73296,"nodeType":"ParameterList","parameters":[],"src":"9986:0:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73483,"nodeType":"FunctionDefinition","src":"10385:1945:126","nodes":[],"body":{"id":73482,"nodeType":"Block","src":"10486:1844:126","nodes":[],"statements":[{"expression":{"id":73318,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"10541:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73319,"nodeType":"ExpressionStatement","src":"10541:5:126"},{"assignments":[73324],"declarations":[{"constant":false,"id":73324,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:126","nodeType":"VariableDeclaration","scope":73482,"src":"10556:45:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73323,"nodeType":"UserDefinedTypeName","pathNode":{"id":73322,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:126","10571:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72822,"src":"10556:29:126"},"referencedDeclaration":72822,"src":"10556:29:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73332,"initialValue":{"arguments":[{"id":73327,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73310,"src":"10615:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73328,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"10623:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:126","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"10623:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73330,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72822_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73325,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73326,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:126","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73333,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"10769:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73334,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:126","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":72812,"src":"10769:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73341,"nodeType":"IfStatement","src":"10765:78:126","trueBody":{"id":73340,"nodeType":"Block","src":"10791:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73337,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72919,"src":"10812:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73339,"nodeType":"RevertStatement","src":"10805:27:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":73346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73342,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"10919:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73343,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"10935:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72805,"src":"10935:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72805_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73345,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72803,"src":"10935:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73393,"nodeType":"IfStatement","src":"10915:721:126","trueBody":{"id":73392,"nodeType":"Block","src":"10972:664:126","statements":[{"expression":{"arguments":[{"expression":{"id":73348,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11004:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73349,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"11004:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73347,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73308,"src":"10986:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73351,"nodeType":"ExpressionStatement","src":"10986:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73352,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11091:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73353,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11091:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:126","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":73355,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73354,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:126","typeDescriptions":{}}},"id":73357,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73363,"nodeType":"IfStatement","src":"11087:102:126","trueBody":{"id":73362,"nodeType":"Block","src":"11130:59:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73359,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"11155:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73361,"nodeType":"RevertStatement","src":"11148:26:126"}]}},{"assignments":[73365],"declarations":[{"constant":false,"id":73365,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:126","nodeType":"VariableDeclaration","scope":73392,"src":"11202:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73364,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73373,"initialValue":{"expression":{"arguments":[{"id":73370,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73366,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}},"id":73367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:126","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73374,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11276:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73375,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11276:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73376,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73365,"src":"11303:9:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73382,"nodeType":"IfStatement","src":"11272:234:126","trueBody":{"id":73381,"nodeType":"Block","src":"11314:192:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73378,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"11474:15:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73380,"nodeType":"RevertStatement","src":"11467:24:126"}]}},{"condition":{"arguments":[{"expression":{"id":73384,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11539:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73385,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"11539:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73383,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74650,"src":"11523:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73386,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73391,"nodeType":"IfStatement","src":"11519:107:126","trueBody":{"id":73390,"nodeType":"Block","src":"11566:60:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73387,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72917,"src":"11591:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73388,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73389,"nodeType":"RevertStatement","src":"11584:27:126"}]}}]}},{"assignments":[73395],"declarations":[{"constant":false,"id":73395,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:126","nodeType":"VariableDeclaration","scope":73482,"src":"11645:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73394,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73398,"initialValue":{"id":73397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:126","subExpression":{"id":73396,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73074,"src":"11668:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:126"},{"assignments":[73403],"declarations":[{"constant":false,"id":73403,"mutability":"mutable","name":"p","nameLocation":"11725:1:126","nodeType":"VariableDeclaration","scope":73482,"src":"11693:33:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73402,"nodeType":"UserDefinedTypeName","pathNode":{"id":73401,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:126","11708:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"11693:23:126"},"referencedDeclaration":72855,"src":"11693:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73407,"initialValue":{"baseExpression":{"id":73404,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"11729:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73406,"indexExpression":{"id":73405,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11739:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:126"},{"expression":{"id":73412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73408,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11761:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73410,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"11761:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73411,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11776:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73413,"nodeType":"ExpressionStatement","src":"11761:25:126"},{"expression":{"id":73418,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73414,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11796:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"11796:11:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73417,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73312,"src":"11810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73419,"nodeType":"ExpressionStatement","src":"11796:21:126"},{"expression":{"id":73425,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73420,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11827:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73422,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"11827:13:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73423,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11843:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73424,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"11843:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73426,"nodeType":"ExpressionStatement","src":"11827:36:126"},{"expression":{"id":73432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73427,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11873:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73429,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72842,"src":"11873:16:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73430,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11892:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73431,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72818,"src":"11892:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73433,"nodeType":"ExpressionStatement","src":"11873:42:126"},{"expression":{"id":73439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73434,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"11925:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73436,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"11925:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73437,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"11945:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73438,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"11945:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73440,"nodeType":"ExpressionStatement","src":"11925:44:126"},{"expression":{"id":73447,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12030:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"12030:16:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73444,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"12049:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"12049:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73446,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"12049:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73448,"nodeType":"ExpressionStatement","src":"12030:55:126"},{"expression":{"id":73454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73449,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12095:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73451,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"12095:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73452,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73453,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:126","memberName":"number","nodeType":"MemberAccess","src":"12109:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73455,"nodeType":"ExpressionStatement","src":"12095:26:126"},{"expression":{"id":73460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73456,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12131:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"12131:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73459,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73461,"nodeType":"ExpressionStatement","src":"12131:20:126"},{"expression":{"id":73467,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73462,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73403,"src":"12197:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73464,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"12197:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73465,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73324,"src":"12210:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72822_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73466,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72821,"src":"12210:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73468,"nodeType":"ExpressionStatement","src":"12197:30:126"},{"eventCall":{"arguments":[{"id":73470,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73471,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12267:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73469,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72992,"src":"12243:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73473,"nodeType":"EmitStatement","src":"12238:40:126"},{"expression":{"arguments":[{"arguments":[{"id":73478,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12311:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73477,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73476,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:126","typeDescriptions":{}}},"id":73479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73475,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73474,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:126","typeDescriptions":{}}},"id":73480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73317,"id":73481,"nodeType":"Return","src":"12288:35:126"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:126","overrides":{"id":73314,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:126"},"parameters":{"id":73313,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73310,"mutability":"mutable","name":"_data","nameLocation":"10426:5:126","nodeType":"VariableDeclaration","scope":73483,"src":"10413:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73309,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73312,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:126","nodeType":"VariableDeclaration","scope":73483,"src":"10433:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73311,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:126"},"returnParameters":{"id":73317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73483,"src":"10477:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73315,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73513,"nodeType":"FunctionDefinition","src":"12336:253:126","nodes":[],"body":{"id":73512,"nodeType":"Block","src":"12371:218:126","nodes":[],"statements":[{"assignments":[73487],"declarations":[{"constant":false,"id":73487,"mutability":"mutable","name":"member","nameLocation":"12389:6:126","nodeType":"VariableDeclaration","scope":73512,"src":"12381:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73486,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73490,"initialValue":{"expression":{"id":73488,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:126"},{"expression":{"arguments":[{"id":73494,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73487,"src":"12461:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73497,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73496,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73495,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:126","typeDescriptions":{}}},"id":73498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73491,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12418:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:126","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76651,"src":"12418:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73500,"nodeType":"ExpressionStatement","src":"12418:65:126"},{"expression":{"id":73510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73501,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"12493:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73504,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73487,"src":"12560:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73507,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73506,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73505,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:126","typeDescriptions":{}}},"id":73508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73502,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12517:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"12517:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73509,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73511,"nodeType":"ExpressionStatement","src":"12493:89:126"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:126","parameters":{"id":73484,"nodeType":"ParameterList","parameters":[],"src":"12359:2:126"},"returnParameters":{"id":73485,"nodeType":"ParameterList","parameters":[],"src":"12371:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73522,"nodeType":"FunctionDefinition","src":"12595:81:126","nodes":[],"body":{"id":73521,"nodeType":"Block","src":"12630:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73517,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73516,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"12640:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73520,"nodeType":"ExpressionStatement","src":"12640:29:126"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:126","parameters":{"id":73514,"nodeType":"ParameterList","parameters":[],"src":"12620:2:126"},"returnParameters":{"id":73515,"nodeType":"ParameterList","parameters":[],"src":"12630:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73535,"nodeType":"FunctionDefinition","src":"12682:128:126","nodes":[],"body":{"id":73534,"nodeType":"Block","src":"12734:76:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73527,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"12744:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73529,"nodeType":"ExpressionStatement","src":"12744:23:126"},{"expression":{"arguments":[{"id":73531,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73524,"src":"12795:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73530,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73570,"src":"12777:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73533,"nodeType":"ExpressionStatement","src":"12777:26:126"}]},"baseFunctions":[72776],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:126","parameters":{"id":73525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73524,"mutability":"mutable","name":"_member","nameLocation":"12716:7:126","nodeType":"VariableDeclaration","scope":73535,"src":"12708:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73523,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:126"},"returnParameters":{"id":73526,"nodeType":"ParameterList","parameters":[],"src":"12734:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73570,"nodeType":"FunctionDefinition","src":"12816:351:126","nodes":[],"body":{"id":73569,"nodeType":"Block","src":"12869:298:126","nodes":[],"statements":[{"expression":{"id":73549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73540,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"12879:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73543,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"12946:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73546,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73545,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73544,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:126","typeDescriptions":{}}},"id":73547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73541,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12903:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"12903:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73548,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73550,"nodeType":"ExpressionStatement","src":"12879:90:126"},{"expression":{"arguments":[{"id":73554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13024:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73557,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73556,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73555,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:126","typeDescriptions":{}}},"id":73558,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73551,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"12979:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:126","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76710,"src":"12979:44:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"ExpressionStatement","src":"12979:68:126"},{"expression":{"arguments":[{"id":73562,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13111:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73561,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74444,"src":"13102:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73563,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73564,"nodeType":"ExpressionStatement","src":"13102:17:126"},{"eventCall":{"arguments":[{"id":73566,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73537,"src":"13152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73565,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73028,"src":"13134:17:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73567,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73568,"nodeType":"EmitStatement","src":"13129:31:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:126","parameters":{"id":73538,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73537,"mutability":"mutable","name":"_member","nameLocation":"12851:7:126","nodeType":"VariableDeclaration","scope":73570,"src":"12843:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:126"},"returnParameters":{"id":73539,"nodeType":"ParameterList","parameters":[],"src":"12869:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73654,"nodeType":"FunctionDefinition","src":"13173:958:126","nodes":[],"body":{"id":73653,"nodeType":"Block","src":"13264:867:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73579,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"13319:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73580,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73581,"nodeType":"ExpressionStatement","src":"13319:23:126"},{"assignments":[73583],"declarations":[{"constant":false,"id":73583,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:126","nodeType":"VariableDeclaration","scope":73653,"src":"13352:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73582,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73585,"initialValue":{"hexValue":"30","id":73584,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73586,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13394:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73587,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13409:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13409:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"13409:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73598,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13539:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73599,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13554:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13554:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73601,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72807,"src":"13554:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73611,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"13687:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73612,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"13702:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"13702:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73614,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:126","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72809,"src":"13702:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73624,"nodeType":"IfStatement","src":"13683:148:126","trueBody":{"id":73623,"nodeType":"Block","src":"13740:91:126","statements":[{"expression":{"id":73621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73616,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13754:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73618,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13796:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73619,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13805:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73617,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73867,"src":"13773:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73622,"nodeType":"ExpressionStatement","src":"13754:66:126"}]}},"id":73625,"nodeType":"IfStatement","src":"13535:296:126","trueBody":{"id":73610,"nodeType":"Block","src":"13589:88:126","statements":[{"expression":{"id":73608,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73603,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13603:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13642:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73606,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13651:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73604,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73783,"src":"13622:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73609,"nodeType":"ExpressionStatement","src":"13603:63:126"}]}},"id":73626,"nodeType":"IfStatement","src":"13390:441:126","trueBody":{"id":73597,"nodeType":"Block","src":"13447:82:126","statements":[{"expression":{"id":73595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73591,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13461:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73593,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"13503:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73592,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73720,"src":"13480:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73596,"nodeType":"ExpressionStatement","src":"13461:57:126"}]}},{"assignments":[73628],"declarations":[{"constant":false,"id":73628,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:126","nodeType":"VariableDeclaration","scope":73653,"src":"13840:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73627,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73637,"initialValue":{"arguments":[{"id":73631,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"13905:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73634,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73633,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73632,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:126","typeDescriptions":{}}},"id":73635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73629,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"13859:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73630,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76185,"src":"13859:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:126"},{"condition":{"id":73638,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73628,"src":"13942:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73644,"nodeType":"IfStatement","src":"13938:82:126","trueBody":{"id":73643,"nodeType":"Block","src":"13955:65:126","statements":[{"expression":{"id":73641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73639,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"13969:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73640,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"13993:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73642,"nodeType":"ExpressionStatement","src":"13969:40:126"}]}},{"eventCall":{"arguments":[{"id":73646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73572,"src":"14049:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73647,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73574,"src":"14058:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73648,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"14074:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73645,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73004,"src":"14034:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73650,"nodeType":"EmitStatement","src":"14029:62:126"},{"expression":{"id":73651,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73583,"src":"14108:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73578,"id":73652,"nodeType":"Return","src":"14101:23:126"}]},"baseFunctions":[72785],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:126","parameters":{"id":73575,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73572,"mutability":"mutable","name":"_member","nameLocation":"13204:7:126","nodeType":"VariableDeclaration","scope":73654,"src":"13196:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73571,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73574,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:126","nodeType":"VariableDeclaration","scope":73654,"src":"13213:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73573,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:126"},"returnParameters":{"id":73578,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73577,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73654,"src":"13255:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73576,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73710,"nodeType":"FunctionDefinition","src":"14137:681:126","nodes":[],"body":{"id":73709,"nodeType":"Block","src":"14230:588:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73663,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73292,"src":"14240:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73665,"nodeType":"ExpressionStatement","src":"14240:23:126"},{"assignments":[73667],"declarations":[{"constant":false,"id":73667,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:126","nodeType":"VariableDeclaration","scope":73709,"src":"14319:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73666,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73669,"initialValue":{"hexValue":"30","id":73668,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73670,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"14361:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73671,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"14376:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"14376:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73673,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"14376:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":73679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73675,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"14416:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73676,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"14431:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"14431:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73678,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72807,"src":"14431:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73695,"nodeType":"Block","src":"14562:93:126","statements":[{"expression":{"id":73693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73688,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14576:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73690,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73656,"src":"14618:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73691,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14627:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73689,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73971,"src":"14595:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73694,"nodeType":"ExpressionStatement","src":"14576:68:126"}]},"id":73696,"nodeType":"IfStatement","src":"14357:298:126","trueBody":{"id":73687,"nodeType":"Block","src":"14466:90:126","statements":[{"expression":{"id":73685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73681,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14480:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73683,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14528:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73682,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73877,"src":"14499:28:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73686,"nodeType":"ExpressionStatement","src":"14480:65:126"}]}},{"expression":{"id":73699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73697,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"14664:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73698,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14688:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73700,"nodeType":"ExpressionStatement","src":"14664:40:126"},{"eventCall":{"arguments":[{"id":73702,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73656,"src":"14734:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73703,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73658,"src":"14743:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73704,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14761:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73701,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73012,"src":"14719:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73705,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73706,"nodeType":"EmitStatement","src":"14714:64:126"},{"expression":{"id":73707,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73667,"src":"14795:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73662,"id":73708,"nodeType":"Return","src":"14788:23:126"}]},"baseFunctions":[72794],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:126","parameters":{"id":73659,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73656,"mutability":"mutable","name":"_member","nameLocation":"14168:7:126","nodeType":"VariableDeclaration","scope":73710,"src":"14160:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73655,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73658,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:126","nodeType":"VariableDeclaration","scope":73710,"src":"14177:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73657,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:126"},"returnParameters":{"id":73662,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73661,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73710,"src":"14221:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73660,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73720,"nodeType":"FunctionDefinition","src":"14824:126:126","nodes":[],"body":{"id":73719,"nodeType":"Block","src":"14912:38:126","nodes":[],"statements":[{"expression":{"id":73717,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73712,"src":"14929:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73716,"id":73718,"nodeType":"Return","src":"14922:21:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:126","parameters":{"id":73713,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73712,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:126","nodeType":"VariableDeclaration","scope":73720,"src":"14856:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73711,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:126"},"returnParameters":{"id":73716,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73715,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73720,"src":"14903:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73714,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73783,"nodeType":"FunctionDefinition","src":"14956:615:126","nodes":[],"body":{"id":73782,"nodeType":"Block","src":"15058:513:126","nodes":[],"statements":[{"assignments":[73730],"declarations":[{"constant":false,"id":73730,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:126","nodeType":"VariableDeclaration","scope":73782,"src":"15068:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73729,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73732,"initialValue":{"id":73731,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73724,"src":"15095:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:126"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73737,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15153:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73733,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15119:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15119:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73738,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73739,"nodeType":"ExpressionStatement","src":"15119:51:126"},{"assignments":[73741],"declarations":[{"constant":false,"id":73741,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:126","nodeType":"VariableDeclaration","scope":73782,"src":"15180:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73740,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73750,"initialValue":{"arguments":[{"id":73744,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15245:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73747,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73746,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73745,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:126","typeDescriptions":{}}},"id":73748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73742,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15202:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"15202:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73749,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:126"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73754,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73755,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15305:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73751,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15278:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73753,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15278:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73757,"nodeType":"ExpressionStatement","src":"15278:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73763,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73758,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15331:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73759,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15345:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73761,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"15364:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73762,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"15364:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73772,"nodeType":"IfStatement","src":"15327:139:126","trueBody":{"id":73771,"nodeType":"Block","src":"15387:79:126","statements":[{"expression":{"id":73769,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73764,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15401:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73765,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"15420:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73766,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"15420:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73767,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73741,"src":"15444:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73770,"nodeType":"ExpressionStatement","src":"15401:54:126"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73776,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73777,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15513:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73773,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15475:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73775,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15475:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73778,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73779,"nodeType":"ExpressionStatement","src":"15475:55:126"},{"expression":{"id":73780,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73730,"src":"15548:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73728,"id":73781,"nodeType":"Return","src":"15541:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:126","parameters":{"id":73725,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73722,"mutability":"mutable","name":"_member","nameLocation":"14993:7:126","nodeType":"VariableDeclaration","scope":73783,"src":"14985:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73721,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73724,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:126","nodeType":"VariableDeclaration","scope":73783,"src":"15002:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73723,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:126"},"returnParameters":{"id":73728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73727,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73783,"src":"15049:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73726,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73867,"nodeType":"FunctionDefinition","src":"15577:730:126","nodes":[],"body":{"id":73866,"nodeType":"Block","src":"15682:625:126","nodes":[],"statements":[{"assignments":[73793],"declarations":[{"constant":false,"id":73793,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:126","nodeType":"VariableDeclaration","scope":73866,"src":"15692:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73792,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73800,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73796,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"15753:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73794,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15713:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77046,"src":"15713:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73797,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73798,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73787,"src":"15764:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:126"},{"assignments":[73802],"declarations":[{"constant":false,"id":73802,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:126","nodeType":"VariableDeclaration","scope":73866,"src":"15789:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73801,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73804,"initialValue":{"hexValue":"3138","id":73803,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:126"},{"clauses":[{"block":{"id":73825,"nodeType":"Block","src":"15907:52:126","statements":[{"expression":{"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73818,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73802,"src":"15921:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73821,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73816,"src":"15939:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73820,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73819,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:126","typeDescriptions":{}}},"id":73822,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73824,"nodeType":"ExpressionStatement","src":"15921:27:126"}]},"errorName":"","id":73826,"nodeType":"TryCatchClause","parameters":{"id":73817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73816,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:126","nodeType":"VariableDeclaration","scope":73826,"src":"15891:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73815,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:126"},"src":"15882:77:126"},{"block":{"id":73833,"nodeType":"Block","src":"15966:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73830,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73827,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15980:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73829,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"15980:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73831,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73832,"nodeType":"ExpressionStatement","src":"15980:36:126"}]},"errorName":"","id":73834,"nodeType":"TryCatchClause","src":"15960:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73808,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"15837:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"15837:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73806,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:126","typeDescriptions":{}}},"id":73811,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73805,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"15823:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73812,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73813,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"15823:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73835,"nodeType":"TryStatement","src":"15819:208:126"},{"assignments":[73837],"declarations":[{"constant":false,"id":73837,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:126","nodeType":"VariableDeclaration","scope":73866,"src":"16036:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73836,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73846,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73840,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73793,"src":"16071:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73843,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73842,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73802,"src":"16090:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73838,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"16061:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59177_$","typeString":"type(library Math)"}},"id":73839,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58681,"src":"16061:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:126"},{"assignments":[73848],"declarations":[{"constant":false,"id":73848,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:126","nodeType":"VariableDeclaration","scope":73866,"src":"16108:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73847,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73857,"initialValue":{"arguments":[{"id":73851,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"16175:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73854,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73853,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73852,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:126","typeDescriptions":{}}},"id":73855,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73849,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16132:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73850,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"16132:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73856,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:126"},{"assignments":[73859],"declarations":[{"constant":false,"id":73859,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:126","nodeType":"VariableDeclaration","scope":73866,"src":"16209:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73858,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73863,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73860,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73837,"src":"16236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73861,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73848,"src":"16253:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:126"},{"expression":{"id":73864,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73859,"src":"16284:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73791,"id":73865,"nodeType":"Return","src":"16277:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:126","parameters":{"id":73788,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73785,"mutability":"mutable","name":"_member","nameLocation":"15617:7:126","nodeType":"VariableDeclaration","scope":73867,"src":"15609:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73784,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73787,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:126","nodeType":"VariableDeclaration","scope":73867,"src":"15626:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73786,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:126"},"returnParameters":{"id":73791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73867,"src":"15673:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73789,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73877,"nodeType":"FunctionDefinition","src":"16313:136:126","nodes":[],"body":{"id":73876,"nodeType":"Block","src":"16409:40:126","nodes":[],"statements":[{"expression":{"id":73874,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73869,"src":"16426:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73873,"id":73875,"nodeType":"Return","src":"16419:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:126","parameters":{"id":73870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73869,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:126","nodeType":"VariableDeclaration","scope":73877,"src":"16351:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73868,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:126"},"returnParameters":{"id":73873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73872,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73877,"src":"16400:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73871,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73971,"nodeType":"FunctionDefinition","src":"16455:802:126","nodes":[],"body":{"id":73970,"nodeType":"Block","src":"16562:695:126","nodes":[],"statements":[{"assignments":[73887],"declarations":[{"constant":false,"id":73887,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:126","nodeType":"VariableDeclaration","scope":73970,"src":"16572:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73886,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73889,"initialValue":{"hexValue":"3138","id":73888,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:126"},{"clauses":[{"block":{"id":73910,"nodeType":"Block","src":"16690:52:126","statements":[{"expression":{"id":73908,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73903,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73887,"src":"16704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73906,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73901,"src":"16722:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73905,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73904,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:126","typeDescriptions":{}}},"id":73907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73909,"nodeType":"ExpressionStatement","src":"16704:27:126"}]},"errorName":"","id":73911,"nodeType":"TryCatchClause","parameters":{"id":73902,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73901,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:126","nodeType":"VariableDeclaration","scope":73911,"src":"16674:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73900,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:126"},"src":"16665:77:126"},{"block":{"id":73918,"nodeType":"Block","src":"16749:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73912,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16763:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"16763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73916,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73917,"nodeType":"ExpressionStatement","src":"16763:36:126"}]},"errorName":"","id":73919,"nodeType":"TryCatchClause","src":"16743:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73893,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16620:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73894,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76149,"src":"16620:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73892,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73891,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:126","typeDescriptions":{}}},"id":73896,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73890,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"16606:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73897,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"16606:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73920,"nodeType":"TryStatement","src":"16602:208:126"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":73924,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":73925,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73881,"src":"16851:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73921,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16819:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16819:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73926,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73927,"nodeType":"ExpressionStatement","src":"16819:49:126"},{"assignments":[73929],"declarations":[{"constant":false,"id":73929,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:126","nodeType":"VariableDeclaration","scope":73970,"src":"16878:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73928,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73936,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73935,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73932,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"16942:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73930,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"16902:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77046,"src":"16902:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73933,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73934,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73881,"src":"16953:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:126"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":73940,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":73941,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73929,"src":"17008:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73937,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16979:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16979:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73943,"nodeType":"ExpressionStatement","src":"16979:43:126"},{"assignments":[73945],"declarations":[{"constant":false,"id":73945,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:126","nodeType":"VariableDeclaration","scope":73970,"src":"17032:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73944,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73954,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73948,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73929,"src":"17067:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73949,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73950,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73887,"src":"17089:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73946,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59177,"src":"17057:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59177_$","typeString":"type(library Math)"}},"id":73947,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58681,"src":"17057:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73953,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:126"},{"assignments":[73956],"declarations":[{"constant":false,"id":73956,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:126","nodeType":"VariableDeclaration","scope":73970,"src":"17107:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73955,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73967,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73959,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"17177:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73962,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":73961,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73960,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:126","typeDescriptions":{}}},"id":73963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73957,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"17134:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":73958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"17134:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73965,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73945,"src":"17203:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:126"},{"expression":{"id":73968,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73956,"src":"17234:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73885,"id":73969,"nodeType":"Return","src":"17227:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:126","parameters":{"id":73882,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73879,"mutability":"mutable","name":"_member","nameLocation":"16495:7:126","nodeType":"VariableDeclaration","scope":73971,"src":"16487:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73878,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73881,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:126","nodeType":"VariableDeclaration","scope":73971,"src":"16504:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73880,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:126"},"returnParameters":{"id":73885,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73884,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73971,"src":"16553:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73883,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73980,"nodeType":"FunctionDefinition","src":"17263:99:126","nodes":[],"body":{"id":73979,"nodeType":"Block","src":"17317:45:126","nodes":[],"statements":[{"expression":{"expression":{"id":73976,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"17334:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73977,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"17334:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73975,"id":73978,"nodeType":"Return","src":"17327:28:126"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:126","parameters":{"id":73972,"nodeType":"ParameterList","parameters":[],"src":"17284:2:126"},"returnParameters":{"id":73975,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73974,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73980,"src":"17308:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73973,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73989,"nodeType":"FunctionDefinition","src":"17368:110:126","nodes":[],"body":{"id":73988,"nodeType":"Block","src":"17443:35:126","nodes":[],"statements":[{"expression":{"id":73986,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73089,"src":"17460:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":73985,"id":73987,"nodeType":"Return","src":"17453:18:126"}]},"baseFunctions":[72800],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:126","parameters":{"id":73981,"nodeType":"ParameterList","parameters":[],"src":"17391:2:126"},"returnParameters":{"id":73985,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73984,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73989,"src":"17415:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73983,"nodeType":"UserDefinedTypeName","pathNode":{"id":73982,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:126","17430:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"17415:26:126"},"referencedDeclaration":72810,"src":"17415:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74000,"nodeType":"FunctionDefinition","src":"17594:226:126","nodes":[],"body":{"id":73999,"nodeType":"Block","src":"17672:148:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73996,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"17737:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73998,"nodeType":"RevertStatement","src":"17730:23:126"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:126","parameters":{"id":73994,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73993,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74000,"src":"17619:39:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":73991,"nodeType":"UserDefinedTypeName","pathNode":{"id":73990,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:126","17634:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"17619:30:126"},"referencedDeclaration":72860,"src":"17619:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":73992,"nodeType":"ArrayTypeName","src":"17619:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:126"},"returnParameters":{"id":73995,"nodeType":"ParameterList","parameters":[],"src":"17672:0:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74056,"nodeType":"FunctionDefinition","src":"17966:551:126","nodes":[],"body":{"id":74055,"nodeType":"Block","src":"18040:477:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74009,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18070:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74008,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73276,"src":"18050:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74010,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74011,"nodeType":"ExpressionStatement","src":"18050:28:126"},{"assignments":[74013],"declarations":[{"constant":false,"id":74013,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:126","nodeType":"VariableDeclaration","scope":74055,"src":"18134:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74012,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74022,"initialValue":{"arguments":[{"id":74016,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18211:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74019,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":74018,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74017,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:126","typeDescriptions":{}}},"id":74020,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74014,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"18165:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76185,"src":"18165:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74021,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:126"},{"condition":{"id":74024,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:126","subExpression":{"id":74023,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74013,"src":"18249:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74029,"nodeType":"IfStatement","src":"18244:78:126","trueBody":{"id":74028,"nodeType":"Block","src":"18274:48:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74025,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"18295:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74027,"nodeType":"RevertStatement","src":"18288:23:126"}]}},{"assignments":[74035],"declarations":[{"constant":false,"id":74035,"mutability":"mutable","name":"pv","nameLocation":"18371:2:126","nodeType":"VariableDeclaration","scope":74055,"src":"18331:42:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74033,"nodeType":"UserDefinedTypeName","pathNode":{"id":74032,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:126","18346:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"18331:30:126"},"referencedDeclaration":72860,"src":"18331:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74034,"nodeType":"ArrayTypeName","src":"18331:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74044,"initialValue":{"arguments":[{"id":74038,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74002,"src":"18387:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74039,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"18395:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74040,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:126","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":72860,"src":"18395:30:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$72860_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74042,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74036,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:126","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74043,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:126"},{"expression":{"arguments":[{"id":74046,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18464:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74047,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74035,"src":"18473:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74045,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74746,"src":"18439:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74048,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74049,"nodeType":"ExpressionStatement","src":"18439:37:126"},{"expression":{"arguments":[{"id":74051,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74004,"src":"18498:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74052,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74035,"src":"18507:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74050,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75033,"src":"18486:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74053,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74054,"nodeType":"ExpressionStatement","src":"18486:24:126"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:126","overrides":{"id":74006,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:126"},"parameters":{"id":74005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74002,"mutability":"mutable","name":"_data","nameLocation":"17998:5:126","nodeType":"VariableDeclaration","scope":74056,"src":"17985:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74001,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74004,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:126","nodeType":"VariableDeclaration","scope":74056,"src":"18005:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74003,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:126"},"returnParameters":{"id":74007,"nodeType":"ParameterList","parameters":[],"src":"18040:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74212,"nodeType":"FunctionDefinition","src":"18773:1756:126","nodes":[],"body":{"id":74211,"nodeType":"Block","src":"18859:1670:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74067,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74061,"src":"18952:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:126","memberName":"length","nodeType":"MemberAccess","src":"18952:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74069,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74075,"nodeType":"IfStatement","src":"18948:76:126","trueBody":{"id":74074,"nodeType":"Block","src":"18971:53:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74071,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72943,"src":"18992:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74073,"nodeType":"RevertStatement","src":"18985:28:126"}]}},{"assignments":[74077],"declarations":[{"constant":false,"id":74077,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:126","nodeType":"VariableDeclaration","scope":74211,"src":"19034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74076,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74085,"initialValue":{"arguments":[{"id":74080,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74061,"src":"19066:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74082,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74081,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:126","typeDescriptions":{}}}],"id":74083,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74078,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74079,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:126","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74088,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74086,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19098:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74087,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74093,"nodeType":"IfStatement","src":"19094:77:126","trueBody":{"id":74092,"nodeType":"Block","src":"19115:56:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74089,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"19136:22:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74090,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74091,"nodeType":"RevertStatement","src":"19129:31:126"}]}},{"assignments":[74098],"declarations":[{"constant":false,"id":74098,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:126","nodeType":"VariableDeclaration","scope":74211,"src":"19180:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74097,"nodeType":"UserDefinedTypeName","pathNode":{"id":74096,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:126","19195:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"19180:23:126"},"referencedDeclaration":72855,"src":"19180:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74102,"initialValue":{"baseExpression":{"id":74099,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"19223:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74101,"indexExpression":{"id":74100,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19233:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":74107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74103,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73086,"src":"19259:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74104,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"19275:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72805,"src":"19275:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72805_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74106,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72803,"src":"19275:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74210,"nodeType":"IfStatement","src":"19255:1208:126","trueBody":{"id":74209,"nodeType":"Block","src":"19312:1151:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74108,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19330:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74109,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"19330:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74110,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19353:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74117,"nodeType":"IfStatement","src":"19326:108:126","trueBody":{"id":74116,"nodeType":"Block","src":"19365:69:126","statements":[{"errorCall":{"arguments":[{"id":74113,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19408:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74112,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"19390:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74114,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74115,"nodeType":"RevertStatement","src":"19383:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74118,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19452:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74119,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19452:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74120,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74130,"nodeType":"IfStatement","src":"19448:152:126","trueBody":{"id":74129,"nodeType":"Block","src":"19491:109:126","statements":[{"errorCall":{"arguments":[{"id":74123,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19536:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74124,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19548:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74125,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19548:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74126,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74122,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72971,"src":"19516:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74127,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74128,"nodeType":"RevertStatement","src":"19509:76:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"id":74136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74131,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19618:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74132,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"19618:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74133,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"19645:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"19645:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74135,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19645:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74142,"nodeType":"IfStatement","src":"19614:138:126","trueBody":{"id":74141,"nodeType":"Block","src":"19683:69:126","statements":[{"errorCall":{"arguments":[{"id":74138,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19726:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74137,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72949,"src":"19708:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74140,"nodeType":"RevertStatement","src":"19701:36:126"}]}},{"assignments":[74144],"declarations":[{"constant":false,"id":74144,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:126","nodeType":"VariableDeclaration","scope":74209,"src":"19766:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74143,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74148,"initialValue":{"arguments":[{"id":74146,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"19816:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74145,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75456,"src":"19791:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:126"},{"assignments":[74150],"declarations":[{"constant":false,"id":74150,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:126","nodeType":"VariableDeclaration","scope":74209,"src":"19841:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74149,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74155,"initialValue":{"arguments":[{"expression":{"id":74152,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19880:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19880:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74151,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"19861:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74156,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74144,"src":"19924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74157,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74150,"src":"19941:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74159,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"19954:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"19954:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74161,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74168,"nodeType":"IfStatement","src":"19920:137:126","trueBody":{"id":74167,"nodeType":"Block","src":"19984:73:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74164,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72961,"src":"20009:31:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74166,"nodeType":"RevertStatement","src":"20002:40:126"}]}},{"assignments":[74173],"declarations":[{"constant":false,"id":74173,"mutability":"mutable","name":"pool","nameLocation":"20089:4:126","nodeType":"VariableDeclaration","scope":74209,"src":"20071:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74172,"nodeType":"UserDefinedTypeName","pathNode":{"id":74171,"name":"IAllo.Pool","nameLocations":["20071:5:126","20077:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:126"},"referencedDeclaration":2319,"src":"20071:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74178,"initialValue":{"arguments":[{"id":74176,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74174,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:126"},{"expression":{"id":74182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74179,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74180,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20145:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20145:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74183,"nodeType":"ExpressionStatement","src":"20131:38:126"},{"expression":{"arguments":[{"expression":{"id":74185,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74173,"src":"20207:4:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74186,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74187,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20219:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"20219:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74189,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20241:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74190,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20241:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74184,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74191,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74192,"nodeType":"ExpressionStatement","src":"20191:75:126"},{"expression":{"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74193,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20297:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74195,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"20297:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74196,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"20323:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":74197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"20323:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:126","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":72827,"src":"20323:38:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74200,"nodeType":"ExpressionStatement","src":"20297:64:126"},{"eventCall":{"arguments":[{"id":74202,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74077,"src":"20393:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74203,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20405:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74204,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"20405:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74205,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74098,"src":"20427:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"20427:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74201,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[72986,2858],"referencedDeclaration":72986,"src":"20381:11:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74208,"nodeType":"EmitStatement","src":"20376:76:126"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:126","overrides":{"id":74065,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:126"},"parameters":{"id":74064,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74059,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74212,"src":"18794:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74057,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74058,"nodeType":"ArrayTypeName","src":"18794:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74061,"mutability":"mutable","name":"_data","nameLocation":"18825:5:126","nodeType":"VariableDeclaration","scope":74212,"src":"18812:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74060,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74063,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74212,"src":"18832:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74062,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:126"},"returnParameters":{"id":74066,"nodeType":"ParameterList","parameters":[],"src":"18859:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74266,"nodeType":"FunctionDefinition","src":"20535:735:126","nodes":[],"body":{"id":74265,"nodeType":"Block","src":"20624:646:126","nodes":[],"statements":[{"assignments":[74223],"declarations":[{"constant":false,"id":74223,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:126","nodeType":"VariableDeclaration","scope":74265,"src":"20634:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74222,"nodeType":"UserDefinedTypeName","pathNode":{"id":74221,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:126","20649:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"20634:23:126"},"referencedDeclaration":72855,"src":"20634:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74227,"initialValue":{"baseExpression":{"id":74224,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"20677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74226,"indexExpression":{"id":74225,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74214,"src":"20687:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:126"},{"assignments":[74229,74231],"declarations":[{"constant":false,"id":74229,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:126","nodeType":"VariableDeclaration","scope":74265,"src":"20784:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74228,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74231,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:126","nodeType":"VariableDeclaration","scope":74265,"src":"20808:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74230,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74237,"initialValue":{"arguments":[{"id":74233,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20877:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74234,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20887:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74235,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"20887:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74232,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"20843:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74238,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"20924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74239,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74241,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74231,"src":"20947:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74251,"nodeType":"IfStatement","src":"20920:110:126","trueBody":{"id":74250,"nodeType":"Block","src":"20965:65:126","statements":[{"expression":{"id":74248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74245,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"20979:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74246,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20996:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"20996:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74249,"nodeType":"ExpressionStatement","src":"20979:40:126"}]}},{"assignments":[74253],"declarations":[{"constant":false,"id":74253,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:126","nodeType":"VariableDeclaration","scope":74265,"src":"21039:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74252,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74258,"initialValue":{"arguments":[{"expression":{"id":74255,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"21078:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74256,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"21078:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74254,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"21059:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74257,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:126"},{"expression":{"id":74263,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74259,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74217,"src":"21220:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74260,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74229,"src":"21236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74261,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74253,"src":"21254:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74264,"nodeType":"ExpressionStatement","src":"21220:43:126"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:126","parameters":{"id":74215,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74214,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:126","nodeType":"VariableDeclaration","scope":74266,"src":"20563:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74213,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:126"},"returnParameters":{"id":74218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74217,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:126","nodeType":"VariableDeclaration","scope":74266,"src":"20604:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74216,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74288,"nodeType":"FunctionDefinition","src":"21560:220:126","nodes":[],"body":{"id":74287,"nodeType":"Block","src":"21651:129:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74280,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74275,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74268,"src":"21711:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74278,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:126","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":74277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74276,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:126","typeDescriptions":{}}},"id":74279,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74283,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74284,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:126","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:126","trueExpression":{"expression":{"id":74281,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74282,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:126","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74274,"id":74286,"nodeType":"Return","src":"21704:69:126"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:126","overrides":{"id":74270,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:126"},"parameters":{"id":74269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74268,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:126","nodeType":"VariableDeclaration","scope":74288,"src":"21589:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74267,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:126"},"returnParameters":{"id":74274,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74273,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74288,"src":"21643:6:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74272,"nodeType":"UserDefinedTypeName","pathNode":{"id":74271,"name":"Status","nameLocations":["21643:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:126"},"referencedDeclaration":2815,"src":"21643:6:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74307,"nodeType":"FunctionDefinition","src":"21909:288:126","nodes":[],"body":{"id":74306,"nodeType":"Block","src":"22019:178:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74303,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"22079:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74305,"nodeType":"RevertStatement","src":"22072:23:126"}]},"baseFunctions":[3687],"documentation":{"id":74289,"nodeType":"StructuredDocumentation","src":"21786:118:126","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:126","overrides":{"id":74297,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:126"},"parameters":{"id":74296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74292,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21929:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74290,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74291,"nodeType":"ArrayTypeName","src":"21929:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21947:14:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74293,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74294,"nodeType":"ArrayTypeName","src":"21947:7:126","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:126"},"returnParameters":{"id":74302,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74301,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74307,"src":"21995:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74299,"nodeType":"UserDefinedTypeName","pathNode":{"id":74298,"name":"PayoutSummary","nameLocations":["21995:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:126"},"referencedDeclaration":2820,"src":"21995:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74300,"nodeType":"ArrayTypeName","src":"21995:15:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74326,"nodeType":"FunctionDefinition","src":"22203:264:126","nodes":[],"body":{"id":74325,"nodeType":"Block","src":"22355:112:126","nodes":[],"statements":[{"expression":{"id":74318,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74311,"src":"22408:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74319,"nodeType":"ExpressionStatement","src":"22408:5:126"},{"expression":{"arguments":[{"id":74321,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74309,"src":"22444:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74322,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74320,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74317,"id":74324,"nodeType":"Return","src":"22423:37:126"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:126","overrides":{"id":74313,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:126"},"parameters":{"id":74312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74309,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:126","nodeType":"VariableDeclaration","scope":74326,"src":"22223:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74308,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74311,"mutability":"mutable","name":"_data","nameLocation":"22258:5:126","nodeType":"VariableDeclaration","scope":74326,"src":"22245:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74310,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:126"},"returnParameters":{"id":74317,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74316,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74326,"src":"22329:20:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74315,"nodeType":"UserDefinedTypeName","pathNode":{"id":74314,"name":"PayoutSummary","nameLocations":["22329:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:126"},"referencedDeclaration":2820,"src":"22329:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74337,"nodeType":"FunctionDefinition","src":"22473:127:126","nodes":[],"body":{"id":74336,"nodeType":"Block","src":"22550:50:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74333,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74328,"src":"22585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74332,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72996,"src":"22565:19:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74335,"nodeType":"EmitStatement","src":"22560:33:126"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:126","overrides":{"id":74330,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:126"},"parameters":{"id":74329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74328,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:126","nodeType":"VariableDeclaration","scope":74337,"src":"22507:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74327,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:126"},"returnParameters":{"id":74331,"nodeType":"ParameterList","parameters":[],"src":"22550:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74356,"nodeType":"FunctionDefinition","src":"22695:191:126","nodes":[],"body":{"id":74355,"nodeType":"Block","src":"22780:106:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74345,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74339,"src":"22840:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:126","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":74347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74346,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:126","typeDescriptions":{}}},"id":74349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74352,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:126","trueExpression":{"hexValue":"66616c7365","id":74351,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74344,"id":74354,"nodeType":"Return","src":"22833:46:126"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:126","overrides":{"id":74341,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:126"},"parameters":{"id":74340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74339,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:126","nodeType":"VariableDeclaration","scope":74356,"src":"22722:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74338,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:126"},"returnParameters":{"id":74344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74356,"src":"22774:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74342,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74366,"nodeType":"FunctionDefinition","src":"22892:86:126","nodes":[],"body":{"id":74365,"nodeType":"Block","src":"22938:40:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74362,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74358,"src":"22963:7:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74361,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74364,"nodeType":"ExpressionStatement","src":"22948:23:126"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:126","parameters":{"id":74359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74358,"mutability":"mutable","name":"_active","nameLocation":"22920:7:126","nodeType":"VariableDeclaration","scope":74366,"src":"22915:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74357,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:126"},"returnParameters":{"id":74360,"nodeType":"ParameterList","parameters":[],"src":"22938:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74444,"nodeType":"FunctionDefinition","src":"22984:729:126","nodes":[],"body":{"id":74443,"nodeType":"Block","src":"23028:685:126","nodes":[],"statements":[{"assignments":[74375],"declarations":[{"constant":false,"id":74375,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:126","nodeType":"VariableDeclaration","scope":74443,"src":"23086:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74373,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74374,"nodeType":"ArrayTypeName","src":"23086:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74379,"initialValue":{"baseExpression":{"id":74376,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"23118:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74378,"indexExpression":{"id":74377,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23139:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:126"},{"body":{"id":74441,"nodeType":"Block","src":"23207:500:126","statements":[{"assignments":[74392],"declarations":[{"constant":false,"id":74392,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:126","nodeType":"VariableDeclaration","scope":74441,"src":"23221:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74391,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74396,"initialValue":{"baseExpression":{"id":74393,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74375,"src":"23242:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74395,"indexExpression":{"id":74394,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23255:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:126"},{"assignments":[74401],"declarations":[{"constant":false,"id":74401,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:126","nodeType":"VariableDeclaration","scope":74441,"src":"23271:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74400,"nodeType":"UserDefinedTypeName","pathNode":{"id":74399,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:126","23286:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"23271:23:126"},"referencedDeclaration":72855,"src":"23271:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74405,"initialValue":{"baseExpression":{"id":74402,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"23314:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74404,"indexExpression":{"id":74403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74392,"src":"23324:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:126"},{"condition":{"arguments":[{"id":74407,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74392,"src":"23368:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74406,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"23353:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74440,"nodeType":"IfStatement","src":"23349:348:126","trueBody":{"id":74439,"nodeType":"Block","src":"23381:316:126","statements":[{"assignments":[74410],"declarations":[{"constant":false,"id":74410,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:126","nodeType":"VariableDeclaration","scope":74439,"src":"23399:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74409,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74415,"initialValue":{"baseExpression":{"expression":{"id":74411,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23422:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74412,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"23422:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74414,"indexExpression":{"id":74413,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:126"},{"expression":{"id":74422,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23475:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74419,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"23475:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74420,"indexExpression":{"id":74418,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74368,"src":"23502:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74421,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74423,"nodeType":"ExpressionStatement","src":"23475:39:126"},{"expression":{"id":74428,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23532:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"23532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74427,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23557:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74429,"nodeType":"ExpressionStatement","src":"23532:37:126"},{"expression":{"id":74432,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74430,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"23587:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74431,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23602:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74433,"nodeType":"ExpressionStatement","src":"23587:27:126"},{"expression":{"arguments":[{"id":74435,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74401,"src":"23659:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74436,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74410,"src":"23669:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74434,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"23632:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74437,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74438,"nodeType":"ExpressionStatement","src":"23632:50:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74384,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74385,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74375,"src":"23181:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:126","memberName":"length","nodeType":"MemberAccess","src":"23181:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74442,"initializationExpression":{"assignments":[74381],"declarations":[{"constant":false,"id":74381,"mutability":"mutable","name":"i","nameLocation":"23170:1:126","nodeType":"VariableDeclaration","scope":74442,"src":"23162:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74380,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74383,"initialValue":{"hexValue":"30","id":74382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:126"},"loopExpression":{"expression":{"id":74389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:126","subExpression":{"id":74388,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74381,"src":"23202:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74390,"nodeType":"ExpressionStatement","src":"23202:3:126"},"nodeType":"ForStatement","src":"23157:550:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:126","parameters":{"id":74369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74368,"mutability":"mutable","name":"_member","nameLocation":"23010:7:126","nodeType":"VariableDeclaration","scope":74444,"src":"23002:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74367,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:126"},"returnParameters":{"id":74370,"nodeType":"ParameterList","parameters":[],"src":"23028:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74518,"nodeType":"FunctionDefinition","src":"24275:1038:126","nodes":[],"body":{"id":74517,"nodeType":"Block","src":"24744:569:126","nodes":[],"statements":[{"assignments":[74475],"declarations":[{"constant":false,"id":74475,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:126","nodeType":"VariableDeclaration","scope":74517,"src":"24754:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74474,"nodeType":"UserDefinedTypeName","pathNode":{"id":74473,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:126","24769:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"24754:23:126"},"referencedDeclaration":72855,"src":"24754:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74479,"initialValue":{"baseExpression":{"id":74476,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"24797:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74478,"indexExpression":{"id":74477,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74447,"src":"24807:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:126"},{"expression":{"id":74491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74480,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24830:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74481,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24842:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74482,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24842:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74483,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24897:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24897:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74486,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75212,"src":"24878:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74489,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:126","trueExpression":{"hexValue":"30","id":74485,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74492,"nodeType":"ExpressionStatement","src":"24830:92:126"},{"expression":{"components":[{"expression":{"id":74493,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24953:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"24953:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74495,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"24985:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72838,"src":"24985:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25019:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72842,"src":"25019:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74499,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25056:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"25056:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74501,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25094:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74502,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"25094:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74503,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25129:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74504,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"25129:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74505,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25166:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74506,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"25166:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74507,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25198:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74508,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"25198:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74509,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74510,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74475,"src":"25258:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74511,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"25258:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74514,"indexExpression":{"expression":{"id":74512,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74513,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:126","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74515,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$72828_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74470,"id":74516,"nodeType":"Return","src":"24932:374:126"}]},"documentation":{"id":74445,"nodeType":"StructuredDocumentation","src":"23719:551:126","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:126","parameters":{"id":74448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74447,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:126","nodeType":"VariableDeclaration","scope":74518,"src":"24296:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74446,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:126"},"returnParameters":{"id":74470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74450,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24377:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74449,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74452,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:126","nodeType":"VariableDeclaration","scope":74518,"src":"24408:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74451,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74454,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24441:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74453,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74456,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:126","nodeType":"VariableDeclaration","scope":74518,"src":"24477:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74455,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74458,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:126","nodeType":"VariableDeclaration","scope":74518,"src":"24514:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74457,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74461,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24548:44:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74460,"nodeType":"UserDefinedTypeName","pathNode":{"id":74459,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:126","24563:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72828,"src":"24548:29:126"},"referencedDeclaration":72828,"src":"24548:29:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74463,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24606:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74462,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74465,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:126","nodeType":"VariableDeclaration","scope":74518,"src":"24637:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74464,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74467,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:126","nodeType":"VariableDeclaration","scope":74518,"src":"24673:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74466,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74469,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:126","nodeType":"VariableDeclaration","scope":74518,"src":"24704:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74468,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74539,"nodeType":"FunctionDefinition","src":"25319:198:126","nodes":[],"body":{"id":74538,"nodeType":"Block","src":"25401:116:126","nodes":[],"statements":[{"assignments":[74530],"declarations":[{"constant":false,"id":74530,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:126","nodeType":"VariableDeclaration","scope":74538,"src":"25411:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74529,"nodeType":"UserDefinedTypeName","pathNode":{"id":74528,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:126","25426:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"25411:23:126"},"referencedDeclaration":72855,"src":"25411:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74534,"initialValue":{"baseExpression":{"id":74531,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"25454:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74533,"indexExpression":{"id":74532,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74520,"src":"25464:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:126"},{"expression":{"expression":{"id":74535,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74530,"src":"25493:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74536,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"25493:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74525,"id":74537,"nodeType":"Return","src":"25486:24:126"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:126","parameters":{"id":74521,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74520,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:126","nodeType":"VariableDeclaration","scope":74539,"src":"25340:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74519,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:126"},"returnParameters":{"id":74525,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74524,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74539,"src":"25384:15:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74523,"nodeType":"UserDefinedTypeName","pathNode":{"id":74522,"name":"Metadata","nameLocations":["25384:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:126"},"referencedDeclaration":3098,"src":"25384:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74555,"nodeType":"FunctionDefinition","src":"25718:176:126","nodes":[],"body":{"id":74554,"nodeType":"Block","src":"25818:76:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74550,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74542,"src":"25867:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74551,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74544,"src":"25880:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74549,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74597,"src":"25835:31:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74548,"id":74553,"nodeType":"Return","src":"25828:59:126"}]},"documentation":{"id":74540,"nodeType":"StructuredDocumentation","src":"25523:190:126","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:126","parameters":{"id":74545,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74542,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:126","nodeType":"VariableDeclaration","scope":74555,"src":"25749:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74541,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74544,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:126","nodeType":"VariableDeclaration","scope":74555,"src":"25770:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74543,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:126"},"returnParameters":{"id":74548,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74547,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74555,"src":"25809:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74546,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74568,"nodeType":"FunctionDefinition","src":"25900:145:126","nodes":[],"body":{"id":74567,"nodeType":"Block","src":"25986:59:126","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74562,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26003:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74564,"indexExpression":{"id":74563,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74557,"src":"26013:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74565,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"26003:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74561,"id":74566,"nodeType":"Return","src":"25996:42:126"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:126","parameters":{"id":74558,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74557,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:126","nodeType":"VariableDeclaration","scope":74568,"src":"25933:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74556,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:126"},"returnParameters":{"id":74561,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74560,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74568,"src":"25977:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74559,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74580,"nodeType":"FunctionDefinition","src":"26114:127:126","nodes":[],"body":{"id":74579,"nodeType":"Block","src":"26191:50:126","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74575,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"26208:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74577,"indexExpression":{"id":74576,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74570,"src":"26227:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74574,"id":74578,"nodeType":"Return","src":"26201:33:126"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:126","parameters":{"id":74571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74570,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:126","nodeType":"VariableDeclaration","scope":74580,"src":"26145:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74569,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:126"},"returnParameters":{"id":74574,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74573,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74580,"src":"26182:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74572,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74597,"nodeType":"FunctionDefinition","src":"26247:182:126","nodes":[],"body":{"id":74596,"nodeType":"Block","src":"26357:72:126","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74589,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26374:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74591,"indexExpression":{"id":74590,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74582,"src":"26384:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74592,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"26374:40:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74594,"indexExpression":{"id":74593,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74584,"src":"26415:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74588,"id":74595,"nodeType":"Return","src":"26367:55:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:126","parameters":{"id":74585,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74582,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:126","nodeType":"VariableDeclaration","scope":74597,"src":"26288:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74581,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74584,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:126","nodeType":"VariableDeclaration","scope":74597,"src":"26309:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74583,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:126"},"returnParameters":{"id":74588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74587,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74597,"src":"26348:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74586,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74607,"nodeType":"FunctionDefinition","src":"26435:145:126","nodes":[],"body":{"id":74606,"nodeType":"Block","src":"26499:81:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74602,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"26516:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:126","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77489,"src":"26516:38:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74604,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74601,"id":74605,"nodeType":"Return","src":"26509:47:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:126","parameters":{"id":74598,"nodeType":"ParameterList","parameters":[],"src":"26464:2:126"},"returnParameters":{"id":74601,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74600,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74607,"src":"26490:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74599,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74632,"nodeType":"FunctionDefinition","src":"26586:185:126","nodes":[],"body":{"id":74631,"nodeType":"Block","src":"26660:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74629,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74614,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74616,"indexExpression":{"id":74615,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"26687:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74617,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"26677:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74628,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74620,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"26718:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74622,"indexExpression":{"id":74621,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74609,"src":"26728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74623,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72840,"src":"26718:32:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74626,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:126","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":74625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74624,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:126","typeDescriptions":{}}},"id":74627,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74613,"id":74630,"nodeType":"Return","src":"26670:94:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:126","parameters":{"id":74610,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74609,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:126","nodeType":"VariableDeclaration","scope":74632,"src":"26610:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74608,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:126"},"returnParameters":{"id":74613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74612,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74632,"src":"26654:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74611,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74650,"nodeType":"FunctionDefinition","src":"26777:174:126","nodes":[],"body":{"id":74649,"nodeType":"Block","src":"26872:79:126","nodes":[],"statements":[{"expression":{"id":74647,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74639,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74637,"src":"26882:14:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74642,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74640,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"26899:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74641,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74643,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74634,"src":"26924:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74644,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"26943:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74648,"nodeType":"ExpressionStatement","src":"26882:62:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:126","parameters":{"id":74635,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74634,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:126","nodeType":"VariableDeclaration","scope":74650,"src":"26802:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74633,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:126"},"returnParameters":{"id":74638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74637,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:126","nodeType":"VariableDeclaration","scope":74650,"src":"26851:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74636,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74746,"nodeType":"FunctionDefinition","src":"26957:1548:126","nodes":[],"body":{"id":74745,"nodeType":"Block","src":"27087:1418:126","nodes":[],"statements":[{"assignments":[74660],"declarations":[{"constant":false,"id":74660,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:126","nodeType":"VariableDeclaration","scope":74745,"src":"27097:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74659,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74662,"initialValue":{"hexValue":"30","id":74661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:126"},{"body":{"id":74707,"nodeType":"Block","src":"27187:576:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74674,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27260:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74676,"indexExpression":{"id":74675,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27277:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74677,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"27260:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74678,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74682,"nodeType":"IfStatement","src":"27256:187:126","trueBody":{"id":74681,"nodeType":"Block","src":"27297:146:126","statements":[{"id":74680,"nodeType":"Continue","src":"27420:8:126"}]}},{"assignments":[74684],"declarations":[{"constant":false,"id":74684,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:126","nodeType":"VariableDeclaration","scope":74707,"src":"27456:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74683,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74689,"initialValue":{"expression":{"baseExpression":{"id":74685,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27477:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74687,"indexExpression":{"id":74686,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27494:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74688,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"27477:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:126"},{"condition":{"id":74693,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:126","subExpression":{"arguments":[{"id":74691,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74684,"src":"27541:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74690,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74632,"src":"27526:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74692,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74699,"nodeType":"IfStatement","src":"27521:167:126","trueBody":{"id":74698,"nodeType":"Block","src":"27554:134:126","statements":[{"errorCall":{"arguments":[{"id":74695,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74684,"src":"27597:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74694,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"27579:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74696,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74697,"nodeType":"RevertStatement","src":"27572:36:126"}]}},{"expression":{"id":74705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74700,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74660,"src":"27701:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74701,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27720:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74703,"indexExpression":{"id":74702,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27737:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74704,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72859,"src":"27720:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74706,"nodeType":"ExpressionStatement","src":"27701:51:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74670,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27153:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74668,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27157:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:126","memberName":"length","nodeType":"MemberAccess","src":"27157:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74708,"initializationExpression":{"assignments":[74664],"declarations":[{"constant":false,"id":74664,"mutability":"mutable","name":"i","nameLocation":"27146:1:126","nodeType":"VariableDeclaration","scope":74708,"src":"27138:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74663,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74666,"initialValue":{"hexValue":"30","id":74665,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:126"},"loopExpression":{"expression":{"id":74672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:126","subExpression":{"id":74671,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74664,"src":"27182:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74673,"nodeType":"ExpressionStatement","src":"27182:3:126"},"nodeType":"ForStatement","src":"27133:630:126"},{"assignments":[74710],"declarations":[{"constant":false,"id":74710,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:126","nodeType":"VariableDeclaration","scope":74745,"src":"27859:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74709,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74717,"initialValue":{"arguments":[{"arguments":[{"id":74713,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27925:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74712,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74580,"src":"27903:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74715,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74660,"src":"27935:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74711,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"27891:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74716,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:126"},{"assignments":[74719],"declarations":[{"constant":false,"id":74719,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:126","nodeType":"VariableDeclaration","scope":74745,"src":"28033:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74718,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74728,"initialValue":{"arguments":[{"id":74722,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"28105:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74725,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}],"id":74724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74723,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:126","typeDescriptions":{}}},"id":74726,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74720,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"28062:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":74721,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77033,"src":"28062:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74731,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74729,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28294:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74730,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74719,"src":"28318:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74738,"nodeType":"IfStatement","src":"28290:147:126","trueBody":{"id":74737,"nodeType":"Block","src":"28338:99:126","statements":[{"errorCall":{"arguments":[{"id":74733,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28384:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74734,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74719,"src":"28407:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74732,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"28359:24:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74736,"nodeType":"RevertStatement","src":"28352:74:126"}]}},{"expression":{"id":74743,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74739,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73104,"src":"28447:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74741,"indexExpression":{"id":74740,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"28466:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74742,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74710,"src":"28477:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74744,"nodeType":"ExpressionStatement","src":"28447:51:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:126","parameters":{"id":74657,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74652,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:126","nodeType":"VariableDeclaration","scope":74746,"src":"26991:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74651,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74656,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:126","nodeType":"VariableDeclaration","scope":74746,"src":"27008:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74654,"nodeType":"UserDefinedTypeName","pathNode":{"id":74653,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:126","27023:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"27008:30:126"},"referencedDeclaration":72860,"src":"27008:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74655,"nodeType":"ArrayTypeName","src":"27008:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:126"},"returnParameters":{"id":74658,"nodeType":"ParameterList","parameters":[],"src":"27087:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75033,"nodeType":"FunctionDefinition","src":"28511:3479:126","nodes":[],"body":{"id":75032,"nodeType":"Block","src":"28616:3374:126","nodes":[],"statements":[{"assignments":[74759],"declarations":[{"constant":false,"id":74759,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:126","nodeType":"VariableDeclaration","scope":75032,"src":"28626:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74757,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74758,"nodeType":"ArrayTypeName","src":"28626:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74760,"nodeType":"VariableDeclarationStatement","src":"28626:29:126"},{"body":{"id":75030,"nodeType":"Block","src":"28719:3265:126","statements":[{"assignments":[74773],"declarations":[{"constant":false,"id":74773,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:126","nodeType":"VariableDeclaration","scope":75030,"src":"28733:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74772,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74778,"initialValue":{"expression":{"baseExpression":{"id":74774,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"28754:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74776,"indexExpression":{"id":74775,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28771:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74777,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72857,"src":"28754:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74779,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28857:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:126","memberName":"length","nodeType":"MemberAccess","src":"28857:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74781,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74881,"nodeType":"Block","src":"29009:764:126","statements":[{"assignments":[74799],"declarations":[{"constant":false,"id":74799,"mutability":"mutable","name":"exist","nameLocation":"29032:5:126","nodeType":"VariableDeclaration","scope":74881,"src":"29027:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74798,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74801,"initialValue":{"hexValue":"66616c7365","id":74800,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:126"},{"body":{"id":74829,"nodeType":"Block","src":"29113:268:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74817,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":74813,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29164:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74815,"indexExpression":{"id":74814,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":74816,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29183:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74828,"nodeType":"IfStatement","src":"29160:203:126","trueBody":{"id":74827,"nodeType":"Block","src":"29195:168:126","statements":[{"expression":{"id":74820,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74818,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"29221:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74819,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74821,"nodeType":"ExpressionStatement","src":"29221:12:126"},{"errorCall":{"arguments":[{"id":74823,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29292:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74824,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29304:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74822,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72959,"src":"29266:25:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74826,"nodeType":"RevertStatement","src":"29259:47:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74806,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29083:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74807,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29087:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:126","memberName":"length","nodeType":"MemberAccess","src":"29087:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74830,"initializationExpression":{"assignments":[74803],"declarations":[{"constant":false,"id":74803,"mutability":"mutable","name":"j","nameLocation":"29076:1:126","nodeType":"VariableDeclaration","scope":74830,"src":"29068:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74802,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74805,"initialValue":{"hexValue":"30","id":74804,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:126"},"loopExpression":{"expression":{"id":74811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:126","subExpression":{"id":74810,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74803,"src":"29108:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74812,"nodeType":"ExpressionStatement","src":"29108:3:126"},"nodeType":"ForStatement","src":"29063:318:126"},{"condition":{"id":74832,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:126","subExpression":{"id":74831,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74799,"src":"29403:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74880,"nodeType":"IfStatement","src":"29398:361:126","trueBody":{"id":74879,"nodeType":"Block","src":"29410:349:126","statements":[{"assignments":[74837],"declarations":[{"constant":false,"id":74837,"mutability":"mutable","name":"temp","nameLocation":"29449:4:126","nodeType":"VariableDeclaration","scope":74879,"src":"29432:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74835,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74836,"nodeType":"ArrayTypeName","src":"29432:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74846,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74844,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74841,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29470:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:126","memberName":"length","nodeType":"MemberAccess","src":"29470:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":74843,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74840,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74838,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74839,"nodeType":"ArrayTypeName","src":"29460:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74845,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:126"},{"body":{"id":74866,"nodeType":"Block","src":"29566:74:126","statements":[{"expression":{"id":74864,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74858,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29592:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74860,"indexExpression":{"id":74859,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29597:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":74861,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29602:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74863,"indexExpression":{"id":74862,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29615:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74865,"nodeType":"ExpressionStatement","src":"29592:25:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74851,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29536:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74852,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29540:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74853,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:126","memberName":"length","nodeType":"MemberAccess","src":"29540:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74867,"initializationExpression":{"assignments":[74848],"declarations":[{"constant":false,"id":74848,"mutability":"mutable","name":"j","nameLocation":"29529:1:126","nodeType":"VariableDeclaration","scope":74867,"src":"29521:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74847,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74850,"initialValue":{"hexValue":"30","id":74849,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:126"},"loopExpression":{"expression":{"id":74856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:126","subExpression":{"id":74855,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74848,"src":"29561:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74857,"nodeType":"ExpressionStatement","src":"29561:3:126"},"nodeType":"ForStatement","src":"29516:124:126"},{"expression":{"id":74873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74868,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29661:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74871,"indexExpression":{"expression":{"id":74869,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29666:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74870,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:126","memberName":"length","nodeType":"MemberAccess","src":"29666:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74872,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29689:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74874,"nodeType":"ExpressionStatement","src":"29661:38:126"},{"expression":{"id":74877,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74875,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"29721:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74876,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74837,"src":"29736:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74878,"nodeType":"ExpressionStatement","src":"29721:19:126"}]}}]},"id":74882,"nodeType":"IfStatement","src":"28853:920:126","trueBody":{"id":74797,"nodeType":"Block","src":"28883:120:126","statements":[{"expression":{"id":74789,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74783,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28901:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":74787,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:126","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":74786,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74784,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74785,"nodeType":"ArrayTypeName","src":"28920:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74788,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74790,"nodeType":"ExpressionStatement","src":"28901:31:126"},{"expression":{"id":74795,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74791,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74759,"src":"28950:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74793,"indexExpression":{"hexValue":"30","id":74792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74794,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"28968:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74796,"nodeType":"ExpressionStatement","src":"28950:28:126"}]}},{"assignments":[74884],"declarations":[{"constant":false,"id":74884,"mutability":"mutable","name":"delta","nameLocation":"29793:5:126","nodeType":"VariableDeclaration","scope":75030,"src":"29786:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74883,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74889,"initialValue":{"expression":{"baseExpression":{"id":74885,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"29801:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74887,"indexExpression":{"id":74886,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"29818:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74888,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72859,"src":"29801:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:126"},{"assignments":[74894],"declarations":[{"constant":false,"id":74894,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:126","nodeType":"VariableDeclaration","scope":75030,"src":"29848:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74893,"nodeType":"UserDefinedTypeName","pathNode":{"id":74892,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:126","29863:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"29848:23:126"},"referencedDeclaration":72855,"src":"29848:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74898,"initialValue":{"baseExpression":{"id":74895,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"29891:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74897,"indexExpression":{"id":74896,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"29901:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:126"},{"assignments":[74900],"declarations":[{"constant":false,"id":74900,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:126","nodeType":"VariableDeclaration","scope":75030,"src":"30014:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74899,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74905,"initialValue":{"baseExpression":{"expression":{"id":74901,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30045:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74902,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"30045:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74904,"indexExpression":{"id":74903,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30072:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:126"},{"assignments":[74907],"declarations":[{"constant":false,"id":74907,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:126","nodeType":"VariableDeclaration","scope":75030,"src":"30245:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74906,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74912,"initialValue":{"arguments":[{"id":74909,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"30280:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74910,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74884,"src":"30302:5:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74908,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75068,"src":"30268:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:126"},{"expression":{"id":74919,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74913,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30443:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74916,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"30443:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74917,"indexExpression":{"id":74915,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30470:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74918,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"30481:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74920,"nodeType":"ExpressionStatement","src":"30443:50:126"},{"assignments":[74922],"declarations":[{"constant":false,"id":74922,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:126","nodeType":"VariableDeclaration","scope":75030,"src":"30727:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74921,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74924,"initialValue":{"hexValue":"66616c7365","id":74923,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:126"},{"body":{"id":74953,"nodeType":"Block","src":"30832:179:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74945,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":74938,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"30854:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74940,"indexExpression":{"id":74939,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30875:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74942,"indexExpression":{"id":74941,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30884:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":74943,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"30890:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74944,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"30890:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74952,"nodeType":"IfStatement","src":"30850:147:126","trueBody":{"id":74951,"nodeType":"Block","src":"30911:86:126","statements":[{"expression":{"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74946,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74922,"src":"30933:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74947,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74949,"nodeType":"ExpressionStatement","src":"30933:18:126"},{"id":74950,"nodeType":"Break","src":"30973:5:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74934,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74929,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30785:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":74930,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"30789:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74932,"indexExpression":{"id":74931,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"30810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74933,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:126","memberName":"length","nodeType":"MemberAccess","src":"30789:36:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74954,"initializationExpression":{"assignments":[74926],"declarations":[{"constant":false,"id":74926,"mutability":"mutable","name":"k","nameLocation":"30778:1:126","nodeType":"VariableDeclaration","scope":74954,"src":"30770:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74925,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74928,"initialValue":{"hexValue":"30","id":74927,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:126"},"loopExpression":{"expression":{"id":74936,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:126","subExpression":{"id":74935,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74926,"src":"30827:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74937,"nodeType":"ExpressionStatement","src":"30827:3:126"},"nodeType":"ForStatement","src":"30765:246:126"},{"condition":{"id":74956,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:126","subExpression":{"id":74955,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74922,"src":"31029:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74966,"nodeType":"IfStatement","src":"31024:106:126","trueBody":{"id":74965,"nodeType":"Block","src":"31042:88:126","statements":[{"expression":{"arguments":[{"expression":{"id":74961,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31095:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"31095:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":74957,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73109,"src":"31060:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74959,"indexExpression":{"id":74958,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"31081:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:126","memberName":"push","nodeType":"MemberAccess","src":"31060:34:126","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":74963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74964,"nodeType":"ExpressionStatement","src":"31060:55:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74969,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74967,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31285:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":74968,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31309:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74999,"nodeType":"Block","src":"31490:161:126","statements":[{"expression":{"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74985,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"31508:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31523:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74987,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31546:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74990,"nodeType":"ExpressionStatement","src":"31508:50:126"},{"expression":{"id":74997,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74991,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31576:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74993,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31576:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74994,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31601:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74995,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31624:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74998,"nodeType":"ExpressionStatement","src":"31576:60:126"}]},"id":75000,"nodeType":"IfStatement","src":"31281:370:126","trueBody":{"id":74984,"nodeType":"Block","src":"31323:161:126","statements":[{"expression":{"id":74974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74970,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73076,"src":"31341:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74971,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31356:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74972,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31371:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74975,"nodeType":"ExpressionStatement","src":"31341:50:126"},{"expression":{"id":74982,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74976,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31409:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74978,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31409:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74979,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31434:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74980,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31449:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74983,"nodeType":"ExpressionStatement","src":"31409:60:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75001,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31668:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75002,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"31668:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75003,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75028,"nodeType":"Block","src":"31765:209:126","statements":[{"expression":{"arguments":[{"id":75014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31810:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75015,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74900,"src":"31820:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75013,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"31783:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75016,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75017,"nodeType":"ExpressionStatement","src":"31783:58:126"},{"eventCall":{"arguments":[{"id":75019,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74748,"src":"31877:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75020,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74773,"src":"31886:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75021,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74907,"src":"31898:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75022,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31912:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75023,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"31912:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75024,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31935:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75025,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31935:23:126","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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75018,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73024,"src":"31864:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75026,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75027,"nodeType":"EmitStatement","src":"31859:100:126"}]},"id":75029,"nodeType":"IfStatement","src":"31664:310:126","trueBody":{"id":75012,"nodeType":"Block","src":"31693:66:126","statements":[{"expression":{"id":75010,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75005,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74894,"src":"31711:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"31711:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75008,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:126","memberName":"number","nodeType":"MemberAccess","src":"31732:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75011,"nodeType":"ExpressionStatement","src":"31711:33:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74768,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74765,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28685:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74766,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74752,"src":"28689:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:126","memberName":"length","nodeType":"MemberAccess","src":"28689:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75031,"initializationExpression":{"assignments":[74762],"declarations":[{"constant":false,"id":74762,"mutability":"mutable","name":"i","nameLocation":"28678:1:126","nodeType":"VariableDeclaration","scope":75031,"src":"28670:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74761,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74764,"initialValue":{"hexValue":"30","id":74763,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:126"},"loopExpression":{"expression":{"id":74770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:126","subExpression":{"id":74769,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74762,"src":"28714:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74771,"nodeType":"ExpressionStatement","src":"28714:3:126"},"nodeType":"ForStatement","src":"28665:3319:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:126","parameters":{"id":74753,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74748,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:126","nodeType":"VariableDeclaration","scope":75033,"src":"28532:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74747,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74752,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:126","nodeType":"VariableDeclaration","scope":75033,"src":"28549:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74750,"nodeType":"UserDefinedTypeName","pathNode":{"id":74749,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:126","28564:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"28549:30:126"},"referencedDeclaration":72860,"src":"28549:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72860_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74751,"nodeType":"ArrayTypeName","src":"28549:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72860_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:126"},"returnParameters":{"id":74754,"nodeType":"ParameterList","parameters":[],"src":"28616:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75068,"nodeType":"FunctionDefinition","src":"31996:276:126","nodes":[],"body":{"id":75067,"nodeType":"Block","src":"32082:190:126","nodes":[],"statements":[{"assignments":[75043],"declarations":[{"constant":false,"id":75043,"mutability":"mutable","name":"result","nameLocation":"32099:6:126","nodeType":"VariableDeclaration","scope":75067,"src":"32092:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75042,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75050,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75049,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75046,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32115:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75045,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75044,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:126","typeDescriptions":{}}},"id":75047,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75048,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75037,"src":"32127:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:126"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75051,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32148:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75052,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75061,"nodeType":"IfStatement","src":"32144:90:126","trueBody":{"id":75060,"nodeType":"Block","src":"32160:74:126","statements":[{"errorCall":{"arguments":[{"id":75055,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32198:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75056,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75037,"src":"32208:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75057,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32216:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75054,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72931,"src":"32181:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75059,"nodeType":"RevertStatement","src":"32174:49:126"}]}},{"expression":{"arguments":[{"id":75064,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75043,"src":"32258:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75063,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75062,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:126","typeDescriptions":{}}},"id":75065,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75041,"id":75066,"nodeType":"Return","src":"32243:22:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:126","parameters":{"id":75038,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75035,"mutability":"mutable","name":"_support","nameLocation":"32025:8:126","nodeType":"VariableDeclaration","scope":75068,"src":"32017:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75034,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75037,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:126","nodeType":"VariableDeclaration","scope":75068,"src":"32035:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75036,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:126"},"returnParameters":{"id":75041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75040,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75068,"src":"32073:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75039,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75124,"nodeType":"FunctionDefinition","src":"32689:1145:126","nodes":[],"body":{"id":75123,"nodeType":"Block","src":"32836:998:126","nodes":[],"statements":[{"assignments":[75081],"declarations":[{"constant":false,"id":75081,"mutability":"mutable","name":"t","nameLocation":"32854:1:126","nodeType":"VariableDeclaration","scope":75123,"src":"32846:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75080,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75083,"initialValue":{"id":75082,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75071,"src":"32858:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:126"},{"assignments":[75085],"declarations":[{"constant":false,"id":75085,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:126","nodeType":"VariableDeclaration","scope":75123,"src":"33184:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75084,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75095,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75089,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75087,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"33210:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75088,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75090,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75091,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33226:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75093,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75081,"src":"33229:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75086,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75312,"src":"33204:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75121,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75118,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75115,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75098,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75096,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"33727:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75097,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75073,"src":"33739:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75099,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75102,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75100,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75075,"src":"33754:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75101,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33767:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75103,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"33772:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75104,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75085,"src":"33782:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75111,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75109,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"33797:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75110,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"33801:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75112,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75114,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75116,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75117,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33812:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75119,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75120,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75079,"id":75122,"nodeType":"Return","src":"33717:110:126"}]},"documentation":{"id":75069,"nodeType":"StructuredDocumentation","src":"32278:406:126","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:126","parameters":{"id":75076,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75071,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:126","nodeType":"VariableDeclaration","scope":75124,"src":"32718:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75070,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75073,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:126","nodeType":"VariableDeclaration","scope":75124,"src":"32739:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75072,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75075,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:126","nodeType":"VariableDeclaration","scope":75124,"src":"32758:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75074,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:126"},"returnParameters":{"id":75079,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75078,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75124,"src":"32823:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75077,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75212,"nodeType":"FunctionDefinition","src":"34415:1482:126","nodes":[],"body":{"id":75211,"nodeType":"Block","src":"34510:1387:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75132,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75133,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75139,"nodeType":"IfStatement","src":"34640:66:126","trueBody":{"id":75138,"nodeType":"Block","src":"34661:45:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"34682:11:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75137,"nodeType":"RevertStatement","src":"34675:20:126"}]}},{"condition":{"arguments":[{"id":75141,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75127,"src":"35162:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75140,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74650,"src":"35146:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75147,"nodeType":"IfStatement","src":"35142:91:126","trueBody":{"id":75146,"nodeType":"Block","src":"35181:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75143,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72917,"src":"35202:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75145,"nodeType":"RevertStatement","src":"35195:27:126"}]}},{"assignments":[75149],"declarations":[{"constant":false,"id":75149,"mutability":"mutable","name":"denom","nameLocation":"35389:5:126","nodeType":"VariableDeclaration","scope":75211,"src":"35381:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75148,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75167,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"35398:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75156,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35420:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75158,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75127,"src":"35425:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75163,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75164,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:126"},{"expression":{"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75168,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35475:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75196,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75183,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75171,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75169,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"35507:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75170,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75172,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75173,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35524:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75175,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75181,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75176,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75149,"src":"35531:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75177,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75149,"src":"35539:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75180,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75182,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75184,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75185,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35556:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75187,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75188,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"35562:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75189,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"35566:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75191,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75193,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75194,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75320,"src":"35576:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75197,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75201,"nodeType":"ExpressionStatement","src":"35475:145:126"},{"expression":{"id":75209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75202,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35810:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75203,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35823:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75204,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"35836:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75207,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"35871:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75208,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:126","trueExpression":{"id":75206,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75130,"src":"35858:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75210,"nodeType":"ExpressionStatement","src":"35810:80:126"}]},"documentation":{"id":75125,"nodeType":"StructuredDocumentation","src":"33840:570:126","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:126","parameters":{"id":75128,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75127,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:126","nodeType":"VariableDeclaration","scope":75212,"src":"34443:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75126,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:126"},"returnParameters":{"id":75131,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75130,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:126","nodeType":"VariableDeclaration","scope":75212,"src":"34490:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75129,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75247,"nodeType":"FunctionDefinition","src":"36158:269:126","nodes":[],"body":{"id":75246,"nodeType":"Block","src":"36236:191:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75225,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75223,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75215,"src":"36254:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75224,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36260:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75222,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75228,"nodeType":"ExpressionStatement","src":"36246:66:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75230,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75217,"src":"36330:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75231,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36335:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75229,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75235,"nodeType":"ExpressionStatement","src":"36322:53:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75241,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75236,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75215,"src":"36394:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75237,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75217,"src":"36399:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75239,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75240,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"36405:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75242,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75221,"id":75245,"nodeType":"Return","src":"36385:35:126"}]},"documentation":{"id":75213,"nodeType":"StructuredDocumentation","src":"35903:250:126","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:126","parameters":{"id":75218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75215,"mutability":"mutable","name":"_a","nameLocation":"36180:2:126","nodeType":"VariableDeclaration","scope":75247,"src":"36172:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75214,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75217,"mutability":"mutable","name":"_b","nameLocation":"36192:2:126","nodeType":"VariableDeclaration","scope":75247,"src":"36184:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75216,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:126"},"returnParameters":{"id":75221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75220,"mutability":"mutable","name":"_result","nameLocation":"36227:7:126","nodeType":"VariableDeclaration","scope":75247,"src":"36219:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75219,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75312,"nodeType":"FunctionDefinition","src":"36649:447:126","nodes":[],"body":{"id":75311,"nodeType":"Block","src":"36727:369:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75260,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75258,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75250,"src":"36745:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75259,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36750:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75261,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75257,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75263,"nodeType":"ExpressionStatement","src":"36737:53:126"},{"assignments":[75265],"declarations":[{"constant":false,"id":75265,"mutability":"mutable","name":"a","nameLocation":"36808:1:126","nodeType":"VariableDeclaration","scope":75311,"src":"36800:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75264,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75267,"initialValue":{"id":75266,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75250,"src":"36812:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:126"},{"assignments":[75269],"declarations":[{"constant":false,"id":75269,"mutability":"mutable","name":"b","nameLocation":"36832:1:126","nodeType":"VariableDeclaration","scope":75311,"src":"36824:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75268,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75271,"initialValue":{"id":75270,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75252,"src":"36836:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:126"},{"expression":{"id":75274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75272,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"36848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75273,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73056,"src":"36858:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75275,"nodeType":"ExpressionStatement","src":"36848:17:126"},{"body":{"id":75309,"nodeType":"Block","src":"36889:201:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75279,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36907:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75280,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75282,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75307,"nodeType":"Block","src":"36997:83:126","statements":[{"expression":{"id":75301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75296,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"37015:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75298,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75255,"src":"37030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75299,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"37039:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75297,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37025:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75302,"nodeType":"ExpressionStatement","src":"37015:26:126"},{"expression":{"id":75305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75303,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"37059:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75306,"nodeType":"ExpressionStatement","src":"37059:6:126"}]},"id":75308,"nodeType":"IfStatement","src":"36903:177:126","trueBody":{"id":75295,"nodeType":"Block","src":"36919:72:126","statements":[{"expression":{"id":75289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75284,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36937:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75286,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36946:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75287,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75265,"src":"36949:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75285,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"36941:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75288,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75290,"nodeType":"ExpressionStatement","src":"36937:14:126"},{"expression":{"id":75293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75291,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36969:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75294,"nodeType":"ExpressionStatement","src":"36969:7:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75276,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75269,"src":"36882:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75277,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75310,"nodeType":"WhileStatement","src":"36875:215:126"}]},"documentation":{"id":75248,"nodeType":"StructuredDocumentation","src":"36433:211:126","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:126","parameters":{"id":75253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75250,"mutability":"mutable","name":"_a","nameLocation":"36671:2:126","nodeType":"VariableDeclaration","scope":75312,"src":"36663:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75249,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75252,"mutability":"mutable","name":"_b","nameLocation":"36683:2:126","nodeType":"VariableDeclaration","scope":75312,"src":"36675:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75251,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:126"},"returnParameters":{"id":75256,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75255,"mutability":"mutable","name":"_result","nameLocation":"36718:7:126","nodeType":"VariableDeclaration","scope":75312,"src":"36710:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75254,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:126"},"scope":75569,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75320,"nodeType":"FunctionDefinition","src":"37102:112:126","nodes":[],"body":{"id":75319,"nodeType":"Block","src":"37170:44:126","nodes":[],"statements":[{"expression":{"id":75317,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"37187:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75316,"id":75318,"nodeType":"Return","src":"37180:27:126"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:126","parameters":{"id":75313,"nodeType":"ParameterList","parameters":[],"src":"37137:2:126"},"returnParameters":{"id":75316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75320,"src":"37161:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75314,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75361,"nodeType":"FunctionDefinition","src":"37404:396:126","nodes":[],"body":{"id":75360,"nodeType":"Block","src":"37512:288:126","nodes":[],"statements":[{"assignments":[75330,75332],"declarations":[{"constant":false,"id":75330,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:126","nodeType":"VariableDeclaration","scope":75360,"src":"37523:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75329,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75332,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:126","nodeType":"VariableDeclaration","scope":75360,"src":"37543:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75331,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75337,"initialValue":{"arguments":[{"id":75334,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37600:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75335,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75326,"src":"37611:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75333,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75408,"src":"37566:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75338,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"37636:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75339,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75341,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75332,"src":"37655:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75347,"nodeType":"IfStatement","src":"37632:72:126","trueBody":{"id":75346,"nodeType":"Block","src":"37673:31:126","statements":[{"functionReturnParameters":75328,"id":75345,"nodeType":"Return","src":"37687:7:126"}]}},{"expression":{"id":75352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75348,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37713:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75350,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"37713:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75351,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75332,"src":"37735:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75353,"nodeType":"ExpressionStatement","src":"37713:33:126"},{"expression":{"id":75358,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75354,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37756:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75356,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"37756:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75357,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75330,"src":"37783:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75359,"nodeType":"ExpressionStatement","src":"37756:37:126"}]},"documentation":{"id":75321,"nodeType":"StructuredDocumentation","src":"37220:179:126","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:126","parameters":{"id":75327,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75324,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:126","nodeType":"VariableDeclaration","scope":75361,"src":"37440:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75323,"nodeType":"UserDefinedTypeName","pathNode":{"id":75322,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:126","37455:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"37440:23:126"},"referencedDeclaration":72855,"src":"37440:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75326,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:126","nodeType":"VariableDeclaration","scope":75361,"src":"37483:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75325,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:126"},"returnParameters":{"id":75328,"nodeType":"ParameterList","parameters":[],"src":"37512:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75408,"nodeType":"FunctionDefinition","src":"37806:719:126","nodes":[],"body":{"id":75407,"nodeType":"Block","src":"38004:521:126","nodes":[],"statements":[{"expression":{"id":75376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75373,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38014:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75374,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:126","memberName":"number","nodeType":"MemberAccess","src":"38028:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75377,"nodeType":"ExpressionStatement","src":"38014:26:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75379,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38057:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75380,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38057:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75381,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38080:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75378,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:126","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75384,"nodeType":"ExpressionStatement","src":"38050:42:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75385,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38106:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75386,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38106:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75387,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38129:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75394,"nodeType":"IfStatement","src":"38102:173:126","trueBody":{"id":75393,"nodeType":"Block","src":"38142:133:126","statements":[{"expression":{"components":[{"hexValue":"30","id":75389,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75391,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75372,"id":75392,"nodeType":"Return","src":"38222:13:126"}]}},{"expression":{"id":75405,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75395,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75369,"src":"38328:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75397,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75371,"src":"38374:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75398,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38388:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75399,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72844,"src":"38388:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75401,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75364,"src":"38460:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38460:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75403,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75366,"src":"38498:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75396,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75124,"src":"38341:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75406,"nodeType":"ExpressionStatement","src":"38328:190:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:126","parameters":{"id":75367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75364,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:126","nodeType":"VariableDeclaration","scope":75408,"src":"37849:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75363,"nodeType":"UserDefinedTypeName","pathNode":{"id":75362,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:126","37864:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"37849:23:126"},"referencedDeclaration":72855,"src":"37849:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75366,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:126","nodeType":"VariableDeclaration","scope":75408,"src":"37892:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75365,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:126"},"returnParameters":{"id":75372,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75369,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:126","nodeType":"VariableDeclaration","scope":75408,"src":"37959:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75368,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75371,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:126","nodeType":"VariableDeclaration","scope":75408,"src":"37979:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75370,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75456,"nodeType":"FunctionDefinition","src":"38531:520:126","nodes":[],"body":{"id":75455,"nodeType":"Block","src":"38610:441:126","nodes":[],"statements":[{"assignments":[75419],"declarations":[{"constant":false,"id":75419,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:126","nodeType":"VariableDeclaration","scope":75455,"src":"38620:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75418,"nodeType":"UserDefinedTypeName","pathNode":{"id":75417,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:126","38635:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"38620:23:126"},"referencedDeclaration":72855,"src":"38620:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75423,"initialValue":{"baseExpression":{"id":75420,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73100,"src":"38663:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72855_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75422,"indexExpression":{"id":75421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38673:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75427,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75424,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38699:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75425,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"38699:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75426,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38722:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75433,"nodeType":"IfStatement","src":"38695:100:126","trueBody":{"id":75432,"nodeType":"Block","src":"38734:61:126","statements":[{"errorCall":{"arguments":[{"id":75429,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38773:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75428,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"38755:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75431,"nodeType":"RevertStatement","src":"38748:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"},"id":75439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75434,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38809:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72847,"src":"38809:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75436,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"38836:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":75437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"38836:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72828_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"38836:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72828","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75445,"nodeType":"IfStatement","src":"38805:130:126","trueBody":{"id":75444,"nodeType":"Block","src":"38874:61:126","statements":[{"errorCall":{"arguments":[{"id":75441,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75410,"src":"38913:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75440,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72949,"src":"38895:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75443,"nodeType":"RevertStatement","src":"38888:36:126"}]}},{"expression":{"arguments":[{"id":75447,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38972:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75448,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"38982:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75449,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"38982:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75446,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"38945:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72855_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75450,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75451,"nodeType":"ExpressionStatement","src":"38945:59:126"},{"expression":{"expression":{"id":75452,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75419,"src":"39021:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72855_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75453,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"39021:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75414,"id":75454,"nodeType":"Return","src":"39014:30:126"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:126","parameters":{"id":75411,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75410,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:126","nodeType":"VariableDeclaration","scope":75456,"src":"38565:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75409,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:126"},"returnParameters":{"id":75414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75456,"src":"38601:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75412,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75475,"nodeType":"FunctionDefinition","src":"39057:124:126","nodes":[],"body":{"id":75474,"nodeType":"Block","src":"39129:52:126","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75463,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75458,"src":"39148:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75464,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"39157:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75466,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75469,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75467,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73053,"src":"39163:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75468,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"39167:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75470,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75472,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75462,"id":75473,"nodeType":"Return","src":"39139:35:126"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:126","parameters":{"id":75459,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75458,"mutability":"mutable","name":"amount","nameLocation":"39091:6:126","nodeType":"VariableDeclaration","scope":75475,"src":"39083:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75457,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:126"},"returnParameters":{"id":75462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75475,"src":"39120:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75460,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:126"},"scope":75569,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75493,"nodeType":"FunctionDefinition","src":"39187:137:126","nodes":[],"body":{"id":75492,"nodeType":"Block","src":"39258:66:126","nodes":[],"statements":[{"expression":{"id":75486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75484,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73067,"src":"39268:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75485,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75477,"src":"39276:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75487,"nodeType":"ExpressionStatement","src":"39268:14:126"},{"eventCall":{"arguments":[{"id":75489,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75477,"src":"39310:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75488,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73032,"src":"39297:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75491,"nodeType":"EmitStatement","src":"39292:25:126"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75482,"kind":"modifierInvocation","modifierName":{"id":75479,"name":"onlyPoolManager","nameLocations":["39230:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:126"},"nodeType":"ModifierInvocation","src":"39230:27:126"}],"name":"setDecay","nameLocation":"39196:8:126","parameters":{"id":75478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75477,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:126","nodeType":"VariableDeclaration","scope":75493,"src":"39205:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75476,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:126"},"returnParameters":{"id":75483,"nodeType":"ParameterList","parameters":[],"src":"39258:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75511,"nodeType":"FunctionDefinition","src":"39330:155:126","nodes":[],"body":{"id":75510,"nodeType":"Block","src":"39407:78:126","nodes":[],"statements":[{"expression":{"id":75504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75502,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73069,"src":"39417:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75503,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"39428:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75505,"nodeType":"ExpressionStatement","src":"39417:20:126"},{"eventCall":{"arguments":[{"id":75507,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75495,"src":"39468:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75506,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73036,"src":"39452:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75509,"nodeType":"EmitStatement","src":"39447:31:126"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75498,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75500,"kind":"modifierInvocation","modifierName":{"id":75497,"name":"onlyPoolManager","nameLocations":["39379:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:126"},"nodeType":"ModifierInvocation","src":"39379:27:126"}],"name":"setMaxRatio","nameLocation":"39339:11:126","parameters":{"id":75496,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75495,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:126","nodeType":"VariableDeclaration","scope":75511,"src":"39351:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75494,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:126"},"returnParameters":{"id":75501,"nodeType":"ParameterList","parameters":[],"src":"39407:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75529,"nodeType":"FunctionDefinition","src":"39491:143:126","nodes":[],"body":{"id":75528,"nodeType":"Block","src":"39564:70:126","nodes":[],"statements":[{"expression":{"id":75522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75520,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73071,"src":"39574:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75521,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75513,"src":"39583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75523,"nodeType":"ExpressionStatement","src":"39574:16:126"},{"eventCall":{"arguments":[{"id":75525,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75513,"src":"39619:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75524,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73040,"src":"39605:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75527,"nodeType":"EmitStatement","src":"39600:27:126"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75516,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75517,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75518,"kind":"modifierInvocation","modifierName":{"id":75515,"name":"onlyPoolManager","nameLocations":["39536:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:126"},"nodeType":"ModifierInvocation","src":"39536:27:126"}],"name":"setWeight","nameLocation":"39500:9:126","parameters":{"id":75514,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75513,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:126","nodeType":"VariableDeclaration","scope":75529,"src":"39510:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75512,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:126"},"returnParameters":{"id":75519,"nodeType":"ParameterList","parameters":[],"src":"39564:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75549,"nodeType":"FunctionDefinition","src":"39640:219:126","nodes":[],"body":{"id":75548,"nodeType":"Block","src":"39735:124:126","nodes":[],"statements":[{"expression":{"id":75542,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75538,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73095,"src":"39745:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75540,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75531,"src":"39783:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75539,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"39765:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77692_$","typeString":"type(contract RegistryCommunity)"}},"id":75541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"src":"39745:57:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":75543,"nodeType":"ExpressionStatement","src":"39745:57:126"},{"eventCall":{"arguments":[{"id":75545,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75531,"src":"39833:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75544,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73044,"src":"39817:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75547,"nodeType":"EmitStatement","src":"39812:40:126"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75536,"kind":"modifierInvocation","modifierName":{"id":75533,"name":"onlyPoolManager","nameLocations":["39707:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:126"},"nodeType":"ModifierInvocation","src":"39707:27:126"}],"name":"setRegistryCommunity","nameLocation":"39649:20:126","parameters":{"id":75532,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75531,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:126","nodeType":"VariableDeclaration","scope":75549,"src":"39670:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75530,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:126"},"returnParameters":{"id":75537,"nodeType":"ParameterList","parameters":[],"src":"39735:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75568,"nodeType":"FunctionDefinition","src":"39865:237:126","nodes":[],"body":{"id":75567,"nodeType":"Block","src":"39962:140:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75559,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"40003:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75560,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"40024:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75558,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73050,"src":"39977:25:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75562,"nodeType":"EmitStatement","src":"39972:72:126"},{"expression":{"id":75565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75563,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"40054:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75564,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75551,"src":"40076:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75566,"nodeType":"ExpressionStatement","src":"40054:41:126"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75554,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75556,"kind":"modifierInvocation","modifierName":{"id":75553,"name":"onlyPoolManager","nameLocations":["39934:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:126"},"nodeType":"ModifierInvocation","src":"39934:27:126"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:126","parameters":{"id":75552,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75551,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:126","nodeType":"VariableDeclaration","scope":75568,"src":"39896:27:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75550,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:126"},"returnParameters":{"id":75557,"nodeType":"ParameterList","parameters":[],"src":"39962:0:126"},"scope":75569,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":72893,"name":"BaseStrategy","nameLocations":["2845:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:126"},"id":72894,"nodeType":"InheritanceSpecifier","src":"2845:12:126"},{"baseName":{"id":72895,"name":"IPointStrategy","nameLocations":["2859:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72801,"src":"2859:14:126"},"id":72896,"nodeType":"InheritanceSpecifier","src":"2859:14:126"},{"baseName":{"id":72897,"name":"ERC165","nameLocations":["2875:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":58105,"src":"2875:6:126"},"id":72898,"nodeType":"InheritanceSpecifier","src":"2875:6:126"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75569,58105,58311,72801,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:126","scope":75570,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,72903,72905,72907,72909,72911,72913,72915,72917,72919,72921,72923,72931,72933,72935,72941,72943,72945,72949,72953,72959,72961,72963,72971]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d121ec95025d1d3aec91bbbf8fb8d5c7720a3ac2b21997af03f1766425c06c0f64736f6c63430008130033","sourceMap":"851:1969:126:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;851:1969:126;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220d121ec95025d1d3aec91bbbf8fb8d5c7720a3ac2b21997af03f1766425c06c0f64736f6c63430008130033","sourceMap":"851:1969:126:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/CVStrategy.sol\":\"StrategyStruct\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/CVStrategy.sol":"StrategyStruct"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/CVStrategy.sol","id":75562,"exportedSymbols":{"BaseStrategy":[3923],"CVStrategy":[75561],"ERC165":[58097],"ERC20":[56822],"IAllo":[2610],"IERC165":[58303],"IPointStrategy":[72793],"Math":[59169],"Metadata":[3098],"RegistryCommunity":[77675],"StrategyStruct":[72884],"console":[29549]},"nodeType":"SourceUnit","src":"42:40063:126","nodes":[{"id":72748,"nodeType":"PragmaDirective","src":"42:24:126","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72751,"nodeType":"ImportDirective","src":"68:82:126","nodes":[],"absolutePath":"lib/allo-v2/contracts/strategies/BaseStrategy.sol","file":"allo-v2-contracts/strategies/BaseStrategy.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":3924,"symbolAliases":[{"foreign":{"id":72749,"name":"BaseStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3923,"src":"76:12:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72750,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"90:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72754,"nodeType":"ImportDirective","src":"152:68:126","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"./RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":77676,"symbolAliases":[{"foreign":{"id":72752,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"160:17:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72753,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"179:8:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72757,"nodeType":"ImportDirective","src":"221:87:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":58098,"symbolAliases":[{"foreign":{"id":72755,"name":"ERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58097,"src":"229:6:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":72756,"name":"IERC165","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58303,"src":"237:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72759,"nodeType":"ImportDirective","src":"309:68:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","file":"@openzeppelin/contracts/token/ERC20/ERC20.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":56823,"symbolAliases":[{"foreign":{"id":72758,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"317:5:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72761,"nodeType":"ImportDirective","src":"379:46:126","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":29550,"symbolAliases":[{"foreign":{"id":72760,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"387:7:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72763,"nodeType":"ImportDirective","src":"427:65:126","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/math/Math.sol","file":"@openzeppelin/contracts/utils/math/Math.sol","nameLocation":"-1:-1:-1","scope":75562,"sourceUnit":59170,"symbolAliases":[{"foreign":{"id":72762,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"435:4:126","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72793,"nodeType":"ContractDefinition","src":"494:355:126","nodes":[{"id":72768,"nodeType":"FunctionDefinition","src":"525:52:126","nodes":[],"functionSelector":"6453d9c4","implemented":false,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"534:16:126","parameters":{"id":72766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72765,"mutability":"mutable","name":"_member","nameLocation":"559:7:126","nodeType":"VariableDeclaration","scope":72768,"src":"551:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72764,"name":"address","nodeType":"ElementaryTypeName","src":"551:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"550:17:126"},"returnParameters":{"id":72767,"nodeType":"ParameterList","parameters":[],"src":"576:0:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72777,"nodeType":"FunctionDefinition","src":"582:91:126","nodes":[],"functionSelector":"782aadff","implemented":false,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"591:13:126","parameters":{"id":72773,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72770,"mutability":"mutable","name":"_member","nameLocation":"613:7:126","nodeType":"VariableDeclaration","scope":72777,"src":"605:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72769,"name":"address","nodeType":"ElementaryTypeName","src":"605:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72772,"mutability":"mutable","name":"_amountToStake","nameLocation":"630:14:126","nodeType":"VariableDeclaration","scope":72777,"src":"622:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72771,"name":"uint256","nodeType":"ElementaryTypeName","src":"622:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"604:41:126"},"returnParameters":{"id":72776,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72775,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72777,"src":"664:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72774,"name":"uint256","nodeType":"ElementaryTypeName","src":"664:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"663:9:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72786,"nodeType":"FunctionDefinition","src":"678:92:126","nodes":[],"functionSelector":"2ed04b2b","implemented":false,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"687:13:126","parameters":{"id":72782,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72779,"mutability":"mutable","name":"_member","nameLocation":"709:7:126","nodeType":"VariableDeclaration","scope":72786,"src":"701:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72778,"name":"address","nodeType":"ElementaryTypeName","src":"701:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72781,"mutability":"mutable","name":"_amountToUntake","nameLocation":"726:15:126","nodeType":"VariableDeclaration","scope":72786,"src":"718:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72780,"name":"uint256","nodeType":"ElementaryTypeName","src":"718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"700:42:126"},"returnParameters":{"id":72785,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72784,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72786,"src":"761:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72783,"name":"uint256","nodeType":"ElementaryTypeName","src":"761:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"760:9:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":72792,"nodeType":"FunctionDefinition","src":"775:72:126","nodes":[],"functionSelector":"c3292171","implemented":false,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"784:14:126","parameters":{"id":72787,"nodeType":"ParameterList","parameters":[],"src":"798:2:126"},"returnParameters":{"id":72791,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72790,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72792,"src":"819:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72789,"nodeType":"UserDefinedTypeName","pathNode":{"id":72788,"name":"StrategyStruct.PointSystem","nameLocations":["819:14:126","834:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"819:26:126"},"referencedDeclaration":72802,"src":"819:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"818:28:126"},"scope":72793,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IPointStrategy","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[72793],"name":"IPointStrategy","nameLocation":"504:14:126","scope":75562,"usedErrors":[]},{"id":72884,"nodeType":"ContractDefinition","src":"851:1969:126","nodes":[{"id":72797,"nodeType":"EnumDefinition","src":"880:79:126","nodes":[],"canonicalName":"StrategyStruct.ProposalType","members":[{"id":72794,"name":"Signaling","nameLocation":"908:9:126","nodeType":"EnumValue","src":"908:9:126"},{"id":72795,"name":"Funding","nameLocation":"927:7:126","nodeType":"EnumValue","src":"927:7:126"},{"id":72796,"name":"Streaming","nameLocation":"944:9:126","nodeType":"EnumValue","src":"944:9:126"}],"name":"ProposalType","nameLocation":"885:12:126"},{"id":72802,"nodeType":"EnumDefinition","src":"965:92:126","nodes":[],"canonicalName":"StrategyStruct.PointSystem","members":[{"id":72798,"name":"Fixed","nameLocation":"992:5:126","nodeType":"EnumValue","src":"992:5:126"},{"id":72799,"name":"Capped","nameLocation":"1007:6:126","nodeType":"EnumValue","src":"1007:6:126"},{"id":72800,"name":"Unlimited","nameLocation":"1023:9:126","nodeType":"EnumValue","src":"1023:9:126"},{"id":72801,"name":"Quadratic","nameLocation":"1042:9:126","nodeType":"EnumValue","src":"1042:9:126"}],"name":"PointSystem","nameLocation":"970:11:126"},{"id":72814,"nodeType":"StructDefinition","src":"1063:243:126","nodes":[],"canonicalName":"StrategyStruct.CreateProposal","members":[{"constant":false,"id":72804,"mutability":"mutable","name":"poolId","nameLocation":"1134:6:126","nodeType":"VariableDeclaration","scope":72814,"src":"1126:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72803,"name":"uint256","nodeType":"ElementaryTypeName","src":"1126:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72806,"mutability":"mutable","name":"beneficiary","nameLocation":"1158:11:126","nodeType":"VariableDeclaration","scope":72814,"src":"1150:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72805,"name":"address","nodeType":"ElementaryTypeName","src":"1150:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72808,"mutability":"mutable","name":"amountRequested","nameLocation":"1225:15:126","nodeType":"VariableDeclaration","scope":72814,"src":"1217:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1217:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72810,"mutability":"mutable","name":"requestedToken","nameLocation":"1258:14:126","nodeType":"VariableDeclaration","scope":72814,"src":"1250:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72809,"name":"address","nodeType":"ElementaryTypeName","src":"1250:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72813,"mutability":"mutable","name":"metadata","nameLocation":"1291:8:126","nodeType":"VariableDeclaration","scope":72814,"src":"1282:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72812,"nodeType":"UserDefinedTypeName","pathNode":{"id":72811,"name":"Metadata","nameLocations":["1282:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1282:8:126"},"referencedDeclaration":3098,"src":"1282:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"CreateProposal","nameLocation":"1070:14:126","scope":72884,"visibility":"public"},{"id":72820,"nodeType":"EnumDefinition","src":"1312:289:126","nodes":[],"canonicalName":"StrategyStruct.ProposalStatus","members":[{"id":72815,"name":"Inactive","nameLocation":"1342:8:126","nodeType":"EnumValue","src":"1342:8:126"},{"id":72816,"name":"Active","nameLocation":"1372:6:126","nodeType":"EnumValue","src":"1372:6:126"},{"id":72817,"name":"Paused","nameLocation":"1435:6:126","nodeType":"EnumValue","src":"1435:6:126"},{"id":72818,"name":"Cancelled","nameLocation":"1500:9:126","nodeType":"EnumValue","src":"1500:9:126"},{"id":72819,"name":"Executed","nameLocation":"1553:8:126","nodeType":"EnumValue","src":"1553:8:126"}],"name":"ProposalStatus","nameLocation":"1317:14:126"},{"id":72847,"nodeType":"StructDefinition","src":"1607:405:126","nodes":[],"canonicalName":"StrategyStruct.Proposal","members":[{"constant":false,"id":72822,"mutability":"mutable","name":"proposalId","nameLocation":"1641:10:126","nodeType":"VariableDeclaration","scope":72847,"src":"1633:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72821,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72824,"mutability":"mutable","name":"requestedAmount","nameLocation":"1669:15:126","nodeType":"VariableDeclaration","scope":72847,"src":"1661:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72823,"name":"uint256","nodeType":"ElementaryTypeName","src":"1661:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72826,"mutability":"mutable","name":"stakedAmount","nameLocation":"1702:12:126","nodeType":"VariableDeclaration","scope":72847,"src":"1694:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72825,"name":"uint256","nodeType":"ElementaryTypeName","src":"1694:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72828,"mutability":"mutable","name":"convictionLast","nameLocation":"1732:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1724:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72827,"name":"uint256","nodeType":"ElementaryTypeName","src":"1724:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72830,"mutability":"mutable","name":"beneficiary","nameLocation":"1764:11:126","nodeType":"VariableDeclaration","scope":72847,"src":"1756:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72829,"name":"address","nodeType":"ElementaryTypeName","src":"1756:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72832,"mutability":"mutable","name":"submitter","nameLocation":"1793:9:126","nodeType":"VariableDeclaration","scope":72847,"src":"1785:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72831,"name":"address","nodeType":"ElementaryTypeName","src":"1785:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72834,"mutability":"mutable","name":"requestedToken","nameLocation":"1820:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1812:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72833,"name":"address","nodeType":"ElementaryTypeName","src":"1812:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72836,"mutability":"mutable","name":"blockLast","nameLocation":"1852:9:126","nodeType":"VariableDeclaration","scope":72847,"src":"1844:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72835,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72839,"mutability":"mutable","name":"proposalStatus","nameLocation":"1886:14:126","nodeType":"VariableDeclaration","scope":72847,"src":"1871:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":72838,"nodeType":"UserDefinedTypeName","pathNode":{"id":72837,"name":"ProposalStatus","nameLocations":["1871:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72820,"src":"1871:14:126"},"referencedDeclaration":72820,"src":"1871:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":72843,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"1938:17:126","nodeType":"VariableDeclaration","scope":72847,"src":"1910:45:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":72842,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":72840,"name":"address","nodeType":"ElementaryTypeName","src":"1918:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1910:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":72841,"name":"uint256","nodeType":"ElementaryTypeName","src":"1929:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"constant":false,"id":72846,"mutability":"mutable","name":"metadata","nameLocation":"1997:8:126","nodeType":"VariableDeclaration","scope":72847,"src":"1988:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":72845,"nodeType":"UserDefinedTypeName","pathNode":{"id":72844,"name":"Metadata","nameLocations":["1988:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1988:8:126"},"referencedDeclaration":3098,"src":"1988:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"name":"Proposal","nameLocation":"1614:8:126","scope":72884,"visibility":"public"},{"id":72852,"nodeType":"StructDefinition","src":"2018:126:126","nodes":[],"canonicalName":"StrategyStruct.ProposalSupport","members":[{"constant":false,"id":72849,"mutability":"mutable","name":"proposalId","nameLocation":"2059:10:126","nodeType":"VariableDeclaration","scope":72852,"src":"2051:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72848,"name":"uint256","nodeType":"ElementaryTypeName","src":"2051:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72851,"mutability":"mutable","name":"deltaSupport","nameLocation":"2086:12:126","nodeType":"VariableDeclaration","scope":72852,"src":"2079:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72850,"name":"int256","nodeType":"ElementaryTypeName","src":"2079:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"name":"ProposalSupport","nameLocation":"2025:15:126","scope":72884,"visibility":"public"},{"id":72855,"nodeType":"StructDefinition","src":"2150:89:126","nodes":[],"canonicalName":"StrategyStruct.PointSystemConfig","members":[{"constant":false,"id":72854,"mutability":"mutable","name":"maxAmount","nameLocation":"2223:9:126","nodeType":"VariableDeclaration","scope":72855,"src":"2215:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72853,"name":"uint256","nodeType":"ElementaryTypeName","src":"2215:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"PointSystemConfig","nameLocation":"2157:17:126","scope":72884,"visibility":"public"},{"id":72860,"nodeType":"StructDefinition","src":"2245:88:126","nodes":[],"canonicalName":"StrategyStruct.SybilConfig","members":[{"constant":false,"id":72857,"mutability":"mutable","name":"sybilOracleScorer","nameLocation":"2282:17:126","nodeType":"VariableDeclaration","scope":72860,"src":"2274:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72856,"name":"address","nodeType":"ElementaryTypeName","src":"2274:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72859,"mutability":"mutable","name":"threshold","nameLocation":"2317:9:126","nodeType":"VariableDeclaration","scope":72860,"src":"2309:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72858,"name":"uint256","nodeType":"ElementaryTypeName","src":"2309:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"SybilConfig","nameLocation":"2252:11:126","scope":72884,"visibility":"public"},{"id":72883,"nodeType":"StructDefinition","src":"2339:479:126","nodes":[],"canonicalName":"StrategyStruct.InitializeParams","members":[{"constant":false,"id":72862,"mutability":"mutable","name":"registryCommunity","nameLocation":"2381:17:126","nodeType":"VariableDeclaration","scope":72883,"src":"2373:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72861,"name":"address","nodeType":"ElementaryTypeName","src":"2373:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72864,"mutability":"mutable","name":"decay","nameLocation":"2445:5:126","nodeType":"VariableDeclaration","scope":72883,"src":"2437:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72863,"name":"uint256","nodeType":"ElementaryTypeName","src":"2437:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72866,"mutability":"mutable","name":"maxRatio","nameLocation":"2515:8:126","nodeType":"VariableDeclaration","scope":72883,"src":"2507:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72865,"name":"uint256","nodeType":"ElementaryTypeName","src":"2507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72868,"mutability":"mutable","name":"weight","nameLocation":"2569:6:126","nodeType":"VariableDeclaration","scope":72883,"src":"2561:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72867,"name":"uint256","nodeType":"ElementaryTypeName","src":"2561:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72870,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"2593:18:126","nodeType":"VariableDeclaration","scope":72883,"src":"2585:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72869,"name":"uint256","nodeType":"ElementaryTypeName","src":"2585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72873,"mutability":"mutable","name":"proposalType","nameLocation":"2659:12:126","nodeType":"VariableDeclaration","scope":72883,"src":"2646:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":72872,"nodeType":"UserDefinedTypeName","pathNode":{"id":72871,"name":"ProposalType","nameLocations":["2646:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"2646:12:126"},"referencedDeclaration":72797,"src":"2646:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":72876,"mutability":"mutable","name":"pointSystem","nameLocation":"2728:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2716:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":72875,"nodeType":"UserDefinedTypeName","pathNode":{"id":72874,"name":"PointSystem","nameLocations":["2716:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"2716:11:126"},"referencedDeclaration":72802,"src":"2716:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":72879,"mutability":"mutable","name":"pointConfig","nameLocation":"2767:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2749:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":72878,"nodeType":"UserDefinedTypeName","pathNode":{"id":72877,"name":"PointSystemConfig","nameLocations":["2749:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"2749:17:126"},"referencedDeclaration":72855,"src":"2749:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"},{"constant":false,"id":72882,"mutability":"mutable","name":"sybilConfig","nameLocation":"2800:11:126","nodeType":"VariableDeclaration","scope":72883,"src":"2788:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72860_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"},"typeName":{"id":72881,"nodeType":"UserDefinedTypeName","pathNode":{"id":72880,"name":"SybilConfig","nameLocations":["2788:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72860,"src":"2788:11:126"},"referencedDeclaration":72860,"src":"2788:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_SybilConfig_$72860_storage_ptr","typeString":"struct StrategyStruct.SybilConfig"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"2346:16:126","scope":72884,"visibility":"public"}],"abstract":false,"baseContracts":[],"canonicalName":"StrategyStruct","contractDependencies":[],"contractKind":"library","fullyImplemented":true,"linearizedBaseContracts":[72884],"name":"StrategyStruct","nameLocation":"859:14:126","scope":75562,"usedErrors":[]},{"id":75561,"nodeType":"ContractDefinition","src":"2822:37282:126","nodes":[{"id":72893,"nodeType":"UsingForDirective","src":"2888:23:126","nodes":[],"global":false,"libraryName":{"id":72891,"name":"Math","nameLocations":["2894:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":59169,"src":"2894:4:126"},"typeName":{"id":72892,"name":"uint256","nodeType":"ElementaryTypeName","src":"2903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},{"id":72895,"nodeType":"ErrorDefinition","src":"3082:25:126","nodes":[],"errorSelector":"d1f28288","name":"UserCannotBeZero","nameLocation":"3088:16:126","parameters":{"id":72894,"nodeType":"ParameterList","parameters":[],"src":"3104:2:126"}},{"id":72897,"nodeType":"ErrorDefinition","src":"3126:26:126","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"3132:17:126","parameters":{"id":72896,"nodeType":"ParameterList","parameters":[],"src":"3149:2:126"}},{"id":72899,"nodeType":"ErrorDefinition","src":"3170:23:126","nodes":[],"errorSelector":"5fccb67f","name":"UserIsInactive","nameLocation":"3176:14:126","parameters":{"id":72898,"nodeType":"ParameterList","parameters":[],"src":"3190:2:126"}},{"id":72901,"nodeType":"ErrorDefinition","src":"3212:20:126","nodes":[],"errorSelector":"ed4421ad","name":"PoolIsEmpty","nameLocation":"3218:11:126","parameters":{"id":72900,"nodeType":"ParameterList","parameters":[],"src":"3229:2:126"}},{"id":72903,"nodeType":"ErrorDefinition","src":"3251:23:126","nodes":[],"errorSelector":"d6234725","name":"NotImplemented","nameLocation":"3257:14:126","parameters":{"id":72902,"nodeType":"ParameterList","parameters":[],"src":"3271:2:126"}},{"id":72905,"nodeType":"ErrorDefinition","src":"3292:26:126","nodes":[],"errorSelector":"596a094c","name":"TokenCannotBeZero","nameLocation":"3298:17:126","parameters":{"id":72904,"nodeType":"ParameterList","parameters":[],"src":"3315:2:126"}},{"id":72907,"nodeType":"ErrorDefinition","src":"3336:24:126","nodes":[],"errorSelector":"a29c4986","name":"TokenNotAllowed","nameLocation":"3342:15:126","parameters":{"id":72906,"nodeType":"ParameterList","parameters":[],"src":"3357:2:126"}},{"id":72909,"nodeType":"ErrorDefinition","src":"3379:27:126","nodes":[],"errorSelector":"3bf5ca14","name":"AmountOverMaxRatio","nameLocation":"3385:18:126","parameters":{"id":72908,"nodeType":"ParameterList","parameters":[],"src":"3403:2:126"}},{"id":72911,"nodeType":"ErrorDefinition","src":"3425:27:126","nodes":[],"errorSelector":"4e791786","name":"PoolIdCannotBeZero","nameLocation":"3431:18:126","parameters":{"id":72910,"nodeType":"ParameterList","parameters":[],"src":"3449:2:126"}},{"id":72913,"nodeType":"ErrorDefinition","src":"3470:28:126","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"3476:19:126","parameters":{"id":72912,"nodeType":"ParameterList","parameters":[],"src":"3495:2:126"}},{"id":72915,"nodeType":"ErrorDefinition","src":"3516:29:126","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"3522:20:126","parameters":{"id":72914,"nodeType":"ParameterList","parameters":[],"src":"3542:2:126"}},{"id":72923,"nodeType":"ErrorDefinition","src":"3564:72:126","nodes":[],"errorSelector":"3bbc7142","name":"SupportUnderflow","nameLocation":"3570:16:126","parameters":{"id":72922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72917,"mutability":"mutable","name":"_support","nameLocation":"3595:8:126","nodeType":"VariableDeclaration","scope":72923,"src":"3587:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72916,"name":"uint256","nodeType":"ElementaryTypeName","src":"3587:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72919,"mutability":"mutable","name":"_delta","nameLocation":"3612:6:126","nodeType":"VariableDeclaration","scope":72923,"src":"3605:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72918,"name":"int256","nodeType":"ElementaryTypeName","src":"3605:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"},{"constant":false,"id":72921,"mutability":"mutable","name":"_result","nameLocation":"3627:7:126","nodeType":"VariableDeclaration","scope":72923,"src":"3620:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":72920,"name":"int256","nodeType":"ElementaryTypeName","src":"3620:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"3586:49:126"}},{"id":72925,"nodeType":"ErrorDefinition","src":"3655:25:126","nodes":[],"errorSelector":"8402b474","name":"MaxPointsReached","nameLocation":"3661:16:126","parameters":{"id":72924,"nodeType":"ParameterList","parameters":[],"src":"3677:2:126"}},{"id":72927,"nodeType":"ErrorDefinition","src":"3699:32:126","nodes":[],"errorSelector":"573c3e93","name":"CantIncreaseFixedSystem","nameLocation":"3705:23:126","parameters":{"id":72926,"nodeType":"ParameterList","parameters":[],"src":"3728:2:126"}},{"id":72933,"nodeType":"ErrorDefinition","src":"3750:77:126","nodes":[],"errorSelector":"d64182fe","name":"NotEnoughPointsToSupport","nameLocation":"3756:24:126","parameters":{"id":72932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72929,"mutability":"mutable","name":"pointsSupport","nameLocation":"3789:13:126","nodeType":"VariableDeclaration","scope":72933,"src":"3781:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72928,"name":"uint256","nodeType":"ElementaryTypeName","src":"3781:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72931,"mutability":"mutable","name":"pointsBalance","nameLocation":"3812:13:126","nodeType":"VariableDeclaration","scope":72933,"src":"3804:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3804:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3780:46:126"}},{"id":72935,"nodeType":"ErrorDefinition","src":"3847:28:126","nodes":[],"errorSelector":"c5f7c4c0","name":"ProposalDataIsEmpty","nameLocation":"3853:19:126","parameters":{"id":72934,"nodeType":"ParameterList","parameters":[],"src":"3872:2:126"}},{"id":72937,"nodeType":"ErrorDefinition","src":"3893:31:126","nodes":[],"errorSelector":"f881a10d","name":"ProposalIdCannotBeZero","nameLocation":"3899:22:126","parameters":{"id":72936,"nodeType":"ParameterList","parameters":[],"src":"3921:2:126"}},{"id":72941,"nodeType":"ErrorDefinition","src":"3942:45:126","nodes":[],"errorSelector":"44980d8f","name":"ProposalNotActive","nameLocation":"3948:17:126","parameters":{"id":72940,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72939,"mutability":"mutable","name":"_proposalId","nameLocation":"3974:11:126","nodeType":"VariableDeclaration","scope":72941,"src":"3966:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72938,"name":"uint256","nodeType":"ElementaryTypeName","src":"3966:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3965:21:126"}},{"id":72945,"nodeType":"ErrorDefinition","src":"4006:45:126","nodes":[],"errorSelector":"c1d17bef","name":"ProposalNotInList","nameLocation":"4012:17:126","parameters":{"id":72944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72943,"mutability":"mutable","name":"_proposalId","nameLocation":"4038:11:126","nodeType":"VariableDeclaration","scope":72945,"src":"4030:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72942,"name":"uint256","nodeType":"ElementaryTypeName","src":"4030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4029:21:126"}},{"id":72951,"nodeType":"ErrorDefinition","src":"4070:68:126","nodes":[],"errorSelector":"adebb154","name":"ProposalSupportDuplicated","nameLocation":"4076:25:126","parameters":{"id":72950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72947,"mutability":"mutable","name":"_proposalId","nameLocation":"4110:11:126","nodeType":"VariableDeclaration","scope":72951,"src":"4102:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72946,"name":"uint256","nodeType":"ElementaryTypeName","src":"4102:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72949,"mutability":"mutable","name":"index","nameLocation":"4131:5:126","nodeType":"VariableDeclaration","scope":72951,"src":"4123:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72948,"name":"uint256","nodeType":"ElementaryTypeName","src":"4123:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4101:36:126"}},{"id":72953,"nodeType":"ErrorDefinition","src":"4156:40:126","nodes":[],"errorSelector":"cce79308","name":"ConvictionUnderMinimumThreshold","nameLocation":"4162:31:126","parameters":{"id":72952,"nodeType":"ParameterList","parameters":[],"src":"4193:2:126"}},{"id":72955,"nodeType":"ErrorDefinition","src":"4215:29:126","nodes":[],"errorSelector":"af0916a2","name":"OnlyCommunityAllowed","nameLocation":"4221:20:126","parameters":{"id":72954,"nodeType":"ParameterList","parameters":[],"src":"4241:2:126"}},{"id":72963,"nodeType":"ErrorDefinition","src":"4263:94:126","nodes":[],"errorSelector":"5863b0b6","name":"PoolAmountNotEnough","nameLocation":"4269:19:126","parameters":{"id":72962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72957,"mutability":"mutable","name":"_proposalId","nameLocation":"4297:11:126","nodeType":"VariableDeclaration","scope":72963,"src":"4289:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72956,"name":"uint256","nodeType":"ElementaryTypeName","src":"4289:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72959,"mutability":"mutable","name":"_requestedAmount","nameLocation":"4318:16:126","nodeType":"VariableDeclaration","scope":72963,"src":"4310:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72958,"name":"uint256","nodeType":"ElementaryTypeName","src":"4310:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72961,"mutability":"mutable","name":"_poolAmount","nameLocation":"4344:11:126","nodeType":"VariableDeclaration","scope":72963,"src":"4336:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72960,"name":"uint256","nodeType":"ElementaryTypeName","src":"4336:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4288:68:126"}},{"id":72970,"nodeType":"EventDefinition","src":"4542:74:126","nodes":[],"anonymous":false,"eventSelector":"8de50bebef1bd84245c2bf562892194bb7f5f441c7f848c1aa181f1e4e191e42","name":"InitializedCV","nameLocation":"4548:13:126","parameters":{"id":72969,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72965,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4570:6:126","nodeType":"VariableDeclaration","scope":72970,"src":"4562:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72964,"name":"uint256","nodeType":"ElementaryTypeName","src":"4562:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72968,"indexed":false,"mutability":"mutable","name":"data","nameLocation":"4610:4:126","nodeType":"VariableDeclaration","scope":72970,"src":"4578:36:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":72967,"nodeType":"UserDefinedTypeName","pathNode":{"id":72966,"name":"StrategyStruct.InitializeParams","nameLocations":["4578:14:126","4593:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"4578:31:126"},"referencedDeclaration":72883,"src":"4578:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"4561:54:126"}},{"id":72978,"nodeType":"EventDefinition","src":"4621:75:126","nodes":[],"anonymous":false,"eventSelector":"a7932e9c92f31e1ed56b29d00bbe669a97484dc24de28dd9c8c0429df7f35847","name":"Distributed","nameLocation":"4627:11:126","parameters":{"id":72977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72972,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4647:10:126","nodeType":"VariableDeclaration","scope":72978,"src":"4639:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72971,"name":"uint256","nodeType":"ElementaryTypeName","src":"4639:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72974,"indexed":false,"mutability":"mutable","name":"beneficiary","nameLocation":"4667:11:126","nodeType":"VariableDeclaration","scope":72978,"src":"4659:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72973,"name":"address","nodeType":"ElementaryTypeName","src":"4659:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72976,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4688:6:126","nodeType":"VariableDeclaration","scope":72978,"src":"4680:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72975,"name":"uint256","nodeType":"ElementaryTypeName","src":"4680:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4638:57:126"}},{"id":72984,"nodeType":"EventDefinition","src":"4701:58:126","nodes":[],"anonymous":false,"eventSelector":"fcf3b1aa65a464cef2889608f99e8b8c0f680a4be6c2acb9d961c536a5a9294b","name":"ProposalCreated","nameLocation":"4707:15:126","parameters":{"id":72983,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72980,"indexed":false,"mutability":"mutable","name":"poolId","nameLocation":"4731:6:126","nodeType":"VariableDeclaration","scope":72984,"src":"4723:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72979,"name":"uint256","nodeType":"ElementaryTypeName","src":"4723:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72982,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"4747:10:126","nodeType":"VariableDeclaration","scope":72984,"src":"4739:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72981,"name":"uint256","nodeType":"ElementaryTypeName","src":"4739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4722:36:126"}},{"id":72988,"nodeType":"EventDefinition","src":"4764:42:126","nodes":[],"anonymous":false,"eventSelector":"46aeb5d8770fc4474bc2dfa118fd2595f7fb33ce2cbce6f4e5a3dabfe0f76339","name":"PoolAmountIncreased","nameLocation":"4770:19:126","parameters":{"id":72987,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72986,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"4798:6:126","nodeType":"VariableDeclaration","scope":72988,"src":"4790:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72985,"name":"uint256","nodeType":"ElementaryTypeName","src":"4790:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4789:16:126"}},{"id":72996,"nodeType":"EventDefinition","src":"4811:85:126","nodes":[],"anonymous":false,"eventSelector":"0b9150e1e54346ed3fa36b977cd5d65dca5a649c737c3174a26bddaadd47667a","name":"PowerIncreased","nameLocation":"4817:14:126","parameters":{"id":72995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72990,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4840:6:126","nodeType":"VariableDeclaration","scope":72996,"src":"4832:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72989,"name":"address","nodeType":"ElementaryTypeName","src":"4832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72992,"indexed":false,"mutability":"mutable","name":"tokensStaked","nameLocation":"4856:12:126","nodeType":"VariableDeclaration","scope":72996,"src":"4848:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72991,"name":"uint256","nodeType":"ElementaryTypeName","src":"4848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":72994,"indexed":false,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"4878:16:126","nodeType":"VariableDeclaration","scope":72996,"src":"4870:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72993,"name":"uint256","nodeType":"ElementaryTypeName","src":"4870:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4831:64:126"}},{"id":73004,"nodeType":"EventDefinition","src":"4901:87:126","nodes":[],"anonymous":false,"eventSelector":"70b752f3fadb6ac131c0ece847fcbb6994ec56ed6411595710fd9b29c6ac6cc1","name":"PowerDecreased","nameLocation":"4907:14:126","parameters":{"id":73003,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72998,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"4930:6:126","nodeType":"VariableDeclaration","scope":73004,"src":"4922:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72997,"name":"address","nodeType":"ElementaryTypeName","src":"4922:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73000,"indexed":false,"mutability":"mutable","name":"tokensUnStaked","nameLocation":"4946:14:126","nodeType":"VariableDeclaration","scope":73004,"src":"4938:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72999,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73002,"indexed":false,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"4970:16:126","nodeType":"VariableDeclaration","scope":73004,"src":"4962:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73001,"name":"uint256","nodeType":"ElementaryTypeName","src":"4962:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4921:66:126"}},{"id":73016,"nodeType":"EventDefinition","src":"4993:134:126","nodes":[],"anonymous":false,"eventSelector":"0227f642ddcf2042ceaeafadb9d540f432072c00cd4862881667168dcc14710f","name":"SupportAdded","nameLocation":"4999:12:126","parameters":{"id":73015,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73006,"indexed":false,"mutability":"mutable","name":"from","nameLocation":"5029:4:126","nodeType":"VariableDeclaration","scope":73016,"src":"5021:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73005,"name":"address","nodeType":"ElementaryTypeName","src":"5021:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73008,"indexed":false,"mutability":"mutable","name":"proposalId","nameLocation":"5043:10:126","nodeType":"VariableDeclaration","scope":73016,"src":"5035:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73007,"name":"uint256","nodeType":"ElementaryTypeName","src":"5035:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73010,"indexed":false,"mutability":"mutable","name":"amount","nameLocation":"5063:6:126","nodeType":"VariableDeclaration","scope":73016,"src":"5055:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73009,"name":"uint256","nodeType":"ElementaryTypeName","src":"5055:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73012,"indexed":false,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"5079:17:126","nodeType":"VariableDeclaration","scope":73016,"src":"5071:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73011,"name":"uint256","nodeType":"ElementaryTypeName","src":"5071:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73014,"indexed":false,"mutability":"mutable","name":"convictionLast","nameLocation":"5106:14:126","nodeType":"VariableDeclaration","scope":73016,"src":"5098:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73013,"name":"uint256","nodeType":"ElementaryTypeName","src":"5098:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5011:115:126"}},{"id":73020,"nodeType":"EventDefinition","src":"5132:40:126","nodes":[],"anonymous":false,"eventSelector":"1468da654b37bb3631011c1917d02e0db437d519918858d40b38b5e980ca033b","name":"PointsDeactivated","nameLocation":"5138:17:126","parameters":{"id":73019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73018,"indexed":false,"mutability":"mutable","name":"member","nameLocation":"5164:6:126","nodeType":"VariableDeclaration","scope":73020,"src":"5156:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73017,"name":"address","nodeType":"ElementaryTypeName","src":"5156:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5155:16:126"}},{"id":73024,"nodeType":"EventDefinition","src":"5177:34:126","nodes":[],"anonymous":false,"eventSelector":"592dcd55d60d892e7fcb3ba105013312e99691cd59f91e15f83cb67cb5a505f2","name":"DecayUpdated","nameLocation":"5183:12:126","parameters":{"id":73023,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73022,"indexed":false,"mutability":"mutable","name":"decay","nameLocation":"5204:5:126","nodeType":"VariableDeclaration","scope":73024,"src":"5196:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73021,"name":"uint256","nodeType":"ElementaryTypeName","src":"5196:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5195:15:126"}},{"id":73028,"nodeType":"EventDefinition","src":"5216:40:126","nodes":[],"anonymous":false,"eventSelector":"08e39b387d1f739ce0d2553bb31822392e3f67c62c6c0a215120ab4a6841a8ab","name":"MaxRatioUpdated","nameLocation":"5222:15:126","parameters":{"id":73027,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73026,"indexed":false,"mutability":"mutable","name":"maxRatio","nameLocation":"5246:8:126","nodeType":"VariableDeclaration","scope":73028,"src":"5238:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73025,"name":"uint256","nodeType":"ElementaryTypeName","src":"5238:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5237:18:126"}},{"id":73032,"nodeType":"EventDefinition","src":"5261:36:126","nodes":[],"anonymous":false,"eventSelector":"30ee8206062f283e56a0af2b02138016bf7442ded26ad68a92a18a9dd246fb49","name":"WeightUpdated","nameLocation":"5267:13:126","parameters":{"id":73031,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73030,"indexed":false,"mutability":"mutable","name":"weight","nameLocation":"5289:6:126","nodeType":"VariableDeclaration","scope":73032,"src":"5281:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73029,"name":"uint256","nodeType":"ElementaryTypeName","src":"5281:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5280:16:126"}},{"id":73036,"nodeType":"EventDefinition","src":"5302:49:126","nodes":[],"anonymous":false,"eventSelector":"d6ceddf6d2a22f21c7c81675c518004eff43bc5c8a6fc32a0b748e69d58671cd","name":"RegistryUpdated","nameLocation":"5308:15:126","parameters":{"id":73035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73034,"indexed":false,"mutability":"mutable","name":"registryCommunity","nameLocation":"5332:17:126","nodeType":"VariableDeclaration","scope":73036,"src":"5324:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73033,"name":"address","nodeType":"ElementaryTypeName","src":"5324:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5323:27:126"}},{"id":73042,"nodeType":"EventDefinition","src":"5356:76:126","nodes":[],"anonymous":false,"eventSelector":"056aedca4e334b6c4bea48715fb0de644811b740894de57a0380d3eb90f2805b","name":"MinThresholdPointsUpdated","nameLocation":"5362:25:126","parameters":{"id":73041,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73038,"indexed":false,"mutability":"mutable","name":"before","nameLocation":"5396:6:126","nodeType":"VariableDeclaration","scope":73042,"src":"5388:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73037,"name":"uint256","nodeType":"ElementaryTypeName","src":"5388:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73040,"indexed":false,"mutability":"mutable","name":"minThresholdPoints","nameLocation":"5412:18:126","nodeType":"VariableDeclaration","scope":73042,"src":"5404:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73039,"name":"uint256","nodeType":"ElementaryTypeName","src":"5404:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5387:44:126"}},{"id":73045,"nodeType":"VariableDeclaration","src":"5806:36:126","nodes":[],"constant":true,"functionSelector":"0f529ba2","mutability":"constant","name":"D","nameLocation":"5830:1:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73043,"name":"uint256","nodeType":"ElementaryTypeName","src":"5806:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130303030303030","id":73044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5834:8:126","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"value":"10000000"},"visibility":"public"},{"id":73048,"nodeType":"VariableDeclaration","src":"5856:70:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"5881:7:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73046,"name":"uint256","nodeType":"ElementaryTypeName","src":"5856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3078313030303030303030303030303030303030303030303030303030303030303030","id":73047,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5891:35:126","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"value":"0x100000000000000000000000000000000"},"visibility":"private"},{"id":73051,"nodeType":"VariableDeclaration","src":"5942:69:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"5967:7:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73049,"name":"uint256","nodeType":"ElementaryTypeName","src":"5942:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783830303030303030303030303030303030303030303030303030303030303030","id":73050,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5977:34:126","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"value":"0x80000000000000000000000000000000"},"visibility":"private"},{"id":73054,"nodeType":"VariableDeclaration","src":"6027:53:126","nodes":[],"constant":true,"mutability":"constant","name":"TWO_64","nameLocation":"6052:6:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73052,"name":"uint256","nodeType":"ElementaryTypeName","src":"6027:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30783130303030303030303030303030303030","id":73053,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6061:19:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"value":"0x10000000000000000"},"visibility":"private"},{"id":73057,"nodeType":"VariableDeclaration","src":"6095:49:126","nodes":[],"constant":true,"functionSelector":"406244d8","mutability":"constant","name":"MAX_STAKED_PROPOSALS","nameLocation":"6119:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73055,"name":"uint256","nodeType":"ElementaryTypeName","src":"6095:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"3130","id":73056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6142:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"visibility":"public"},{"id":73059,"nodeType":"VariableDeclaration","src":"6272:20:126","nodes":[],"constant":false,"functionSelector":"54fac919","mutability":"mutable","name":"decay","nameLocation":"6287:5:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73058,"name":"uint256","nodeType":"ElementaryTypeName","src":"6272:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73061,"nodeType":"VariableDeclaration","src":"6298:23:126","nodes":[],"constant":false,"functionSelector":"76365af7","mutability":"mutable","name":"maxRatio","nameLocation":"6313:8:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73060,"name":"uint256","nodeType":"ElementaryTypeName","src":"6298:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73063,"nodeType":"VariableDeclaration","src":"6327:21:126","nodes":[],"constant":false,"functionSelector":"a1aab33f","mutability":"mutable","name":"weight","nameLocation":"6342:6:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73062,"name":"uint256","nodeType":"ElementaryTypeName","src":"6327:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73066,"nodeType":"VariableDeclaration","src":"6354:34:126","nodes":[],"constant":false,"functionSelector":"0c0512e9","mutability":"mutable","name":"proposalCounter","nameLocation":"6369:15:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73064,"name":"uint256","nodeType":"ElementaryTypeName","src":"6354:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73065,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6387:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73068,"nodeType":"VariableDeclaration","src":"6394:26:126","nodes":[],"constant":false,"functionSelector":"817b1cd2","mutability":"mutable","name":"totalStaked","nameLocation":"6409:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73067,"name":"uint256","nodeType":"ElementaryTypeName","src":"6394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73070,"nodeType":"VariableDeclaration","src":"6426:35:126","nodes":[],"constant":false,"functionSelector":"aba9ffee","mutability":"mutable","name":"totalPointsActivated","nameLocation":"6441:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73069,"name":"uint256","nodeType":"ElementaryTypeName","src":"6426:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":73073,"nodeType":"VariableDeclaration","src":"6467:38:126","nodes":[],"constant":false,"functionSelector":"7c6570ba","mutability":"mutable","name":"_minThresholdPoints","nameLocation":"6482:19:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73071,"name":"uint256","nodeType":"ElementaryTypeName","src":"6467:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":73072,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6504:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":73075,"nodeType":"VariableDeclaration","src":"6546:47:126","nodes":[],"constant":false,"mutability":"mutable","name":"surpressStateMutabilityWarning","nameLocation":"6563:30:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73074,"name":"uint256","nodeType":"ElementaryTypeName","src":"6546:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":73078,"nodeType":"VariableDeclaration","src":"6678:47:126","nodes":[],"constant":false,"functionSelector":"351d9f96","mutability":"mutable","name":"proposalType","nameLocation":"6713:12:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":73077,"nodeType":"UserDefinedTypeName","pathNode":{"id":73076,"name":"StrategyStruct.ProposalType","nameLocations":["6678:14:126","6693:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"6678:27:126"},"referencedDeclaration":72797,"src":"6678:27:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"public"},{"id":73081,"nodeType":"VariableDeclaration","src":"6784:45:126","nodes":[],"constant":false,"functionSelector":"2dbd6fdd","mutability":"mutable","name":"pointSystem","nameLocation":"6818:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73080,"nodeType":"UserDefinedTypeName","pathNode":{"id":73079,"name":"StrategyStruct.PointSystem","nameLocations":["6784:14:126","6799:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"6784:26:126"},"referencedDeclaration":72802,"src":"6784:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"public"},{"id":73084,"nodeType":"VariableDeclaration","src":"6835:51:126","nodes":[],"constant":false,"functionSelector":"a47ff7e5","mutability":"mutable","name":"pointConfig","nameLocation":"6875:11:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":73083,"nodeType":"UserDefinedTypeName","pathNode":{"id":73082,"name":"StrategyStruct.PointSystemConfig","nameLocations":["6835:14:126","6850:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"6835:32:126"},"referencedDeclaration":72855,"src":"6835:32:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"public"},{"id":73087,"nodeType":"VariableDeclaration","src":"6919:42:126","nodes":[],"constant":false,"functionSelector":"6003e414","mutability":"mutable","name":"registryCommunity","nameLocation":"6944:17:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"},"typeName":{"id":73086,"nodeType":"UserDefinedTypeName","pathNode":{"id":73085,"name":"RegistryCommunity","nameLocations":["6919:17:126"],"nodeType":"IdentifierPath","referencedDeclaration":77675,"src":"6919:17:126"},"referencedDeclaration":77675,"src":"6919:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"visibility":"public"},{"id":73092,"nodeType":"VariableDeclaration","src":"7028:60:126","nodes":[],"constant":false,"functionSelector":"013cf08b","mutability":"mutable","name":"proposals","nameLocation":"7079:9:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"typeName":{"id":73091,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73088,"name":"uint256","nodeType":"ElementaryTypeName","src":"7036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"7028:43:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73090,"nodeType":"UserDefinedTypeName","pathNode":{"id":73089,"name":"StrategyStruct.Proposal","nameLocations":["7047:14:126","7062:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"7047:23:126"},"referencedDeclaration":72847,"src":"7047:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}}},"visibility":"public"},{"id":73096,"nodeType":"VariableDeclaration","src":"7144:53:126","nodes":[],"constant":false,"functionSelector":"5db64b99","mutability":"mutable","name":"totalVoterStakePct","nameLocation":"7179:18:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":73095,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73093,"name":"address","nodeType":"ElementaryTypeName","src":"7152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7144:27:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":73094,"name":"uint256","nodeType":"ElementaryTypeName","src":"7163:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":73101,"nodeType":"VariableDeclaration","src":"7235:57:126","nodes":[],"constant":false,"functionSelector":"868c57b8","mutability":"mutable","name":"voterStakedProposals","nameLocation":"7272:20:126","scope":75561,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"typeName":{"id":73100,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":73097,"name":"address","nodeType":"ElementaryTypeName","src":"7243:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7235:29:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[])"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"baseType":{"id":73098,"name":"uint256","nodeType":"ElementaryTypeName","src":"7254:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73099,"nodeType":"ArrayTypeName","src":"7254:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"visibility":"public"},{"id":73114,"nodeType":"FunctionDefinition","src":"7496:72:126","nodes":[],"body":{"id":73113,"nodeType":"Block","src":"7566:2:126","nodes":[],"statements":[]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[{"arguments":[{"id":73108,"name":"_allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73103,"src":"7544:5:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7536:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73106,"name":"address","nodeType":"ElementaryTypeName","src":"7536:7:126","typeDescriptions":{}}},"id":73109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7536:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"43565374726174656779","id":73110,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7552:12:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_5f43243e98d2b877d41079bf899c9372a6b91af5be3180830de9d43f93117b2e","typeString":"literal_string \"CVStrategy\""},"value":"CVStrategy"}],"id":73111,"kind":"baseConstructorSpecifier","modifierName":{"id":73105,"name":"BaseStrategy","nameLocations":["7523:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"7523:12:126"},"nodeType":"ModifierInvocation","src":"7523:42:126"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73104,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73103,"mutability":"mutable","name":"_allo","nameLocation":"7516:5:126","nodeType":"VariableDeclaration","scope":73114,"src":"7508:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73102,"name":"address","nodeType":"ElementaryTypeName","src":"7508:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7507:15:126"},"returnParameters":{"id":73112,"nodeType":"ParameterList","parameters":[],"src":"7566:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73198,"nodeType":"FunctionDefinition","src":"7574:1028:126","nodes":[],"body":{"id":73197,"nodeType":"Block","src":"7640:962:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":73122,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"7670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73121,"name":"__BaseStrategy_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3503,"src":"7650:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":73123,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7650:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73124,"nodeType":"ExpressionStatement","src":"7650:28:126"},{"assignments":[73129],"declarations":[{"constant":false,"id":73129,"mutability":"mutable","name":"ip","nameLocation":"7727:2:126","nodeType":"VariableDeclaration","scope":73197,"src":"7688:41:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":73128,"nodeType":"UserDefinedTypeName","pathNode":{"id":73127,"name":"StrategyStruct.InitializeParams","nameLocations":["7688:14:126","7703:16:126"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"7688:31:126"},"referencedDeclaration":72883,"src":"7688:31:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":73137,"initialValue":{"arguments":[{"id":73132,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73118,"src":"7743:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73133,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"7751:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73134,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"7766:16:126","memberName":"InitializeParams","nodeType":"MemberAccess","referencedDeclaration":72883,"src":"7751:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"id":73135,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"7750:33:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_InitializeParams_$72883_storage_ptr_$","typeString":"type(struct StrategyStruct.InitializeParams storage pointer)"}],"expression":{"id":73130,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"7732:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73131,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"7736:6:126","memberName":"decode","nodeType":"MemberAccess","src":"7732:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7732:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"7688:96:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73144,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73138,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8139:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73139,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8142:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"8139:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8171:1:126","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":73141,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8163:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73140,"name":"address","nodeType":"ElementaryTypeName","src":"8163:7:126","typeDescriptions":{}}},"id":73143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8139:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73149,"nodeType":"IfStatement","src":"8135:94:126","trueBody":{"id":73148,"nodeType":"Block","src":"8175:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73145,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"8196:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8196:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73147,"nodeType":"RevertStatement","src":"8189:29:126"}]}},{"expression":{"id":73155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73150,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"8239:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":73152,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8277:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73153,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8280:17:126","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"8277:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73151,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"8259:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77675_$","typeString":"type(contract RegistryCommunity)"}},"id":73154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8259:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"src":"8239:59:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73156,"nodeType":"ExpressionStatement","src":"8239:59:126"},{"expression":{"id":73160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73157,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"8308:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73158,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8316:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73159,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8319:5:126","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72864,"src":"8316:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8308:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73161,"nodeType":"ExpressionStatement","src":"8308:16:126"},{"expression":{"id":73165,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73162,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"8334:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73163,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8345:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73164,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8348:8:126","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72866,"src":"8345:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8334:22:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73166,"nodeType":"ExpressionStatement","src":"8334:22:126"},{"expression":{"id":73170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73167,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"8366:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73168,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8375:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73169,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8378:6:126","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72868,"src":"8375:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8366:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73171,"nodeType":"ExpressionStatement","src":"8366:18:126"},{"expression":{"id":73175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73172,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"8394:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73173,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8409:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8412:12:126","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72873,"src":"8409:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"8394:30:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"id":73176,"nodeType":"ExpressionStatement","src":"8394:30:126"},{"expression":{"id":73180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73177,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"8434:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73178,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8448:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73179,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8451:11:126","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"8448:14:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"8434:28:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"id":73181,"nodeType":"ExpressionStatement","src":"8434:28:126"},{"expression":{"id":73185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73182,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"8472:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73183,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8486:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73184,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8489:11:126","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72879,"src":"8486:14:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"8472:28:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73186,"nodeType":"ExpressionStatement","src":"8472:28:126"},{"expression":{"id":73190,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73187,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"8510:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73188,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8532:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":73189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8535:18:126","memberName":"minThresholdPoints","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"8532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8510:43:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73191,"nodeType":"ExpressionStatement","src":"8510:43:126"},{"eventCall":{"arguments":[{"id":73193,"name":"_poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73116,"src":"8583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73194,"name":"ip","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73129,"src":"8592:2:126","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"id":73192,"name":"InitializedCV","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72970,"src":"8569:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_struct$_InitializeParams_$72883_memory_ptr_$returns$__$","typeString":"function (uint256,struct StrategyStruct.InitializeParams memory)"}},"id":73195,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8569:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73196,"nodeType":"EmitStatement","src":"8564:31:126"}]},"baseFunctions":[2939],"functionSelector":"edd146cc","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7583:10:126","parameters":{"id":73119,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73116,"mutability":"mutable","name":"_poolId","nameLocation":"7602:7:126","nodeType":"VariableDeclaration","scope":73198,"src":"7594:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73115,"name":"uint256","nodeType":"ElementaryTypeName","src":"7594:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":73118,"mutability":"mutable","name":"_data","nameLocation":"7624:5:126","nodeType":"VariableDeclaration","scope":73198,"src":"7611:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73117,"name":"bytes","nodeType":"ElementaryTypeName","src":"7611:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"7593:37:126"},"returnParameters":{"id":73120,"nodeType":"ParameterList","parameters":[],"src":"7640:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73202,"nodeType":"FunctionDefinition","src":"8773:83:126","nodes":[],"body":{"id":73201,"nodeType":"Block","src":"8801:55:126","nodes":[],"statements":[]},"implemented":true,"kind":"fallback","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73199,"nodeType":"ParameterList","parameters":[],"src":"8781:2:126"},"returnParameters":{"id":73200,"nodeType":"ParameterList","parameters":[],"src":"8801:0:126"},"scope":75561,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73206,"nodeType":"FunctionDefinition","src":"8862:135:126","nodes":[],"body":{"id":73205,"nodeType":"Block","src":"8889:108:126","nodes":[],"statements":[]},"implemented":true,"kind":"receive","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":73203,"nodeType":"ParameterList","parameters":[],"src":"8869:2:126"},"returnParameters":{"id":73204,"nodeType":"ParameterList","parameters":[],"src":"8889:0:126"},"scope":75561,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":73227,"nodeType":"FunctionDefinition","src":"9003:202:126","nodes":[],"body":{"id":73226,"nodeType":"Block","src":"9094:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"id":73219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73214,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73208,"src":"9111:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"arguments":[{"id":73216,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"9131:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":73215,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"9126:4:126","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":73217,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9126:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":73218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"9147:11:126","memberName":"interfaceId","nodeType":"MemberAccess","src":"9126:32:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"src":"9111:47:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":73222,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73208,"src":"9186:11:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":73220,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"9162:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_CVStrategy_$75561_$","typeString":"type(contract super CVStrategy)"}},"id":73221,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9168:17:126","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58096,"src":"9162:23:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":73223,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9162:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9111:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":73213,"id":73225,"nodeType":"Return","src":"9104:94:126"}]},"baseFunctions":[58096],"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"9012:17:126","overrides":{"id":73210,"nodeType":"OverrideSpecifier","overrides":[],"src":"9070:8:126"},"parameters":{"id":73209,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73208,"mutability":"mutable","name":"interfaceId","nameLocation":"9037:11:126","nodeType":"VariableDeclaration","scope":73227,"src":"9030:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":73207,"name":"bytes4","nodeType":"ElementaryTypeName","src":"9030:6:126","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"9029:20:126"},"returnParameters":{"id":73213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73227,"src":"9088:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73211,"name":"bool","nodeType":"ElementaryTypeName","src":"9088:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"9087:6:126"},"scope":75561,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":73268,"nodeType":"FunctionDefinition","src":"9376:377:126","nodes":[],"body":{"id":73267,"nodeType":"Block","src":"9435:318:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73232,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73229,"src":"9449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9468:1:126","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":73234,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9460:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73233,"name":"address","nodeType":"ElementaryTypeName","src":"9460:7:126","typeDescriptions":{}}},"id":73236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9460:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9449:21:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73242,"nodeType":"IfStatement","src":"9445:77:126","trueBody":{"id":73241,"nodeType":"Block","src":"9472:50:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73238,"name":"UserCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72895,"src":"9493:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9493:18:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73240,"nodeType":"RevertStatement","src":"9486:25:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73251,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73245,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9543:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":73244,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9535:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73243,"name":"address","nodeType":"ElementaryTypeName","src":"9535:7:126","typeDescriptions":{}}},"id":73246,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9535:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9573:1:126","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":73248,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9565:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73247,"name":"address","nodeType":"ElementaryTypeName","src":"9565:7:126","typeDescriptions":{}}},"id":73250,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9565:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9535:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73256,"nodeType":"IfStatement","src":"9531:100:126","trueBody":{"id":73255,"nodeType":"Block","src":"9577:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73252,"name":"RegistryCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72915,"src":"9598:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73253,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9598:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73254,"nodeType":"RevertStatement","src":"9591:29:126"}]}},{"condition":{"id":73261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"9644:36:126","subExpression":{"arguments":[{"id":73259,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73229,"src":"9672:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73257,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9645:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9663:8:126","memberName":"isMember","nodeType":"MemberAccess","referencedDeclaration":77256,"src":"9645:26:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view external returns (bool)"}},"id":73260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9645:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73266,"nodeType":"IfStatement","src":"9640:93:126","trueBody":{"id":73265,"nodeType":"Block","src":"9682:51:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73262,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72897,"src":"9703:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9703:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73264,"nodeType":"RevertStatement","src":"9696:26:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"checkSenderIsMember","nameLocation":"9385:19:126","parameters":{"id":73230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73229,"mutability":"mutable","name":"_sender","nameLocation":"9413:7:126","nodeType":"VariableDeclaration","scope":73268,"src":"9405:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73228,"name":"address","nodeType":"ElementaryTypeName","src":"9405:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9404:17:126"},"returnParameters":{"id":73231,"nodeType":"ParameterList","parameters":[],"src":"9435:0:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73284,"nodeType":"FunctionDefinition","src":"9759:162:126","nodes":[],"body":{"id":73283,"nodeType":"Block","src":"9805:116:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73271,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9819:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9823:6:126","memberName":"sender","nodeType":"MemberAccess","src":"9819:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"id":73275,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"9841:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":73274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9833:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73273,"name":"address","nodeType":"ElementaryTypeName","src":"9833:7:126","typeDescriptions":{}}},"id":73276,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9833:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9819:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73282,"nodeType":"IfStatement","src":"9815:100:126","trueBody":{"id":73281,"nodeType":"Block","src":"9861:54:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73278,"name":"OnlyCommunityAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72955,"src":"9882:20:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9882:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73280,"nodeType":"RevertStatement","src":"9875:29:126"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryCommunity","nameLocation":"9768:21:126","parameters":{"id":73269,"nodeType":"ParameterList","parameters":[],"src":"9789:2:126"},"returnParameters":{"id":73270,"nodeType":"ParameterList","parameters":[],"src":"9805:0:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":73300,"nodeType":"FunctionDefinition","src":"9927:132:126","nodes":[],"body":{"id":73299,"nodeType":"Block","src":"9986:73:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73289,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73286,"src":"10000:8:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73292,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10020:1:126","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":73291,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10012:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73290,"name":"address","nodeType":"ElementaryTypeName","src":"10012:7:126","typeDescriptions":{}}},"id":73293,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10012:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10000:22:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73298,"nodeType":"IfStatement","src":"9996:56:126","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73295,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72913,"src":"10031:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10031:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73297,"nodeType":"RevertStatement","src":"10024:28:126"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"revertZeroAddress","nameLocation":"9936:17:126","parameters":{"id":73287,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73286,"mutability":"mutable","name":"_address","nameLocation":"9962:8:126","nodeType":"VariableDeclaration","scope":73300,"src":"9954:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73285,"name":"address","nodeType":"ElementaryTypeName","src":"9954:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"9953:18:126"},"returnParameters":{"id":73288,"nodeType":"ParameterList","parameters":[],"src":"9986:0:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73475,"nodeType":"FunctionDefinition","src":"10385:1945:126","nodes":[],"body":{"id":73474,"nodeType":"Block","src":"10486:1844:126","nodes":[],"statements":[{"expression":{"id":73310,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"10541:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":73311,"nodeType":"ExpressionStatement","src":"10541:5:126"},{"assignments":[73316],"declarations":[{"constant":false,"id":73316,"mutability":"mutable","name":"proposal","nameLocation":"10593:8:126","nodeType":"VariableDeclaration","scope":73474,"src":"10556:45:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal"},"typeName":{"id":73315,"nodeType":"UserDefinedTypeName","pathNode":{"id":73314,"name":"StrategyStruct.CreateProposal","nameLocations":["10556:14:126","10571:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72814,"src":"10556:29:126"},"referencedDeclaration":72814,"src":"10556:29:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_storage_ptr","typeString":"struct StrategyStruct.CreateProposal"}},"visibility":"internal"}],"id":73324,"initialValue":{"arguments":[{"id":73319,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73302,"src":"10615:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"expression":{"id":73320,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"10623:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73321,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10638:14:126","memberName":"CreateProposal","nodeType":"MemberAccess","referencedDeclaration":72814,"src":"10623:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"id":73322,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"10622:31:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_struct$_CreateProposal_$72814_storage_ptr_$","typeString":"type(struct StrategyStruct.CreateProposal storage pointer)"}],"expression":{"id":73317,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10604:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":73318,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10608:6:126","memberName":"decode","nodeType":"MemberAccess","src":"10604:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":73323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10604:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"nodeType":"VariableDeclarationStatement","src":"10556:98:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73325,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"10769:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73326,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10778:6:126","memberName":"poolId","nodeType":"MemberAccess","referencedDeclaration":72804,"src":"10769:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":73327,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10788:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10769:20:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73333,"nodeType":"IfStatement","src":"10765:78:126","trueBody":{"id":73332,"nodeType":"Block","src":"10791:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73329,"name":"PoolIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72911,"src":"10812:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10812:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73331,"nodeType":"RevertStatement","src":"10805:27:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":73338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73334,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"10919:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73335,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"10935:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10950:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72797,"src":"10935:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72797_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":73337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10963:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72795,"src":"10935:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"10919:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73385,"nodeType":"IfStatement","src":"10915:721:126","trueBody":{"id":73384,"nodeType":"Block","src":"10972:664:126","statements":[{"expression":{"arguments":[{"expression":{"id":73340,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11004:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73341,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11013:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11004:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73339,"name":"revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73300,"src":"10986:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":73342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10986:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73343,"nodeType":"ExpressionStatement","src":"10986:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73344,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11091:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73345,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11100:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11091:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":73348,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11126:1:126","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":73347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11118:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73346,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:126","typeDescriptions":{}}},"id":73349,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11118:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11091:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73355,"nodeType":"IfStatement","src":"11087:102:126","trueBody":{"id":73354,"nodeType":"Block","src":"11130:59:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73351,"name":"TokenCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72905,"src":"11155:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73352,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11155:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73353,"nodeType":"RevertStatement","src":"11148:26:126"}]}},{"assignments":[73357],"declarations":[{"constant":false,"id":73357,"mutability":"mutable","name":"poolToken","nameLocation":"11210:9:126","nodeType":"VariableDeclaration","scope":73384,"src":"11202:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73356,"name":"address","nodeType":"ElementaryTypeName","src":"11202:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73365,"initialValue":{"expression":{"arguments":[{"id":73362,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"11245:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73358,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11222:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}},"id":73359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11227:7:126","memberName":"getAllo","nodeType":"MemberAccess","referencedDeclaration":3421,"src":"11222:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IAllo_$2610_$","typeString":"function () view external returns (contract IAllo)"}},"id":73360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:14:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":73361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11237:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"11222:22:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":73363,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11222:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":73364,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11253:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"11222:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11202:56:126"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":73369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73366,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11276:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73367,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11285:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11276:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":73368,"name":"poolToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73357,"src":"11303:9:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11276:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73374,"nodeType":"IfStatement","src":"11272:234:126","trueBody":{"id":73373,"nodeType":"Block","src":"11314:192:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73370,"name":"TokenNotAllowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72907,"src":"11474:15:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73371,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11474:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73372,"nodeType":"RevertStatement","src":"11467:24:126"}]}},{"condition":{"arguments":[{"expression":{"id":73376,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11539:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73377,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11548:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"11539:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73375,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"11523:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":73378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11523:41:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73383,"nodeType":"IfStatement","src":"11519:107:126","trueBody":{"id":73382,"nodeType":"Block","src":"11566:60:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73379,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"11591:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11591:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73381,"nodeType":"RevertStatement","src":"11584:27:126"}]}}]}},{"assignments":[73387],"declarations":[{"constant":false,"id":73387,"mutability":"mutable","name":"proposalId","nameLocation":"11653:10:126","nodeType":"VariableDeclaration","scope":73474,"src":"11645:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73386,"name":"uint256","nodeType":"ElementaryTypeName","src":"11645:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73390,"initialValue":{"id":73389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"11666:17:126","subExpression":{"id":73388,"name":"proposalCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73066,"src":"11668:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11645:38:126"},{"assignments":[73395],"declarations":[{"constant":false,"id":73395,"mutability":"mutable","name":"p","nameLocation":"11725:1:126","nodeType":"VariableDeclaration","scope":73474,"src":"11693:33:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":73394,"nodeType":"UserDefinedTypeName","pathNode":{"id":73393,"name":"StrategyStruct.Proposal","nameLocations":["11693:14:126","11708:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"11693:23:126"},"referencedDeclaration":72847,"src":"11693:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":73399,"initialValue":{"baseExpression":{"id":73396,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"11729:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":73398,"indexExpression":{"id":73397,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"11739:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11729:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11693:57:126"},{"expression":{"id":73404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73400,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11761:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73402,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11763:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"11761:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73403,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"11776:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11761:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73405,"nodeType":"ExpressionStatement","src":"11761:25:126"},{"expression":{"id":73410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73406,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11796:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73408,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11798:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"11796:11:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":73409,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73304,"src":"11810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11796:21:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73411,"nodeType":"ExpressionStatement","src":"11796:21:126"},{"expression":{"id":73417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73412,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11827:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73414,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11829:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"11827:13:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73415,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11843:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73416,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11852:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11843:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11827:36:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73418,"nodeType":"ExpressionStatement","src":"11827:36:126"},{"expression":{"id":73424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73419,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11873:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73421,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11875:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"11873:16:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73422,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11892:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73423,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11901:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11892:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11873:42:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":73425,"nodeType":"ExpressionStatement","src":"11873:42:126"},{"expression":{"id":73431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73426,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"11925:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73428,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11927:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"11925:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73429,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"11945:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73430,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11954:15:126","memberName":"amountRequested","nodeType":"MemberAccess","referencedDeclaration":72808,"src":"11945:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11925:44:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73432,"nodeType":"ExpressionStatement","src":"11925:44:126"},{"expression":{"id":73439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73433,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12030:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73435,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12032:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"12030:16:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":73436,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"12049:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12064:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"12049:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":73438,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12079:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"12049:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"12030:55:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"id":73440,"nodeType":"ExpressionStatement","src":"12030:55:126"},{"expression":{"id":73446,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73441,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12095:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73443,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12097:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"12095:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73444,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"12109:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":73445,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12115:6:126","memberName":"number","nodeType":"MemberAccess","src":"12109:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12095:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73447,"nodeType":"ExpressionStatement","src":"12095:26:126"},{"expression":{"id":73452,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73448,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12131:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73450,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12133:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"12131:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":73451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12131:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73453,"nodeType":"ExpressionStatement","src":"12131:20:126"},{"expression":{"id":73459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":73454,"name":"p","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73395,"src":"12197:1:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":73456,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12199:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72846,"src":"12197:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":73457,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73316,"src":"12210:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_CreateProposal_$72814_memory_ptr","typeString":"struct StrategyStruct.CreateProposal memory"}},"id":73458,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"12219:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72813,"src":"12210:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12197:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":73460,"nodeType":"ExpressionStatement","src":"12197:30:126"},{"eventCall":{"arguments":[{"id":73462,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"12259:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73463,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"12267:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73461,"name":"ProposalCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72984,"src":"12243:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":73464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12243:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73465,"nodeType":"EmitStatement","src":"12238:40:126"},{"expression":{"arguments":[{"arguments":[{"id":73470,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73387,"src":"12311:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73469,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12303:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":73468,"name":"uint160","nodeType":"ElementaryTypeName","src":"12303:7:126","typeDescriptions":{}}},"id":73471,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12303:19:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":73467,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12295:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73466,"name":"address","nodeType":"ElementaryTypeName","src":"12295:7:126","typeDescriptions":{}}},"id":73472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12295:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":73309,"id":73473,"nodeType":"Return","src":"12288:35:126"}]},"baseFunctions":[3809],"implemented":true,"kind":"function","modifiers":[],"name":"_registerRecipient","nameLocation":"10394:18:126","overrides":{"id":73306,"nodeType":"OverrideSpecifier","overrides":[],"src":"10459:8:126"},"parameters":{"id":73305,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73302,"mutability":"mutable","name":"_data","nameLocation":"10426:5:126","nodeType":"VariableDeclaration","scope":73475,"src":"10413:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73301,"name":"bytes","nodeType":"ElementaryTypeName","src":"10413:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73304,"mutability":"mutable","name":"_sender","nameLocation":"10441:7:126","nodeType":"VariableDeclaration","scope":73475,"src":"10433:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73303,"name":"address","nodeType":"ElementaryTypeName","src":"10433:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10412:37:126"},"returnParameters":{"id":73309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73475,"src":"10477:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73307,"name":"address","nodeType":"ElementaryTypeName","src":"10477:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10476:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73505,"nodeType":"FunctionDefinition","src":"12336:253:126","nodes":[],"body":{"id":73504,"nodeType":"Block","src":"12371:218:126","nodes":[],"statements":[{"assignments":[73479],"declarations":[{"constant":false,"id":73479,"mutability":"mutable","name":"member","nameLocation":"12389:6:126","nodeType":"VariableDeclaration","scope":73504,"src":"12381:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73478,"name":"address","nodeType":"ElementaryTypeName","src":"12381:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":73482,"initialValue":{"expression":{"id":73480,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12398:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12402:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12398:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12381:27:126"},{"expression":{"arguments":[{"id":73486,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73479,"src":"12461:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73489,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12477:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73488,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12469:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73487,"name":"address","nodeType":"ElementaryTypeName","src":"12469:7:126","typeDescriptions":{}}},"id":73490,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12469:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73483,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12418:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12436:24:126","memberName":"activateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76634,"src":"12418:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12418:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73492,"nodeType":"ExpressionStatement","src":"12418:65:126"},{"expression":{"id":73502,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73493,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"12493:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[{"id":73496,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73479,"src":"12560:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73499,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12576:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73498,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12568:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73497,"name":"address","nodeType":"ElementaryTypeName","src":"12568:7:126","typeDescriptions":{}}},"id":73500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12568:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73494,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12517:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12535:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"12517:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12517:65:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12493:89:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73503,"nodeType":"ExpressionStatement","src":"12493:89:126"}]},"functionSelector":"814516ad","implemented":true,"kind":"function","modifiers":[],"name":"activatePoints","nameLocation":"12345:14:126","parameters":{"id":73476,"nodeType":"ParameterList","parameters":[],"src":"12359:2:126"},"returnParameters":{"id":73477,"nodeType":"ParameterList","parameters":[],"src":"12371:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73514,"nodeType":"FunctionDefinition","src":"12595:81:126","nodes":[],"body":{"id":73513,"nodeType":"Block","src":"12630:46:126","nodes":[],"statements":[{"expression":{"arguments":[{"expression":{"id":73509,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12658:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":73510,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12662:6:126","memberName":"sender","nodeType":"MemberAccess","src":"12658:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73508,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"12640:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12640:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73512,"nodeType":"ExpressionStatement","src":"12640:29:126"}]},"functionSelector":"1ddf1e23","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12604:16:126","parameters":{"id":73506,"nodeType":"ParameterList","parameters":[],"src":"12620:2:126"},"returnParameters":{"id":73507,"nodeType":"ParameterList","parameters":[],"src":"12630:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":73527,"nodeType":"FunctionDefinition","src":"12682:128:126","nodes":[],"body":{"id":73526,"nodeType":"Block","src":"12734:76:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73519,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"12744:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73520,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12744:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73521,"nodeType":"ExpressionStatement","src":"12744:23:126"},{"expression":{"arguments":[{"id":73523,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73516,"src":"12795:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73522,"name":"_deactivatePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73562,"src":"12777:17:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12777:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73525,"nodeType":"ExpressionStatement","src":"12777:26:126"}]},"baseFunctions":[72768],"functionSelector":"6453d9c4","implemented":true,"kind":"function","modifiers":[],"name":"deactivatePoints","nameLocation":"12691:16:126","parameters":{"id":73517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73516,"mutability":"mutable","name":"_member","nameLocation":"12716:7:126","nodeType":"VariableDeclaration","scope":73527,"src":"12708:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73515,"name":"address","nodeType":"ElementaryTypeName","src":"12708:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12707:17:126"},"returnParameters":{"id":73518,"nodeType":"ParameterList","parameters":[],"src":"12734:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73562,"nodeType":"FunctionDefinition","src":"12816:351:126","nodes":[],"body":{"id":73561,"nodeType":"Block","src":"12869:298:126","nodes":[],"statements":[{"expression":{"id":73541,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73532,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"12879:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"arguments":[{"id":73535,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"12946:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73538,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12963:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73537,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12955:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73536,"name":"address","nodeType":"ElementaryTypeName","src":"12955:7:126","typeDescriptions":{}}},"id":73539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12955:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73533,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12903:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12921:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"12903:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12903:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12879:90:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73542,"nodeType":"ExpressionStatement","src":"12879:90:126"},{"expression":{"arguments":[{"id":73546,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13024:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73549,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13041:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73548,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13033:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73547,"name":"address","nodeType":"ElementaryTypeName","src":"13033:7:126","typeDescriptions":{}}},"id":73550,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13033:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73543,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"12979:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12997:26:126","memberName":"deactivateMemberInStrategy","nodeType":"MemberAccess","referencedDeclaration":76693,"src":"12979:44:126","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) external"}},"id":73551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12979:68:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73552,"nodeType":"ExpressionStatement","src":"12979:68:126"},{"expression":{"arguments":[{"id":73554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13111:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73553,"name":"withdraw","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74436,"src":"13102:8:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13102:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73556,"nodeType":"ExpressionStatement","src":"13102:17:126"},{"eventCall":{"arguments":[{"id":73558,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73529,"src":"13152:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73557,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73020,"src":"13134:17:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":73559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13134:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73560,"nodeType":"EmitStatement","src":"13129:31:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_deactivatePoints","nameLocation":"12825:17:126","parameters":{"id":73530,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73529,"mutability":"mutable","name":"_member","nameLocation":"12851:7:126","nodeType":"VariableDeclaration","scope":73562,"src":"12843:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73528,"name":"address","nodeType":"ElementaryTypeName","src":"12843:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12842:17:126"},"returnParameters":{"id":73531,"nodeType":"ParameterList","parameters":[],"src":"12869:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":73646,"nodeType":"FunctionDefinition","src":"13173:958:126","nodes":[],"body":{"id":73645,"nodeType":"Block","src":"13264:867:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73571,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"13319:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73572,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13319:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73573,"nodeType":"ExpressionStatement","src":"13319:23:126"},{"assignments":[73575],"declarations":[{"constant":false,"id":73575,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13360:16:126","nodeType":"VariableDeclaration","scope":73645,"src":"13352:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73574,"name":"uint256","nodeType":"ElementaryTypeName","src":"13352:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73577,"initialValue":{"hexValue":"30","id":73576,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13379:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13352:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73578,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13394:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73579,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13409:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73580,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13424:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13409:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73581,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13436:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"13409:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13394:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73590,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13539:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73591,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13554:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13569:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13554:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13581:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72799,"src":"13554:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13539:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73603,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"13687:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73604,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13702:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13717:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13702:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13729:9:126","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72801,"src":"13702:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13687:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73616,"nodeType":"IfStatement","src":"13683:148:126","trueBody":{"id":73615,"nodeType":"Block","src":"13740:91:126","statements":[{"expression":{"id":73613,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73608,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13754:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73610,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13796:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73611,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13805:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73609,"name":"increasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73859,"src":"13773:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13773:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13754:66:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73614,"nodeType":"ExpressionStatement","src":"13754:66:126"}]}},"id":73617,"nodeType":"IfStatement","src":"13535:296:126","trueBody":{"id":73602,"nodeType":"Block","src":"13589:88:126","statements":[{"expression":{"id":73600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73595,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13603:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73597,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13642:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73598,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13651:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73596,"name":"increasePowerCapped","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73775,"src":"13622:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13622:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13603:63:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73601,"nodeType":"ExpressionStatement","src":"13603:63:126"}]}},"id":73618,"nodeType":"IfStatement","src":"13390:441:126","trueBody":{"id":73589,"nodeType":"Block","src":"13447:82:126","statements":[{"expression":{"id":73587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73583,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13461:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73585,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"13503:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73584,"name":"increasePowerUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73712,"src":"13480:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13480:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13461:57:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73588,"nodeType":"ExpressionStatement","src":"13461:57:126"}]}},{"assignments":[73620],"declarations":[{"constant":false,"id":73620,"mutability":"mutable","name":"isActivated","nameLocation":"13845:11:126","nodeType":"VariableDeclaration","scope":73645,"src":"13840:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":73619,"name":"bool","nodeType":"ElementaryTypeName","src":"13840:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":73629,"initialValue":{"arguments":[{"id":73623,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"13905:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73626,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"13922:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73625,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"13914:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73624,"name":"address","nodeType":"ElementaryTypeName","src":"13914:7:126","typeDescriptions":{}}},"id":73627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13914:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73621,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"13859:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13877:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76168,"src":"13859:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":73628,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13859:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"13840:88:126"},{"condition":{"id":73630,"name":"isActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73620,"src":"13942:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73636,"nodeType":"IfStatement","src":"13938:82:126","trueBody":{"id":73635,"nodeType":"Block","src":"13955:65:126","statements":[{"expression":{"id":73633,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73631,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"13969:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":73632,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"13993:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13969:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73634,"nodeType":"ExpressionStatement","src":"13969:40:126"}]}},{"eventCall":{"arguments":[{"id":73638,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73564,"src":"14049:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73639,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73566,"src":"14058:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73640,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"14074:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73637,"name":"PowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72996,"src":"14034:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14034:57:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73642,"nodeType":"EmitStatement","src":"14029:62:126"},{"expression":{"id":73643,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73575,"src":"14108:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73570,"id":73644,"nodeType":"Return","src":"14101:23:126"}]},"baseFunctions":[72777],"functionSelector":"782aadff","implemented":true,"kind":"function","modifiers":[],"name":"increasePower","nameLocation":"13182:13:126","parameters":{"id":73567,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73564,"mutability":"mutable","name":"_member","nameLocation":"13204:7:126","nodeType":"VariableDeclaration","scope":73646,"src":"13196:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73563,"name":"address","nodeType":"ElementaryTypeName","src":"13196:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73566,"mutability":"mutable","name":"_amountToStake","nameLocation":"13221:14:126","nodeType":"VariableDeclaration","scope":73646,"src":"13213:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73565,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13195:41:126"},"returnParameters":{"id":73570,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73569,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73646,"src":"13255:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73568,"name":"uint256","nodeType":"ElementaryTypeName","src":"13255:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13254:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73702,"nodeType":"FunctionDefinition","src":"14137:681:126","nodes":[],"body":{"id":73701,"nodeType":"Block","src":"14230:588:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":73655,"name":"onlyRegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73284,"src":"14240:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":73656,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14240:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73657,"nodeType":"ExpressionStatement","src":"14240:23:126"},{"assignments":[73659],"declarations":[{"constant":false,"id":73659,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14327:16:126","nodeType":"VariableDeclaration","scope":73701,"src":"14319:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73658,"name":"uint256","nodeType":"ElementaryTypeName","src":"14319:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73661,"initialValue":{"hexValue":"30","id":73660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14346:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14319:28:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":73672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73662,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"14361:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73663,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"14376:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14391:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"14376:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73665,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14403:9:126","memberName":"Unlimited","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"14376:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"14361:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":73671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73667,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"14416:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":73668,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"14431:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":73669,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14446:11:126","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"14431:26:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":73670,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14458:6:126","memberName":"Capped","nodeType":"MemberAccess","referencedDeclaration":72799,"src":"14431:33:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"14416:48:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"14361:103:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":73687,"nodeType":"Block","src":"14562:93:126","statements":[{"expression":{"id":73685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73680,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14576:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73682,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73648,"src":"14618:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73683,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14627:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73681,"name":"decreasePowerQuadratic","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73963,"src":"14595:22:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) view returns (uint256)"}},"id":73684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14595:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14576:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73686,"nodeType":"ExpressionStatement","src":"14576:68:126"}]},"id":73688,"nodeType":"IfStatement","src":"14357:298:126","trueBody":{"id":73679,"nodeType":"Block","src":"14466:90:126","statements":[{"expression":{"id":73677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73673,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14480:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73675,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14528:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73674,"name":"decreasePowerCappedUnlimited","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73869,"src":"14499:28:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73676,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14499:46:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14480:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73678,"nodeType":"ExpressionStatement","src":"14480:65:126"}]}},{"expression":{"id":73691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73689,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"14664:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":73690,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14688:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14664:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73692,"nodeType":"ExpressionStatement","src":"14664:40:126"},{"eventCall":{"arguments":[{"id":73694,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73648,"src":"14734:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":73695,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73650,"src":"14743:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":73696,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14761:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":73693,"name":"PowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73004,"src":"14719:14:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256)"}},"id":73697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14719:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73698,"nodeType":"EmitStatement","src":"14714:64:126"},{"expression":{"id":73699,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73659,"src":"14795:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73654,"id":73700,"nodeType":"Return","src":"14788:23:126"}]},"baseFunctions":[72786],"functionSelector":"2ed04b2b","implemented":true,"kind":"function","modifiers":[],"name":"decreasePower","nameLocation":"14146:13:126","parameters":{"id":73651,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73648,"mutability":"mutable","name":"_member","nameLocation":"14168:7:126","nodeType":"VariableDeclaration","scope":73702,"src":"14160:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73647,"name":"address","nodeType":"ElementaryTypeName","src":"14160:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73650,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"14185:16:126","nodeType":"VariableDeclaration","scope":73702,"src":"14177:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73649,"name":"uint256","nodeType":"ElementaryTypeName","src":"14177:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14159:43:126"},"returnParameters":{"id":73654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73653,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73702,"src":"14221:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73652,"name":"uint256","nodeType":"ElementaryTypeName","src":"14221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14220:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":73712,"nodeType":"FunctionDefinition","src":"14824:126:126","nodes":[],"body":{"id":73711,"nodeType":"Block","src":"14912:38:126","nodes":[],"statements":[{"expression":{"id":73709,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73704,"src":"14929:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73708,"id":73710,"nodeType":"Return","src":"14922:21:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerUnlimited","nameLocation":"14833:22:126","parameters":{"id":73705,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73704,"mutability":"mutable","name":"_amountToStake","nameLocation":"14864:14:126","nodeType":"VariableDeclaration","scope":73712,"src":"14856:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73703,"name":"uint256","nodeType":"ElementaryTypeName","src":"14856:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14855:24:126"},"returnParameters":{"id":73708,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73707,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73712,"src":"14903:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73706,"name":"uint256","nodeType":"ElementaryTypeName","src":"14903:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14902:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73775,"nodeType":"FunctionDefinition","src":"14956:615:126","nodes":[],"body":{"id":73774,"nodeType":"Block","src":"15058:513:126","nodes":[],"statements":[{"assignments":[73722],"declarations":[{"constant":false,"id":73722,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15076:16:126","nodeType":"VariableDeclaration","scope":73774,"src":"15068:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73721,"name":"uint256","nodeType":"ElementaryTypeName","src":"15068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73724,"initialValue":{"id":73723,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73716,"src":"15095:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15068:41:126"},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e435245415345","id":73728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15131:20:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},"value":"POINTS TO INCREASE"},{"id":73729,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15153:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_ef3d3d59430373ce7e3d099486636fe73635f3082757c009fe2ef0b043a4ebb1","typeString":"literal_string \"POINTS TO INCREASE\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73725,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15119:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15127:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15119:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73730,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15119:51:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73731,"nodeType":"ExpressionStatement","src":"15119:51:126"},{"assignments":[73733],"declarations":[{"constant":false,"id":73733,"mutability":"mutable","name":"memberPower","nameLocation":"15188:11:126","nodeType":"VariableDeclaration","scope":73774,"src":"15180:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73732,"name":"uint256","nodeType":"ElementaryTypeName","src":"15180:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73742,"initialValue":{"arguments":[{"id":73736,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73714,"src":"15245:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73739,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15262:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73738,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15254:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73737,"name":"address","nodeType":"ElementaryTypeName","src":"15254:7:126","typeDescriptions":{}}},"id":73740,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15254:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73734,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15202:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15220:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"15202:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15202:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15180:88:126"},{"expression":{"arguments":[{"hexValue":"4d454d424552504f574552","id":73746,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15290:13:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},"value":"MEMBERPOWER"},{"id":73747,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15305:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_d53146c44856b98b9530413c868d7a3bea9675ba78d0918c9dbfa4f905f5c3e8","typeString":"literal_string \"MEMBERPOWER\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73743,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15278:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73745,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15286:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15278:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73748,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15278:39:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73749,"nodeType":"ExpressionStatement","src":"15278:39:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73750,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15331:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73751,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15345:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"expression":{"id":73753,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"15364:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73754,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15376:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"15364:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15331:54:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":73764,"nodeType":"IfStatement","src":"15327:139:126","trueBody":{"id":73763,"nodeType":"Block","src":"15387:79:126","statements":[{"expression":{"id":73761,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73756,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15401:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":73757,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"15420:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73758,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15432:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"15420:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73759,"name":"memberPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73733,"src":"15444:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15420:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15401:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73762,"nodeType":"ExpressionStatement","src":"15401:54:126"}]}},{"expression":{"arguments":[{"hexValue":"504f494e545320544f20494e43524541534520454e44","id":73768,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15487:24:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},"value":"POINTS TO INCREASE END"},{"id":73769,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15513:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_7339ba314bb001e1fd9993d42999dceed278cc5b138b69398be73c13fb666826","typeString":"literal_string \"POINTS TO INCREASE END\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73765,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15475:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73767,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15483:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15475:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73770,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15475:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73771,"nodeType":"ExpressionStatement","src":"15475:55:126"},{"expression":{"id":73772,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73722,"src":"15548:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73720,"id":73773,"nodeType":"Return","src":"15541:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerCapped","nameLocation":"14965:19:126","parameters":{"id":73717,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73714,"mutability":"mutable","name":"_member","nameLocation":"14993:7:126","nodeType":"VariableDeclaration","scope":73775,"src":"14985:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73713,"name":"address","nodeType":"ElementaryTypeName","src":"14985:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73716,"mutability":"mutable","name":"_amountToStake","nameLocation":"15010:14:126","nodeType":"VariableDeclaration","scope":73775,"src":"15002:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73715,"name":"uint256","nodeType":"ElementaryTypeName","src":"15002:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14984:41:126"},"returnParameters":{"id":73720,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73719,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73775,"src":"15049:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73718,"name":"uint256","nodeType":"ElementaryTypeName","src":"15049:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15048:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73859,"nodeType":"FunctionDefinition","src":"15577:730:126","nodes":[],"body":{"id":73858,"nodeType":"Block","src":"15682:625:126","nodes":[],"statements":[{"assignments":[73785],"declarations":[{"constant":false,"id":73785,"mutability":"mutable","name":"totalStake","nameLocation":"15700:10:126","nodeType":"VariableDeclaration","scope":73858,"src":"15692:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73784,"name":"uint256","nodeType":"ElementaryTypeName","src":"15692:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73792,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73788,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73777,"src":"15753:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73786,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15713:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15731:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77029,"src":"15713:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15713:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":73790,"name":"_amountToStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73779,"src":"15764:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15713:65:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15692:86:126"},{"assignments":[73794],"declarations":[{"constant":false,"id":73794,"mutability":"mutable","name":"decimal","nameLocation":"15797:7:126","nodeType":"VariableDeclaration","scope":73858,"src":"15789:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73793,"name":"uint256","nodeType":"ElementaryTypeName","src":"15789:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73796,"initialValue":{"hexValue":"3138","id":73795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15807:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"15789:20:126"},{"clauses":[{"block":{"id":73817,"nodeType":"Block","src":"15907:52:126","statements":[{"expression":{"id":73815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73810,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"15921:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73813,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73808,"src":"15939:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73812,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15931:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73811,"name":"uint256","nodeType":"ElementaryTypeName","src":"15931:7:126","typeDescriptions":{}}},"id":73814,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15931:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15921:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73816,"nodeType":"ExpressionStatement","src":"15921:27:126"}]},"errorName":"","id":73818,"nodeType":"TryCatchClause","parameters":{"id":73809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73808,"mutability":"mutable","name":"_decimal","nameLocation":"15897:8:126","nodeType":"VariableDeclaration","scope":73818,"src":"15891:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73807,"name":"uint8","nodeType":"ElementaryTypeName","src":"15891:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"15890:16:126"},"src":"15882:77:126"},{"block":{"id":73825,"nodeType":"Block","src":"15966:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73822,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15992:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73819,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15980:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73821,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15988:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"15980:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73823,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15980:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73824,"nodeType":"ExpressionStatement","src":"15980:36:126"}]},"errorName":"","id":73826,"nodeType":"TryCatchClause","src":"15960:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73800,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"15837:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15855:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76132,"src":"15837:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73802,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15837:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73799,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15829:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73798,"name":"address","nodeType":"ElementaryTypeName","src":"15829:7:126","typeDescriptions":{}}},"id":73803,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15829:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73797,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"15823:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73804,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73805,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15871:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"15823:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15823:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73827,"nodeType":"TryStatement","src":"15819:208:126"},{"assignments":[73829],"declarations":[{"constant":false,"id":73829,"mutability":"mutable","name":"newTotalPoints","nameLocation":"16044:14:126","nodeType":"VariableDeclaration","scope":73858,"src":"16036:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73828,"name":"uint256","nodeType":"ElementaryTypeName","src":"16036:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73838,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73832,"name":"totalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73785,"src":"16071:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73835,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73833,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16084:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73834,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73794,"src":"16090:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16084:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16071:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73830,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"16061:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59169_$","typeString":"type(library Math)"}},"id":73831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16066:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58673,"src":"16061:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16061:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16036:62:126"},{"assignments":[73840],"declarations":[{"constant":false,"id":73840,"mutability":"mutable","name":"currentPoints","nameLocation":"16116:13:126","nodeType":"VariableDeclaration","scope":73858,"src":"16108:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73839,"name":"uint256","nodeType":"ElementaryTypeName","src":"16108:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73849,"initialValue":{"arguments":[{"id":73843,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73777,"src":"16175:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73846,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"16192:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73845,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16184:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73844,"name":"address","nodeType":"ElementaryTypeName","src":"16184:7:126","typeDescriptions":{}}},"id":73847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16184:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73841,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16132:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16150:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"16132:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73848,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16132:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16108:90:126"},{"assignments":[73851],"declarations":[{"constant":false,"id":73851,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"16217:16:126","nodeType":"VariableDeclaration","scope":73858,"src":"16209:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73850,"name":"uint256","nodeType":"ElementaryTypeName","src":"16209:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73855,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73854,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73852,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73829,"src":"16236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73853,"name":"currentPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73840,"src":"16253:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16236:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16209:57:126"},{"expression":{"id":73856,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73851,"src":"16284:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73783,"id":73857,"nodeType":"Return","src":"16277:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"increasePowerQuadratic","nameLocation":"15586:22:126","parameters":{"id":73780,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73777,"mutability":"mutable","name":"_member","nameLocation":"15617:7:126","nodeType":"VariableDeclaration","scope":73859,"src":"15609:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73776,"name":"address","nodeType":"ElementaryTypeName","src":"15609:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73779,"mutability":"mutable","name":"_amountToStake","nameLocation":"15634:14:126","nodeType":"VariableDeclaration","scope":73859,"src":"15626:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73778,"name":"uint256","nodeType":"ElementaryTypeName","src":"15626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15608:41:126"},"returnParameters":{"id":73783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73782,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73859,"src":"15673:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73781,"name":"uint256","nodeType":"ElementaryTypeName","src":"15673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15672:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73869,"nodeType":"FunctionDefinition","src":"16313:136:126","nodes":[],"body":{"id":73868,"nodeType":"Block","src":"16409:40:126","nodes":[],"statements":[{"expression":{"id":73866,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73861,"src":"16426:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73865,"id":73867,"nodeType":"Return","src":"16419:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerCappedUnlimited","nameLocation":"16322:28:126","parameters":{"id":73862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73861,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16359:16:126","nodeType":"VariableDeclaration","scope":73869,"src":"16351:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73860,"name":"uint256","nodeType":"ElementaryTypeName","src":"16351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16350:26:126"},"returnParameters":{"id":73865,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73864,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73869,"src":"16400:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73863,"name":"uint256","nodeType":"ElementaryTypeName","src":"16400:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16399:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":73963,"nodeType":"FunctionDefinition","src":"16455:802:126","nodes":[],"body":{"id":73962,"nodeType":"Block","src":"16562:695:126","nodes":[],"statements":[{"assignments":[73879],"declarations":[{"constant":false,"id":73879,"mutability":"mutable","name":"decimal","nameLocation":"16580:7:126","nodeType":"VariableDeclaration","scope":73962,"src":"16572:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73878,"name":"uint256","nodeType":"ElementaryTypeName","src":"16572:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73881,"initialValue":{"hexValue":"3138","id":73880,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16590:2:126","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"nodeType":"VariableDeclarationStatement","src":"16572:20:126"},{"clauses":[{"block":{"id":73902,"nodeType":"Block","src":"16690:52:126","statements":[{"expression":{"id":73900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":73895,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"16704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":73898,"name":"_decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73893,"src":"16722:8:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint8","typeString":"uint8"}],"id":73897,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16714:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":73896,"name":"uint256","nodeType":"ElementaryTypeName","src":"16714:7:126","typeDescriptions":{}}},"id":73899,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16714:17:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16704:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":73901,"nodeType":"ExpressionStatement","src":"16704:27:126"}]},"errorName":"","id":73903,"nodeType":"TryCatchClause","parameters":{"id":73894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73893,"mutability":"mutable","name":"_decimal","nameLocation":"16680:8:126","nodeType":"VariableDeclaration","scope":73903,"src":"16674:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":73892,"name":"uint8","nodeType":"ElementaryTypeName","src":"16674:5:126","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"16673:16:126"},"src":"16665:77:126"},{"block":{"id":73910,"nodeType":"Block","src":"16749:61:126","statements":[{"expression":{"arguments":[{"hexValue":"4572726f722067657474696e6720646563696d616c","id":73907,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16775:23:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""},"value":"Error getting decimal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_add5b7e354bcd4eb0c69c8b5bd8a8dca27c903f694ea26b234a6605e7f62de4d","typeString":"literal_string \"Error getting decimal\""}],"expression":{"id":73904,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16763:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16771:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22080,"src":"16763:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory) view"}},"id":73908,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16763:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73909,"nodeType":"ExpressionStatement","src":"16763:36:126"}]},"errorName":"","id":73911,"nodeType":"TryCatchClause","src":"16743:67:126"}],"externalCall":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":73885,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16620:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73886,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16638:11:126","memberName":"gardenToken","nodeType":"MemberAccess","referencedDeclaration":76132,"src":"16620:29:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_contract$_IERC20_$56900_$","typeString":"function () view external returns (contract IERC20)"}},"id":73887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16620:31:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":73884,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16612:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73883,"name":"address","nodeType":"ElementaryTypeName","src":"16612:7:126","typeDescriptions":{}}},"id":73888,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16612:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":73882,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56822,"src":"16606:5:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$56822_$","typeString":"type(contract ERC20)"}},"id":73889,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:47:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$56822","typeString":"contract ERC20"}},"id":73890,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16654:8:126","memberName":"decimals","nodeType":"MemberAccess","referencedDeclaration":56310,"src":"16606:56:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint8_$","typeString":"function () view external returns (uint8)"}},"id":73891,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16606:58:126","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":73912,"nodeType":"TryStatement","src":"16602:208:126"},{"expression":{"arguments":[{"hexValue":"5f616d6f756e74546f556e7374616b65","id":73916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16831:18:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},"value":"_amountToUnstake"},{"id":73917,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73873,"src":"16851:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_dc5364d7a51b187c038e40e987076ae6dd611b7a72008e9d9acc88e3a526f2c2","typeString":"literal_string \"_amountToUnstake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73913,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16819:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16827:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16819:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16819:49:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73919,"nodeType":"ExpressionStatement","src":"16819:49:126"},{"assignments":[73921],"declarations":[{"constant":false,"id":73921,"mutability":"mutable","name":"newTotalStake","nameLocation":"16886:13:126","nodeType":"VariableDeclaration","scope":73962,"src":"16878:21:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73920,"name":"uint256","nodeType":"ElementaryTypeName","src":"16878:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73928,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73927,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73924,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73871,"src":"16942:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73922,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"16902:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16920:21:126","memberName":"getMemberStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77029,"src":"16902:39:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":73925,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16902:48:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73926,"name":"_amountToUnstake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73873,"src":"16953:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16902:67:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16878:91:126"},{"expression":{"arguments":[{"hexValue":"6e6577546f74616c5374616b65","id":73932,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"16991:15:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},"value":"newTotalStake"},{"id":73933,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73921,"src":"17008:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_e1d5e8d6d05577c9c30b6029c3158dfad77d5a239a04e4529b5b98f0ce2f7a79","typeString":"literal_string \"newTotalStake\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73929,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"16979:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":73931,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:3:126","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"16979:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":73934,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16979:43:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73935,"nodeType":"ExpressionStatement","src":"16979:43:126"},{"assignments":[73937],"declarations":[{"constant":false,"id":73937,"mutability":"mutable","name":"newTotalPoints","nameLocation":"17040:14:126","nodeType":"VariableDeclaration","scope":73962,"src":"17032:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73936,"name":"uint256","nodeType":"ElementaryTypeName","src":"17032:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73946,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73944,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":73940,"name":"newTotalStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73921,"src":"17067:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":73941,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17083:2:126","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"id":73942,"name":"decimal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73879,"src":"17089:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17083:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17067:29:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":73938,"name":"Math","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":59169,"src":"17057:4:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Math_$59169_$","typeString":"type(library Math)"}},"id":73939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17062:4:126","memberName":"sqrt","nodeType":"MemberAccess","referencedDeclaration":58673,"src":"17057:9:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":73945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17057:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17032:65:126"},{"assignments":[73948],"declarations":[{"constant":false,"id":73948,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"17115:16:126","nodeType":"VariableDeclaration","scope":73962,"src":"17107:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73947,"name":"uint256","nodeType":"ElementaryTypeName","src":"17107:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":73959,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":73958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":73951,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73871,"src":"17177:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":73954,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"17194:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":73953,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17186:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":73952,"name":"address","nodeType":"ElementaryTypeName","src":"17186:7:126","typeDescriptions":{}}},"id":73955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17186:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":73949,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"17134:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":73950,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17152:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"17134:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":73956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17134:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":73957,"name":"newTotalPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73937,"src":"17203:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17134:83:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"17107:110:126"},{"expression":{"id":73960,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73948,"src":"17234:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73877,"id":73961,"nodeType":"Return","src":"17227:23:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"decreasePowerQuadratic","nameLocation":"16464:22:126","parameters":{"id":73874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73871,"mutability":"mutable","name":"_member","nameLocation":"16495:7:126","nodeType":"VariableDeclaration","scope":73963,"src":"16487:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73870,"name":"address","nodeType":"ElementaryTypeName","src":"16487:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":73873,"mutability":"mutable","name":"_amountToUnstake","nameLocation":"16512:16:126","nodeType":"VariableDeclaration","scope":73963,"src":"16504:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73872,"name":"uint256","nodeType":"ElementaryTypeName","src":"16504:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16486:43:126"},"returnParameters":{"id":73877,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73876,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73963,"src":"16553:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73875,"name":"uint256","nodeType":"ElementaryTypeName","src":"16553:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16552:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":73972,"nodeType":"FunctionDefinition","src":"17263:99:126","nodes":[],"body":{"id":73971,"nodeType":"Block","src":"17317:45:126","nodes":[],"statements":[{"expression":{"expression":{"id":73968,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73084,"src":"17334:11:126","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage","typeString":"struct StrategyStruct.PointSystemConfig storage ref"}},"id":73969,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17346:9:126","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"17334:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":73967,"id":73970,"nodeType":"Return","src":"17327:28:126"}]},"functionSelector":"0ba95909","implemented":true,"kind":"function","modifiers":[],"name":"getMaxAmount","nameLocation":"17272:12:126","parameters":{"id":73964,"nodeType":"ParameterList","parameters":[],"src":"17284:2:126"},"returnParameters":{"id":73967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73966,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73972,"src":"17308:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":73965,"name":"uint256","nodeType":"ElementaryTypeName","src":"17308:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17307:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73981,"nodeType":"FunctionDefinition","src":"17368:110:126","nodes":[],"body":{"id":73980,"nodeType":"Block","src":"17443:35:126","nodes":[],"statements":[{"expression":{"id":73978,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73081,"src":"17460:11:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"functionReturnParameters":73977,"id":73979,"nodeType":"Return","src":"17453:18:126"}]},"baseFunctions":[72792],"functionSelector":"c3292171","implemented":true,"kind":"function","modifiers":[],"name":"getPointSystem","nameLocation":"17377:14:126","parameters":{"id":73973,"nodeType":"ParameterList","parameters":[],"src":"17391:2:126"},"returnParameters":{"id":73977,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73976,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73981,"src":"17415:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":73975,"nodeType":"UserDefinedTypeName","pathNode":{"id":73974,"name":"StrategyStruct.PointSystem","nameLocations":["17415:14:126","17430:11:126"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"17415:26:126"},"referencedDeclaration":72802,"src":"17415:26:126","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"17414:28:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":73992,"nodeType":"FunctionDefinition","src":"17594:226:126","nodes":[],"body":{"id":73991,"nodeType":"Block","src":"17672:148:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":73988,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"17737:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":73989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17737:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":73990,"nodeType":"RevertStatement","src":"17730:23:126"}]},"functionSelector":"e33add93","implemented":true,"kind":"function","modifiers":[],"name":"supportProposal","nameLocation":"17603:15:126","parameters":{"id":73986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73985,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":73992,"src":"17619:39:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":73983,"nodeType":"UserDefinedTypeName","pathNode":{"id":73982,"name":"StrategyStruct.ProposalSupport","nameLocations":["17619:14:126","17634:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"17619:30:126"},"referencedDeclaration":72852,"src":"17619:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":73984,"nodeType":"ArrayTypeName","src":"17619:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"17618:41:126"},"returnParameters":{"id":73987,"nodeType":"ParameterList","parameters":[],"src":"17672:0:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":74048,"nodeType":"FunctionDefinition","src":"17966:551:126","nodes":[],"body":{"id":74047,"nodeType":"Block","src":"18040:477:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74001,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18070:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74000,"name":"checkSenderIsMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73268,"src":"18050:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":74002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18050:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74003,"nodeType":"ExpressionStatement","src":"18050:28:126"},{"assignments":[74005],"declarations":[{"constant":false,"id":74005,"mutability":"mutable","name":"isMemberActivatedPoints","nameLocation":"18139:23:126","nodeType":"VariableDeclaration","scope":74047,"src":"18134:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74004,"name":"bool","nodeType":"ElementaryTypeName","src":"18134:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74014,"initialValue":{"arguments":[{"id":74008,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18211:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74011,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18228:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":74010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18220:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74009,"name":"address","nodeType":"ElementaryTypeName","src":"18220:7:126","typeDescriptions":{}}},"id":74012,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18220:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74006,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"18165:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74007,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18183:27:126","memberName":"memberActivatedInStrategies","nodeType":"MemberAccess","referencedDeclaration":76168,"src":"18165:45:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_bool_$","typeString":"function (address,address) view external returns (bool)"}},"id":74013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18165:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"VariableDeclarationStatement","src":"18134:100:126"},{"condition":{"id":74016,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18248:24:126","subExpression":{"id":74015,"name":"isMemberActivatedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74005,"src":"18249:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74021,"nodeType":"IfStatement","src":"18244:78:126","trueBody":{"id":74020,"nodeType":"Block","src":"18274:48:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74017,"name":"UserIsInactive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72899,"src":"18295:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18295:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74019,"nodeType":"RevertStatement","src":"18288:23:126"}]}},{"assignments":[74027],"declarations":[{"constant":false,"id":74027,"mutability":"mutable","name":"pv","nameLocation":"18371:2:126","nodeType":"VariableDeclaration","scope":74047,"src":"18331:42:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74025,"nodeType":"UserDefinedTypeName","pathNode":{"id":74024,"name":"StrategyStruct.ProposalSupport","nameLocations":["18331:14:126","18346:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"18331:30:126"},"referencedDeclaration":72852,"src":"18331:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74026,"nodeType":"ArrayTypeName","src":"18331:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"id":74036,"initialValue":{"arguments":[{"id":74030,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73994,"src":"18387:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"baseExpression":{"expression":{"id":74031,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"18395:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18410:15:126","memberName":"ProposalSupport","nodeType":"MemberAccess","referencedDeclaration":72852,"src":"18395:30:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_ProposalSupport_$72852_storage_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport storage pointer)"}},"id":74033,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18395:32:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"id":74034,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18394:34:126","typeDescriptions":{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$","typeString":"type(struct StrategyStruct.ProposalSupport memory[] memory)"}],"expression":{"id":74028,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18376:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74029,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18380:6:126","memberName":"decode","nodeType":"MemberAccess","src":"18376:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18376:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"nodeType":"VariableDeclarationStatement","src":"18331:98:126"},{"expression":{"arguments":[{"id":74038,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18464:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74039,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74027,"src":"18473:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74037,"name":"_check_before_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74738,"src":"18439:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18439:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74041,"nodeType":"ExpressionStatement","src":"18439:37:126"},{"expression":{"arguments":[{"id":74043,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73996,"src":"18498:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":74044,"name":"pv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74027,"src":"18507:2:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}],"id":74042,"name":"_addSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75025,"src":"18486:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr_$returns$__$","typeString":"function (address,struct StrategyStruct.ProposalSupport memory[] memory)"}},"id":74045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18486:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74046,"nodeType":"ExpressionStatement","src":"18486:24:126"}]},"baseFunctions":[3817],"implemented":true,"kind":"function","modifiers":[],"name":"_allocate","nameLocation":"17975:9:126","overrides":{"id":73998,"nodeType":"OverrideSpecifier","overrides":[],"src":"18031:8:126"},"parameters":{"id":73997,"nodeType":"ParameterList","parameters":[{"constant":false,"id":73994,"mutability":"mutable","name":"_data","nameLocation":"17998:5:126","nodeType":"VariableDeclaration","scope":74048,"src":"17985:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":73993,"name":"bytes","nodeType":"ElementaryTypeName","src":"17985:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":73996,"mutability":"mutable","name":"_sender","nameLocation":"18013:7:126","nodeType":"VariableDeclaration","scope":74048,"src":"18005:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":73995,"name":"address","nodeType":"ElementaryTypeName","src":"18005:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17984:37:126"},"returnParameters":{"id":73999,"nodeType":"ParameterList","parameters":[],"src":"18040:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74204,"nodeType":"FunctionDefinition","src":"18773:1756:126","nodes":[],"body":{"id":74203,"nodeType":"Block","src":"18859:1670:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74059,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74053,"src":"18952:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74060,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18958:6:126","memberName":"length","nodeType":"MemberAccess","src":"18952:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":74061,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"18952:17:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74067,"nodeType":"IfStatement","src":"18948:76:126","trueBody":{"id":74066,"nodeType":"Block","src":"18971:53:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74063,"name":"ProposalDataIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72935,"src":"18992:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18992:21:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74065,"nodeType":"RevertStatement","src":"18985:28:126"}]}},{"assignments":[74069],"declarations":[{"constant":false,"id":74069,"mutability":"mutable","name":"proposalId","nameLocation":"19042:10:126","nodeType":"VariableDeclaration","scope":74203,"src":"19034:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74068,"name":"uint256","nodeType":"ElementaryTypeName","src":"19034:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74077,"initialValue":{"arguments":[{"id":74072,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74053,"src":"19066:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":74074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19074:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":74073,"name":"uint256","nodeType":"ElementaryTypeName","src":"19074:7:126","typeDescriptions":{}}}],"id":74075,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"19073:9:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"expression":{"id":74070,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19055:3:126","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":74071,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19059:6:126","memberName":"decode","nodeType":"MemberAccess","src":"19055:10:126","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":74076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19055:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19034:49:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74080,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74078,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19098:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74079,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19112:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19098:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74085,"nodeType":"IfStatement","src":"19094:77:126","trueBody":{"id":74084,"nodeType":"Block","src":"19115:56:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74081,"name":"ProposalIdCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72937,"src":"19136:22:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74082,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19136:24:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74083,"nodeType":"RevertStatement","src":"19129:31:126"}]}},{"assignments":[74090],"declarations":[{"constant":false,"id":74090,"mutability":"mutable","name":"proposal","nameLocation":"19212:8:126","nodeType":"VariableDeclaration","scope":74203,"src":"19180:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74089,"nodeType":"UserDefinedTypeName","pathNode":{"id":74088,"name":"StrategyStruct.Proposal","nameLocations":["19180:14:126","19195:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"19180:23:126"},"referencedDeclaration":72847,"src":"19180:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74094,"initialValue":{"baseExpression":{"id":74091,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"19223:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74093,"indexExpression":{"id":74092,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19233:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"19223:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"19180:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":74099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74095,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73078,"src":"19259:12:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":74096,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"19275:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19290:12:126","memberName":"ProposalType","nodeType":"MemberAccess","referencedDeclaration":72797,"src":"19275:27:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalType_$72797_$","typeString":"type(enum StrategyStruct.ProposalType)"}},"id":74098,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19303:7:126","memberName":"Funding","nodeType":"MemberAccess","referencedDeclaration":72795,"src":"19275:35:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"19259:51:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74202,"nodeType":"IfStatement","src":"19255:1208:126","trueBody":{"id":74201,"nodeType":"Block","src":"19312:1151:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74100,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19330:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74101,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19339:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"19330:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":74102,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19353:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19330:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74109,"nodeType":"IfStatement","src":"19326:108:126","trueBody":{"id":74108,"nodeType":"Block","src":"19365:69:126","statements":[{"errorCall":{"arguments":[{"id":74105,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19408:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74104,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"19390:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74106,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19390:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74107,"nodeType":"RevertStatement","src":"19383:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74110,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19452:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74111,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19461:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19452:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74112,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19479:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19452:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74122,"nodeType":"IfStatement","src":"19448:152:126","trueBody":{"id":74121,"nodeType":"Block","src":"19491:109:126","statements":[{"errorCall":{"arguments":[{"id":74115,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19536:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74116,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19548:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74117,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19557:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19548:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74118,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"19574:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74114,"name":"PoolAmountNotEnough","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72963,"src":"19516:19:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256,uint256) pure"}},"id":74119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19516:69:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74120,"nodeType":"RevertStatement","src":"19509:76:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"id":74128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74123,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19618:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74124,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19627:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"19618:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":74125,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"19645:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19660:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"19645:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19675:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"19645:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"19618:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74134,"nodeType":"IfStatement","src":"19614:138:126","trueBody":{"id":74133,"nodeType":"Block","src":"19683:69:126","statements":[{"errorCall":{"arguments":[{"id":74130,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19726:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74129,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"19708:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19708:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74132,"nodeType":"RevertStatement","src":"19701:36:126"}]}},{"assignments":[74136],"declarations":[{"constant":false,"id":74136,"mutability":"mutable","name":"convictionLast","nameLocation":"19774:14:126","nodeType":"VariableDeclaration","scope":74201,"src":"19766:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74135,"name":"uint256","nodeType":"ElementaryTypeName","src":"19766:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74140,"initialValue":{"arguments":[{"id":74138,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"19816:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74137,"name":"updateProposalConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75448,"src":"19791:24:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) returns (uint256)"}},"id":74139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19791:36:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19766:61:126"},{"assignments":[74142],"declarations":[{"constant":false,"id":74142,"mutability":"mutable","name":"threshold","nameLocation":"19849:9:126","nodeType":"VariableDeclaration","scope":74201,"src":"19841:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74141,"name":"uint256","nodeType":"ElementaryTypeName","src":"19841:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74147,"initialValue":{"arguments":[{"expression":{"id":74144,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19880:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19889:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19880:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74143,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"19861:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74146,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19861:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"19841:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74148,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74136,"src":"19924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":74149,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74142,"src":"19941:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19924:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74151,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"19954:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19963:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"19954:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19981:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19954:28:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"19924:58:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74160,"nodeType":"IfStatement","src":"19920:137:126","trueBody":{"id":74159,"nodeType":"Block","src":"19984:73:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74156,"name":"ConvictionUnderMinimumThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72953,"src":"20009:31:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20009:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74158,"nodeType":"RevertStatement","src":"20002:40:126"}]}},{"assignments":[74165],"declarations":[{"constant":false,"id":74165,"mutability":"mutable","name":"pool","nameLocation":"20089:4:126","nodeType":"VariableDeclaration","scope":74201,"src":"20071:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":74164,"nodeType":"UserDefinedTypeName","pathNode":{"id":74163,"name":"IAllo.Pool","nameLocations":["20071:5:126","20077:4:126"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"20071:10:126"},"referencedDeclaration":2319,"src":"20071:10:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"id":74170,"initialValue":{"arguments":[{"id":74168,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3341,"src":"20109:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":74166,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3335,"src":"20096:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_IAllo_$2610","typeString":"contract IAllo"}},"id":74167,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20101:7:126","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":2603,"src":"20096:12:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":74169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20096:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"nodeType":"VariableDeclarationStatement","src":"20071:45:126"},{"expression":{"id":74174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74171,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"20131:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"expression":{"id":74172,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20145:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74173,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20154:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20145:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20131:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74175,"nodeType":"ExpressionStatement","src":"20131:38:126"},{"expression":{"arguments":[{"expression":{"id":74177,"name":"pool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74165,"src":"20207:4:126","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":74178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20212:5:126","memberName":"token","nodeType":"MemberAccess","referencedDeclaration":2311,"src":"20207:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74179,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20219:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74180,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20228:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"20219:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74181,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20241:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74182,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20250:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20241:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74176,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"20191:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":74183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20191:75:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74184,"nodeType":"ExpressionStatement","src":"20191:75:126"},{"expression":{"id":74191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74185,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20297:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74187,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20306:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"20297:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"expression":{"id":74188,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"20323:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":74189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20338:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"20323:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":74190,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"20353:8:126","memberName":"Executed","nodeType":"MemberAccess","referencedDeclaration":72819,"src":"20323:38:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"20297:64:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"id":74192,"nodeType":"ExpressionStatement","src":"20297:64:126"},{"eventCall":{"arguments":[{"id":74194,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74069,"src":"20393:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74195,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20405:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74196,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20414:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"20405:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74197,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74090,"src":"20427:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20436:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"20427:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74193,"name":"Distributed","nodeType":"Identifier","overloadedDeclarations":[72978,2858],"referencedDeclaration":72978,"src":"20381:11:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_uint256_$returns$__$","typeString":"function (uint256,address,uint256)"}},"id":74199,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20381:71:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74200,"nodeType":"EmitStatement","src":"20376:76:126"}]}}]},"baseFunctions":[3828],"implemented":true,"kind":"function","modifiers":[],"name":"_distribute","nameLocation":"18782:11:126","overrides":{"id":74057,"nodeType":"OverrideSpecifier","overrides":[],"src":"18850:8:126"},"parameters":{"id":74056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74051,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74204,"src":"18794:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74049,"name":"address","nodeType":"ElementaryTypeName","src":"18794:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74050,"nodeType":"ArrayTypeName","src":"18794:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74053,"mutability":"mutable","name":"_data","nameLocation":"18825:5:126","nodeType":"VariableDeclaration","scope":74204,"src":"18812:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74052,"name":"bytes","nodeType":"ElementaryTypeName","src":"18812:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":74055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74204,"src":"18832:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74054,"name":"address","nodeType":"ElementaryTypeName","src":"18832:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18793:47:126"},"returnParameters":{"id":74058,"nodeType":"ParameterList","parameters":[],"src":"18859:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74258,"nodeType":"FunctionDefinition","src":"20535:735:126","nodes":[],"body":{"id":74257,"nodeType":"Block","src":"20624:646:126","nodes":[],"statements":[{"assignments":[74215],"declarations":[{"constant":false,"id":74215,"mutability":"mutable","name":"proposal","nameLocation":"20666:8:126","nodeType":"VariableDeclaration","scope":74257,"src":"20634:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74214,"nodeType":"UserDefinedTypeName","pathNode":{"id":74213,"name":"StrategyStruct.Proposal","nameLocations":["20634:14:126","20649:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"20634:23:126"},"referencedDeclaration":72847,"src":"20634:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74219,"initialValue":{"baseExpression":{"id":74216,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"20677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74218,"indexExpression":{"id":74217,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74206,"src":"20687:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20677:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20634:64:126"},{"assignments":[74221,74223],"declarations":[{"constant":false,"id":74221,"mutability":"mutable","name":"convictionLast","nameLocation":"20792:14:126","nodeType":"VariableDeclaration","scope":74257,"src":"20784:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74220,"name":"uint256","nodeType":"ElementaryTypeName","src":"20784:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74223,"mutability":"mutable","name":"blockNumber","nameLocation":"20816:11:126","nodeType":"VariableDeclaration","scope":74257,"src":"20808:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74222,"name":"uint256","nodeType":"ElementaryTypeName","src":"20808:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74229,"initialValue":{"arguments":[{"id":74225,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20877:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":74226,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20887:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74227,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20896:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"20887:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74224,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75400,"src":"20843:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":74228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20843:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"20783:126:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74230,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"20924:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74231,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20942:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20924:19:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74233,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74223,"src":"20947:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20962:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20947:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"20924:39:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74243,"nodeType":"IfStatement","src":"20920:110:126","trueBody":{"id":74242,"nodeType":"Block","src":"20965:65:126","statements":[{"expression":{"id":74240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74237,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"20979:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":74238,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"20996:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21005:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"20996:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20979:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74241,"nodeType":"ExpressionStatement","src":"20979:40:126"}]}},{"assignments":[74245],"declarations":[{"constant":false,"id":74245,"mutability":"mutable","name":"threshold","nameLocation":"21047:9:126","nodeType":"VariableDeclaration","scope":74257,"src":"21039:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74244,"name":"uint256","nodeType":"ElementaryTypeName","src":"21039:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74250,"initialValue":{"arguments":[{"expression":{"id":74247,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74215,"src":"21078:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"21087:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"21078:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74246,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"21059:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21059:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21039:64:126"},{"expression":{"id":74255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74251,"name":"canBeExecuted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74209,"src":"21220:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74252,"name":"convictionLast","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74221,"src":"21236:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":74253,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74245,"src":"21254:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21236:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"21220:43:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74256,"nodeType":"ExpressionStatement","src":"21220:43:126"}]},"functionSelector":"824ea8ed","implemented":true,"kind":"function","modifiers":[],"name":"canExecuteProposal","nameLocation":"20544:18:126","parameters":{"id":74207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74206,"mutability":"mutable","name":"proposalId","nameLocation":"20571:10:126","nodeType":"VariableDeclaration","scope":74258,"src":"20563:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74205,"name":"uint256","nodeType":"ElementaryTypeName","src":"20563:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20562:20:126"},"returnParameters":{"id":74210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74209,"mutability":"mutable","name":"canBeExecuted","nameLocation":"20609:13:126","nodeType":"VariableDeclaration","scope":74258,"src":"20604:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74208,"name":"bool","nodeType":"ElementaryTypeName","src":"20604:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20603:20:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74280,"nodeType":"FunctionDefinition","src":"21560:220:126","nodes":[],"body":{"id":74279,"nodeType":"Block","src":"21651:129:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74267,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74260,"src":"21711:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21735:1:126","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":74269,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21727:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74268,"name":"address","nodeType":"ElementaryTypeName","src":"21727:7:126","typeDescriptions":{}}},"id":74271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21727:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21711:26:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"expression":{"id":74275,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21758:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21765:8:126","memberName":"Accepted","nodeType":"MemberAccess","referencedDeclaration":2810,"src":"21758:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"id":74277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21711:62:126","trueExpression":{"expression":{"id":74273,"name":"Status","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2815,"src":"21740:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_Status_$2815_$","typeString":"type(enum IStrategy.Status)"}},"id":74274,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"21747:8:126","memberName":"Rejected","nodeType":"MemberAccess","referencedDeclaration":2811,"src":"21740:15:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"functionReturnParameters":74266,"id":74278,"nodeType":"Return","src":"21704:69:126"}]},"baseFunctions":[3848],"implemented":true,"kind":"function","modifiers":[],"name":"_getRecipientStatus","nameLocation":"21569:19:126","overrides":{"id":74262,"nodeType":"OverrideSpecifier","overrides":[],"src":"21625:8:126"},"parameters":{"id":74261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74260,"mutability":"mutable","name":"_recipientId","nameLocation":"21597:12:126","nodeType":"VariableDeclaration","scope":74280,"src":"21589:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74259,"name":"address","nodeType":"ElementaryTypeName","src":"21589:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21588:22:126"},"returnParameters":{"id":74266,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74265,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74280,"src":"21643:6:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"},"typeName":{"id":74264,"nodeType":"UserDefinedTypeName","pathNode":{"id":74263,"name":"Status","nameLocations":["21643:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":2815,"src":"21643:6:126"},"referencedDeclaration":2815,"src":"21643:6:126","typeDescriptions":{"typeIdentifier":"t_enum$_Status_$2815","typeString":"enum IStrategy.Status"}},"visibility":"internal"}],"src":"21642:8:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74299,"nodeType":"FunctionDefinition","src":"21909:288:126","nodes":[],"body":{"id":74298,"nodeType":"Block","src":"22019:178:126","nodes":[],"statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":74295,"name":"NotImplemented","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72903,"src":"22079:14:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":74296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22079:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74297,"nodeType":"RevertStatement","src":"22072:23:126"}]},"baseFunctions":[3687],"documentation":{"id":74281,"nodeType":"StructuredDocumentation","src":"21786:118:126","text":"@return Input the values you would send to distribute(), get the amounts each recipient in the array would receive"},"functionSelector":"b2b878d0","implemented":true,"kind":"function","modifiers":[],"name":"getPayouts","nameLocation":"21918:10:126","overrides":{"id":74289,"nodeType":"OverrideSpecifier","overrides":[],"src":"21977:8:126"},"parameters":{"id":74288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74284,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21929:16:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":74282,"name":"address","nodeType":"ElementaryTypeName","src":"21929:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":74283,"nodeType":"ArrayTypeName","src":"21929:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":74287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21947:14:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_memory_ptr_$dyn_memory_ptr","typeString":"bytes[]"},"typeName":{"baseType":{"id":74285,"name":"bytes","nodeType":"ElementaryTypeName","src":"21947:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"id":74286,"nodeType":"ArrayTypeName","src":"21947:7:126","typeDescriptions":{"typeIdentifier":"t_array$_t_bytes_storage_$dyn_storage_ptr","typeString":"bytes[]"}},"visibility":"internal"}],"src":"21928:34:126"},"returnParameters":{"id":74294,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74293,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74299,"src":"21995:22:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_memory_ptr_$dyn_memory_ptr","typeString":"struct IStrategy.PayoutSummary[]"},"typeName":{"baseType":{"id":74291,"nodeType":"UserDefinedTypeName","pathNode":{"id":74290,"name":"PayoutSummary","nameLocations":["21995:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"21995:13:126"},"referencedDeclaration":2820,"src":"21995:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"id":74292,"nodeType":"ArrayTypeName","src":"21995:15:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_PayoutSummary_$2820_storage_$dyn_storage_ptr","typeString":"struct IStrategy.PayoutSummary[]"}},"visibility":"internal"}],"src":"21994:24:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"external"},{"id":74318,"nodeType":"FunctionDefinition","src":"22203:264:126","nodes":[],"body":{"id":74317,"nodeType":"Block","src":"22355:112:126","nodes":[],"statements":[{"expression":{"id":74310,"name":"_data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74303,"src":"22408:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":74311,"nodeType":"ExpressionStatement","src":"22408:5:126"},{"expression":{"arguments":[{"id":74313,"name":"_recipientId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74301,"src":"22444:12:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":74314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22458:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":74312,"name":"PayoutSummary","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2820,"src":"22430:13:126","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PayoutSummary_$2820_storage_ptr_$","typeString":"type(struct IStrategy.PayoutSummary storage pointer)"}},"id":74315,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22430:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary memory"}},"functionReturnParameters":74309,"id":74316,"nodeType":"Return","src":"22423:37:126"}]},"baseFunctions":[3839],"implemented":true,"kind":"function","modifiers":[],"name":"_getPayout","nameLocation":"22212:10:126","overrides":{"id":74305,"nodeType":"OverrideSpecifier","overrides":[],"src":"22303:8:126"},"parameters":{"id":74304,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74301,"mutability":"mutable","name":"_recipientId","nameLocation":"22231:12:126","nodeType":"VariableDeclaration","scope":74318,"src":"22223:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74300,"name":"address","nodeType":"ElementaryTypeName","src":"22223:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74303,"mutability":"mutable","name":"_data","nameLocation":"22258:5:126","nodeType":"VariableDeclaration","scope":74318,"src":"22245:18:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":74302,"name":"bytes","nodeType":"ElementaryTypeName","src":"22245:5:126","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"22222:42:126"},"returnParameters":{"id":74309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74308,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74318,"src":"22329:20:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_memory_ptr","typeString":"struct IStrategy.PayoutSummary"},"typeName":{"id":74307,"nodeType":"UserDefinedTypeName","pathNode":{"id":74306,"name":"PayoutSummary","nameLocations":["22329:13:126"],"nodeType":"IdentifierPath","referencedDeclaration":2820,"src":"22329:13:126"},"referencedDeclaration":2820,"src":"22329:13:126","typeDescriptions":{"typeIdentifier":"t_struct$_PayoutSummary_$2820_storage_ptr","typeString":"struct IStrategy.PayoutSummary"}},"visibility":"internal"}],"src":"22328:22:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74329,"nodeType":"FunctionDefinition","src":"22473:127:126","nodes":[],"body":{"id":74328,"nodeType":"Block","src":"22550:50:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":74325,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74320,"src":"22585:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74324,"name":"PoolAmountIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72988,"src":"22565:19:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":74326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22565:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74327,"nodeType":"EmitStatement","src":"22560:33:126"}]},"baseFunctions":[3862],"implemented":true,"kind":"function","modifiers":[],"name":"_afterIncreasePoolAmount","nameLocation":"22482:24:126","overrides":{"id":74322,"nodeType":"OverrideSpecifier","overrides":[],"src":"22541:8:126"},"parameters":{"id":74321,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74320,"mutability":"mutable","name":"_amount","nameLocation":"22515:7:126","nodeType":"VariableDeclaration","scope":74329,"src":"22507:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74319,"name":"uint256","nodeType":"ElementaryTypeName","src":"22507:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22506:17:126"},"returnParameters":{"id":74323,"nodeType":"ParameterList","parameters":[],"src":"22550:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":74348,"nodeType":"FunctionDefinition","src":"22695:191:126","nodes":[],"body":{"id":74347,"nodeType":"Block","src":"22780:106:126","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74342,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74337,"name":"_allocator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74331,"src":"22840:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":74340,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22862:1:126","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":74339,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22854:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74338,"name":"address","nodeType":"ElementaryTypeName","src":"22854:7:126","typeDescriptions":{}}},"id":74341,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22854:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"22840:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"hexValue":"74727565","id":74344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22875:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"id":74345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"22840:39:126","trueExpression":{"hexValue":"66616c7365","id":74343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"22867:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74336,"id":74346,"nodeType":"Return","src":"22833:46:126"}]},"baseFunctions":[3799],"implemented":true,"kind":"function","modifiers":[],"name":"_isValidAllocator","nameLocation":"22704:17:126","overrides":{"id":74333,"nodeType":"OverrideSpecifier","overrides":[],"src":"22756:8:126"},"parameters":{"id":74332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74331,"mutability":"mutable","name":"_allocator","nameLocation":"22730:10:126","nodeType":"VariableDeclaration","scope":74348,"src":"22722:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74330,"name":"address","nodeType":"ElementaryTypeName","src":"22722:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22721:20:126"},"returnParameters":{"id":74336,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74335,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74348,"src":"22774:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74334,"name":"bool","nodeType":"ElementaryTypeName","src":"22774:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22773:6:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":74358,"nodeType":"FunctionDefinition","src":"22892:86:126","nodes":[],"body":{"id":74357,"nodeType":"Block","src":"22938:40:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74354,"name":"_active","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74350,"src":"22963:7:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":74353,"name":"_setPoolActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3782,"src":"22948:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bool_$returns$__$","typeString":"function (bool)"}},"id":74355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22948:23:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74356,"nodeType":"ExpressionStatement","src":"22948:23:126"}]},"functionSelector":"b5f620ce","implemented":true,"kind":"function","modifiers":[],"name":"setPoolActive","nameLocation":"22901:13:126","parameters":{"id":74351,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74350,"mutability":"mutable","name":"_active","nameLocation":"22920:7:126","nodeType":"VariableDeclaration","scope":74358,"src":"22915:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74349,"name":"bool","nodeType":"ElementaryTypeName","src":"22915:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"22914:14:126"},"returnParameters":{"id":74352,"nodeType":"ParameterList","parameters":[],"src":"22938:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":74436,"nodeType":"FunctionDefinition","src":"22984:729:126","nodes":[],"body":{"id":74435,"nodeType":"Block","src":"23028:685:126","nodes":[],"statements":[{"assignments":[74367],"declarations":[{"constant":false,"id":74367,"mutability":"mutable","name":"proposalsIds","nameLocation":"23103:12:126","nodeType":"VariableDeclaration","scope":74435,"src":"23086:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74365,"name":"uint256","nodeType":"ElementaryTypeName","src":"23086:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74366,"nodeType":"ArrayTypeName","src":"23086:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74371,"initialValue":{"baseExpression":{"id":74368,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"23118:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74370,"indexExpression":{"id":74369,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23139:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23118:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23086:61:126"},{"body":{"id":74433,"nodeType":"Block","src":"23207:500:126","statements":[{"assignments":[74384],"declarations":[{"constant":false,"id":74384,"mutability":"mutable","name":"proposalId","nameLocation":"23229:10:126","nodeType":"VariableDeclaration","scope":74433,"src":"23221:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74383,"name":"uint256","nodeType":"ElementaryTypeName","src":"23221:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74388,"initialValue":{"baseExpression":{"id":74385,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74367,"src":"23242:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74387,"indexExpression":{"id":74386,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23255:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23242:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23221:36:126"},{"assignments":[74393],"declarations":[{"constant":false,"id":74393,"mutability":"mutable","name":"proposal","nameLocation":"23303:8:126","nodeType":"VariableDeclaration","scope":74433,"src":"23271:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74392,"nodeType":"UserDefinedTypeName","pathNode":{"id":74391,"name":"StrategyStruct.Proposal","nameLocations":["23271:14:126","23286:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"23271:23:126"},"referencedDeclaration":72847,"src":"23271:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74397,"initialValue":{"baseExpression":{"id":74394,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"23314:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74396,"indexExpression":{"id":74395,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74384,"src":"23324:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23314:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23271:64:126"},{"condition":{"arguments":[{"id":74399,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74384,"src":"23368:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74398,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"23353:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23353:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74432,"nodeType":"IfStatement","src":"23349:348:126","trueBody":{"id":74431,"nodeType":"Block","src":"23381:316:126","statements":[{"assignments":[74402],"declarations":[{"constant":false,"id":74402,"mutability":"mutable","name":"stakedPoints","nameLocation":"23407:12:126","nodeType":"VariableDeclaration","scope":74431,"src":"23399:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74401,"name":"uint256","nodeType":"ElementaryTypeName","src":"23399:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74407,"initialValue":{"baseExpression":{"expression":{"id":74403,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23422:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74404,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23431:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"23422:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74406,"indexExpression":{"id":74405,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23449:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23422:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"23399:58:126"},{"expression":{"id":74414,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74408,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23475:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74411,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23484:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"23475:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74412,"indexExpression":{"id":74410,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74360,"src":"23502:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23475:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":74413,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23513:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"23475:39:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74415,"nodeType":"ExpressionStatement","src":"23475:39:126"},{"expression":{"id":74420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23532:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74418,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"23541:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"23532:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74419,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23557:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23532:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74421,"nodeType":"ExpressionStatement","src":"23532:37:126"},{"expression":{"id":74424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74422,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"23587:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":74423,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23602:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23587:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74425,"nodeType":"ExpressionStatement","src":"23587:27:126"},{"expression":{"arguments":[{"id":74427,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74393,"src":"23659:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":74428,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74402,"src":"23669:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74426,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"23632:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":74429,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23632:50:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74430,"nodeType":"ExpressionStatement","src":"23632:50:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74376,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74377,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74367,"src":"23181:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74378,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23194:6:126","memberName":"length","nodeType":"MemberAccess","src":"23181:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23177:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74434,"initializationExpression":{"assignments":[74373],"declarations":[{"constant":false,"id":74373,"mutability":"mutable","name":"i","nameLocation":"23170:1:126","nodeType":"VariableDeclaration","scope":74434,"src":"23162:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74372,"name":"uint256","nodeType":"ElementaryTypeName","src":"23162:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74375,"initialValue":{"hexValue":"30","id":74374,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"23174:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"23162:13:126"},"loopExpression":{"expression":{"id":74381,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"23202:3:126","subExpression":{"id":74380,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74373,"src":"23202:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74382,"nodeType":"ExpressionStatement","src":"23202:3:126"},"nodeType":"ForStatement","src":"23157:550:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"withdraw","nameLocation":"22993:8:126","parameters":{"id":74361,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74360,"mutability":"mutable","name":"_member","nameLocation":"23010:7:126","nodeType":"VariableDeclaration","scope":74436,"src":"23002:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74359,"name":"address","nodeType":"ElementaryTypeName","src":"23002:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23001:17:126"},"returnParameters":{"id":74362,"nodeType":"ParameterList","parameters":[],"src":"23028:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":74510,"nodeType":"FunctionDefinition","src":"24275:1038:126","nodes":[],"body":{"id":74509,"nodeType":"Block","src":"24744:569:126","nodes":[],"statements":[{"assignments":[74467],"declarations":[{"constant":false,"id":74467,"mutability":"mutable","name":"proposal","nameLocation":"24786:8:126","nodeType":"VariableDeclaration","scope":74509,"src":"24754:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74466,"nodeType":"UserDefinedTypeName","pathNode":{"id":74465,"name":"StrategyStruct.Proposal","nameLocations":["24754:14:126","24769:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"24754:23:126"},"referencedDeclaration":72847,"src":"24754:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74471,"initialValue":{"baseExpression":{"id":74468,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"24797:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74470,"indexExpression":{"id":74469,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74439,"src":"24807:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24797:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24754:65:126"},{"expression":{"id":74483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74472,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74459,"src":"24830:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74473,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24842:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74474,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24851:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"24842:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74475,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24870:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"24842:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"expression":{"id":74479,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24897:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74480,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24906:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"24897:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74478,"name":"calculateThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75204,"src":"24878:18:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) view returns (uint256)"}},"id":74481,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24878:44:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"24842:80:126","trueExpression":{"hexValue":"30","id":74477,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24874:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24830:92:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74484,"nodeType":"ExpressionStatement","src":"24830:92:126"},{"expression":{"components":[{"expression":{"id":74485,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24953:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24962:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"24953:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74487,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"24985:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74488,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24994:11:126","memberName":"beneficiary","nodeType":"MemberAccess","referencedDeclaration":72830,"src":"24985:20:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74489,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25019:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74490,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25028:14:126","memberName":"requestedToken","nodeType":"MemberAccess","referencedDeclaration":72834,"src":"25019:23:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":74491,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25056:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74492,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25065:15:126","memberName":"requestedAmount","nodeType":"MemberAccess","referencedDeclaration":72824,"src":"25056:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74493,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25094:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74494,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25103:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"25094:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74495,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25129:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74496,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25138:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"25129:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},{"expression":{"id":74497,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25166:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74498,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25175:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"25166:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":74499,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25198:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25207:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"25198:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74501,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74459,"src":"25235:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"baseExpression":{"expression":{"id":74502,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74467,"src":"25258:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25267:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"25258:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74506,"indexExpression":{"expression":{"id":74504,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"25285:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":74505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"25289:6:126","memberName":"sender","nodeType":"MemberAccess","src":"25285:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25258:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":74507,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"24939:367:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_address_$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_enum$_ProposalStatus_$72820_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$","typeString":"tuple(address,address,address,uint256,uint256,enum StrategyStruct.ProposalStatus,uint256,uint256,uint256,uint256)"}},"functionReturnParameters":74462,"id":74508,"nodeType":"Return","src":"24932:374:126"}]},"documentation":{"id":74437,"nodeType":"StructuredDocumentation","src":"23719:551:126","text":" @dev Get proposal details\n @param _proposalId Proposal id\n @return submitter Proposal submitter\n @return beneficiary Proposal beneficiary\n @return requestedToken Proposal requested token\n @return requestedAmount Proposal requested amount\n @return stakedAmount Proposal staked points\n @return proposalStatus Proposal status\n @return blockLast Last block when conviction was calculated\n @return convictionLast Last conviction calculated\n @return threshold Proposal threshold"},"functionSelector":"c7f758a8","implemented":true,"kind":"function","modifiers":[],"name":"getProposal","nameLocation":"24284:11:126","parameters":{"id":74440,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74439,"mutability":"mutable","name":"_proposalId","nameLocation":"24304:11:126","nodeType":"VariableDeclaration","scope":74510,"src":"24296:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74438,"name":"uint256","nodeType":"ElementaryTypeName","src":"24296:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24295:21:126"},"returnParameters":{"id":74462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74442,"mutability":"mutable","name":"submitter","nameLocation":"24385:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24377:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74441,"name":"address","nodeType":"ElementaryTypeName","src":"24377:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74444,"mutability":"mutable","name":"beneficiary","nameLocation":"24416:11:126","nodeType":"VariableDeclaration","scope":74510,"src":"24408:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74443,"name":"address","nodeType":"ElementaryTypeName","src":"24408:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74446,"mutability":"mutable","name":"requestedToken","nameLocation":"24449:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24441:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74445,"name":"address","nodeType":"ElementaryTypeName","src":"24441:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74448,"mutability":"mutable","name":"requestedAmount","nameLocation":"24485:15:126","nodeType":"VariableDeclaration","scope":74510,"src":"24477:23:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74447,"name":"uint256","nodeType":"ElementaryTypeName","src":"24477:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74450,"mutability":"mutable","name":"stakedAmount","nameLocation":"24522:12:126","nodeType":"VariableDeclaration","scope":74510,"src":"24514:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74449,"name":"uint256","nodeType":"ElementaryTypeName","src":"24514:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74453,"mutability":"mutable","name":"proposalStatus","nameLocation":"24578:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24548:44:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"typeName":{"id":74452,"nodeType":"UserDefinedTypeName","pathNode":{"id":74451,"name":"StrategyStruct.ProposalStatus","nameLocations":["24548:14:126","24563:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72820,"src":"24548:29:126"},"referencedDeclaration":72820,"src":"24548:29:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"visibility":"internal"},{"constant":false,"id":74455,"mutability":"mutable","name":"blockLast","nameLocation":"24614:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24606:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74454,"name":"uint256","nodeType":"ElementaryTypeName","src":"24606:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74457,"mutability":"mutable","name":"convictionLast","nameLocation":"24645:14:126","nodeType":"VariableDeclaration","scope":74510,"src":"24637:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74456,"name":"uint256","nodeType":"ElementaryTypeName","src":"24637:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74459,"mutability":"mutable","name":"threshold","nameLocation":"24681:9:126","nodeType":"VariableDeclaration","scope":74510,"src":"24673:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74458,"name":"uint256","nodeType":"ElementaryTypeName","src":"24673:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74461,"mutability":"mutable","name":"voterStakedPoints","nameLocation":"24712:17:126","nodeType":"VariableDeclaration","scope":74510,"src":"24704:25:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74460,"name":"uint256","nodeType":"ElementaryTypeName","src":"24704:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"24363:376:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74531,"nodeType":"FunctionDefinition","src":"25319:198:126","nodes":[],"body":{"id":74530,"nodeType":"Block","src":"25401:116:126","nodes":[],"statements":[{"assignments":[74522],"declarations":[{"constant":false,"id":74522,"mutability":"mutable","name":"proposal","nameLocation":"25443:8:126","nodeType":"VariableDeclaration","scope":74530,"src":"25411:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74521,"nodeType":"UserDefinedTypeName","pathNode":{"id":74520,"name":"StrategyStruct.Proposal","nameLocations":["25411:14:126","25426:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"25411:23:126"},"referencedDeclaration":72847,"src":"25411:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74526,"initialValue":{"baseExpression":{"id":74523,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"25454:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74525,"indexExpression":{"id":74524,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74512,"src":"25464:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"25454:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"25411:65:126"},{"expression":{"expression":{"id":74527,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74522,"src":"25493:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74528,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"25502:8:126","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":72846,"src":"25493:17:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"functionReturnParameters":74517,"id":74529,"nodeType":"Return","src":"25486:24:126"}]},"functionSelector":"a574cea4","implemented":true,"kind":"function","modifiers":[],"name":"getMetadata","nameLocation":"25328:11:126","parameters":{"id":74513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74512,"mutability":"mutable","name":"_proposalId","nameLocation":"25348:11:126","nodeType":"VariableDeclaration","scope":74531,"src":"25340:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74511,"name":"uint256","nodeType":"ElementaryTypeName","src":"25340:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25339:21:126"},"returnParameters":{"id":74517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74516,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74531,"src":"25384:15:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":74515,"nodeType":"UserDefinedTypeName","pathNode":{"id":74514,"name":"Metadata","nameLocations":["25384:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"25384:8:126"},"referencedDeclaration":3098,"src":"25384:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"25383:17:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74547,"nodeType":"FunctionDefinition","src":"25718:176:126","nodes":[],"body":{"id":74546,"nodeType":"Block","src":"25818:76:126","nodes":[],"statements":[{"expression":{"arguments":[{"id":74542,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74534,"src":"25867:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74543,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74536,"src":"25880:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":74541,"name":"_internal_getProposalVoterStake","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74589,"src":"25835:31:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_address_$returns$_t_uint256_$","typeString":"function (uint256,address) view returns (uint256)"}},"id":74544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"25835:52:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74540,"id":74545,"nodeType":"Return","src":"25828:59:126"}]},"documentation":{"id":74532,"nodeType":"StructuredDocumentation","src":"25523:190:126","text":" @notice Get stake of voter `_voter` on proposal #`_proposalId`\n @param _proposalId Proposal id\n @param _voter Voter address\n @return Proposal voter stake"},"functionSelector":"e0dd2c38","implemented":true,"kind":"function","modifiers":[],"name":"getProposalVoterStake","nameLocation":"25727:21:126","parameters":{"id":74537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74534,"mutability":"mutable","name":"_proposalId","nameLocation":"25757:11:126","nodeType":"VariableDeclaration","scope":74547,"src":"25749:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74533,"name":"uint256","nodeType":"ElementaryTypeName","src":"25749:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74536,"mutability":"mutable","name":"_voter","nameLocation":"25778:6:126","nodeType":"VariableDeclaration","scope":74547,"src":"25770:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74535,"name":"address","nodeType":"ElementaryTypeName","src":"25770:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"25748:37:126"},"returnParameters":{"id":74540,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74539,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74547,"src":"25809:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74538,"name":"uint256","nodeType":"ElementaryTypeName","src":"25809:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25808:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74560,"nodeType":"FunctionDefinition","src":"25900:145:126","nodes":[],"body":{"id":74559,"nodeType":"Block","src":"25986:59:126","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":74554,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26003:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74556,"indexExpression":{"id":74555,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74549,"src":"26013:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26003:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74557,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26026:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"26003:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74553,"id":74558,"nodeType":"Return","src":"25996:42:126"}]},"functionSelector":"dc96ff2d","implemented":true,"kind":"function","modifiers":[],"name":"getProposalStakedAmount","nameLocation":"25909:23:126","parameters":{"id":74550,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74549,"mutability":"mutable","name":"_proposalId","nameLocation":"25941:11:126","nodeType":"VariableDeclaration","scope":74560,"src":"25933:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74548,"name":"uint256","nodeType":"ElementaryTypeName","src":"25933:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25932:21:126"},"returnParameters":{"id":74553,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74552,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74560,"src":"25977:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74551,"name":"uint256","nodeType":"ElementaryTypeName","src":"25977:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"25976:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":74572,"nodeType":"FunctionDefinition","src":"26114:127:126","nodes":[],"body":{"id":74571,"nodeType":"Block","src":"26191:50:126","nodes":[],"statements":[{"expression":{"baseExpression":{"id":74567,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73096,"src":"26208:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74569,"indexExpression":{"id":74568,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74562,"src":"26227:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26208:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74566,"id":74570,"nodeType":"Return","src":"26201:33:126"}]},"functionSelector":"bcc5b93b","implemented":true,"kind":"function","modifiers":[],"name":"getTotalVoterStakePct","nameLocation":"26123:21:126","parameters":{"id":74563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74562,"mutability":"mutable","name":"_voter","nameLocation":"26153:6:126","nodeType":"VariableDeclaration","scope":74572,"src":"26145:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74561,"name":"address","nodeType":"ElementaryTypeName","src":"26145:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26144:16:126"},"returnParameters":{"id":74566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74565,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74572,"src":"26182:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74564,"name":"uint256","nodeType":"ElementaryTypeName","src":"26182:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26181:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":74589,"nodeType":"FunctionDefinition","src":"26247:182:126","nodes":[],"body":{"id":74588,"nodeType":"Block","src":"26357:72:126","nodes":[],"statements":[{"expression":{"baseExpression":{"expression":{"baseExpression":{"id":74581,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26374:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74583,"indexExpression":{"id":74582,"name":"_proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74574,"src":"26384:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26397:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"26374:40:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74586,"indexExpression":{"id":74585,"name":"_voter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74576,"src":"26415:6:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26374:48:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74580,"id":74587,"nodeType":"Return","src":"26367:55:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_internal_getProposalVoterStake","nameLocation":"26256:31:126","parameters":{"id":74577,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74574,"mutability":"mutable","name":"_proposalId","nameLocation":"26296:11:126","nodeType":"VariableDeclaration","scope":74589,"src":"26288:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74573,"name":"uint256","nodeType":"ElementaryTypeName","src":"26288:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":74576,"mutability":"mutable","name":"_voter","nameLocation":"26317:6:126","nodeType":"VariableDeclaration","scope":74589,"src":"26309:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74575,"name":"address","nodeType":"ElementaryTypeName","src":"26309:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"26287:37:126"},"returnParameters":{"id":74580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74589,"src":"26348:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74578,"name":"uint256","nodeType":"ElementaryTypeName","src":"26348:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26347:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74599,"nodeType":"FunctionDefinition","src":"26435:145:126","nodes":[],"body":{"id":74598,"nodeType":"Block","src":"26499:81:126","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":74594,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"26516:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"26534:20:126","memberName":"getBasisStakedAmount","nodeType":"MemberAccess","referencedDeclaration":77472,"src":"26516:38:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":74596,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26516:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":74593,"id":74597,"nodeType":"Return","src":"26509:47:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"26444:20:126","parameters":{"id":74590,"nodeType":"ParameterList","parameters":[],"src":"26464:2:126"},"returnParameters":{"id":74593,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74592,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74599,"src":"26490:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74591,"name":"uint256","nodeType":"ElementaryTypeName","src":"26490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26489:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74624,"nodeType":"FunctionDefinition","src":"26586:185:126","nodes":[],"body":{"id":74623,"nodeType":"Block","src":"26660:111:126","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":74621,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74606,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26677:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74608,"indexExpression":{"id":74607,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"26687:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26677:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74609,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26700:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"26677:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":74610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26713:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"26677:37:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":74620,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74612,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"26718:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74614,"indexExpression":{"id":74613,"name":"_proposalID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74601,"src":"26728:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"26718:22:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"id":74615,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"26741:9:126","memberName":"submitter","nodeType":"MemberAccess","referencedDeclaration":72832,"src":"26718:32:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":74618,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"26762:1:126","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":74617,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"26754:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74616,"name":"address","nodeType":"ElementaryTypeName","src":"26754:7:126","typeDescriptions":{}}},"id":74619,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"26754:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"26718:46:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26677:87:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":74605,"id":74622,"nodeType":"Return","src":"26670:94:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"proposalExists","nameLocation":"26595:14:126","parameters":{"id":74602,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74601,"mutability":"mutable","name":"_proposalID","nameLocation":"26618:11:126","nodeType":"VariableDeclaration","scope":74624,"src":"26610:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74600,"name":"uint256","nodeType":"ElementaryTypeName","src":"26610:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26609:21:126"},"returnParameters":{"id":74605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74604,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":74624,"src":"26654:4:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74603,"name":"bool","nodeType":"ElementaryTypeName","src":"26654:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26653:6:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74642,"nodeType":"FunctionDefinition","src":"26777:174:126","nodes":[],"body":{"id":74641,"nodeType":"Block","src":"26872:79:126","nodes":[],"statements":[{"expression":{"id":74639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74631,"name":"isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74629,"src":"26882:14:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74638,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74634,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74632,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"26899:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74633,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"26910:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74635,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74626,"src":"26924:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":74636,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"26943:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26924:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"26899:45:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"26882:62:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74640,"nodeType":"ExpressionStatement","src":"26882:62:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_isOverMaxRatio","nameLocation":"26786:15:126","parameters":{"id":74627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74626,"mutability":"mutable","name":"_requestedAmount","nameLocation":"26810:16:126","nodeType":"VariableDeclaration","scope":74642,"src":"26802:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74625,"name":"uint256","nodeType":"ElementaryTypeName","src":"26802:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"26801:26:126"},"returnParameters":{"id":74630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74629,"mutability":"mutable","name":"isOverMaxRatio","nameLocation":"26856:14:126","nodeType":"VariableDeclaration","scope":74642,"src":"26851:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74628,"name":"bool","nodeType":"ElementaryTypeName","src":"26851:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"26850:21:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":74738,"nodeType":"FunctionDefinition","src":"26957:1548:126","nodes":[],"body":{"id":74737,"nodeType":"Block","src":"27087:1418:126","nodes":[],"statements":[{"assignments":[74652],"declarations":[{"constant":false,"id":74652,"mutability":"mutable","name":"deltaSupportSum","nameLocation":"27104:15:126","nodeType":"VariableDeclaration","scope":74737,"src":"27097:22:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74651,"name":"int256","nodeType":"ElementaryTypeName","src":"27097:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74654,"initialValue":{"hexValue":"30","id":74653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27122:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27097:26:126"},{"body":{"id":74699,"nodeType":"Block","src":"27187:576:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74671,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":74666,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27260:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74668,"indexExpression":{"id":74667,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27277:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27260:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74669,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27280:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"27260:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74670,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27294:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"27260:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74674,"nodeType":"IfStatement","src":"27256:187:126","trueBody":{"id":74673,"nodeType":"Block","src":"27297:146:126","statements":[{"id":74672,"nodeType":"Continue","src":"27420:8:126"}]}},{"assignments":[74676],"declarations":[{"constant":false,"id":74676,"mutability":"mutable","name":"proposalId","nameLocation":"27464:10:126","nodeType":"VariableDeclaration","scope":74699,"src":"27456:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74675,"name":"uint256","nodeType":"ElementaryTypeName","src":"27456:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74681,"initialValue":{"expression":{"baseExpression":{"id":74677,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27477:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74679,"indexExpression":{"id":74678,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27494:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27477:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27497:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"27477:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27456:51:126"},{"condition":{"id":74685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"27525:27:126","subExpression":{"arguments":[{"id":74683,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74676,"src":"27541:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74682,"name":"proposalExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74624,"src":"27526:14:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":74684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27526:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74691,"nodeType":"IfStatement","src":"27521:167:126","trueBody":{"id":74690,"nodeType":"Block","src":"27554:134:126","statements":[{"errorCall":{"arguments":[{"id":74687,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74676,"src":"27597:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74686,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"27579:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":74688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27579:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74689,"nodeType":"RevertStatement","src":"27572:36:126"}]}},{"expression":{"id":74697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74692,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27701:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"expression":{"baseExpression":{"id":74693,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27720:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74695,"indexExpression":{"id":74694,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27737:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"27720:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74696,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"27740:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"27720:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"27701:51:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"id":74698,"nodeType":"ExpressionStatement","src":"27701:51:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74659,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27153:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74660,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74648,"src":"27157:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74661,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"27174:6:126","memberName":"length","nodeType":"MemberAccess","src":"27157:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"27153:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74700,"initializationExpression":{"assignments":[74656],"declarations":[{"constant":false,"id":74656,"mutability":"mutable","name":"i","nameLocation":"27146:1:126","nodeType":"VariableDeclaration","scope":74700,"src":"27138:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74655,"name":"uint256","nodeType":"ElementaryTypeName","src":"27138:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74658,"initialValue":{"hexValue":"30","id":74657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"27150:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"27138:13:126"},"loopExpression":{"expression":{"id":74664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"27182:3:126","subExpression":{"id":74663,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74656,"src":"27182:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74665,"nodeType":"ExpressionStatement","src":"27182:3:126"},"nodeType":"ForStatement","src":"27133:630:126"},{"assignments":[74702],"declarations":[{"constant":false,"id":74702,"mutability":"mutable","name":"newTotalVotingSupport","nameLocation":"27867:21:126","nodeType":"VariableDeclaration","scope":74737,"src":"27859:29:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74701,"name":"uint256","nodeType":"ElementaryTypeName","src":"27859:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74709,"initialValue":{"arguments":[{"arguments":[{"id":74705,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"27925:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":74704,"name":"getTotalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74572,"src":"27903:21:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view returns (uint256)"}},"id":74706,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27903:30:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74707,"name":"deltaSupportSum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74652,"src":"27935:15:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74703,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75060,"src":"27891:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"27891:60:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"27859:92:126"},{"assignments":[74711],"declarations":[{"constant":false,"id":74711,"mutability":"mutable","name":"participantBalance","nameLocation":"28041:18:126","nodeType":"VariableDeclaration","scope":74737,"src":"28033:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74710,"name":"uint256","nodeType":"ElementaryTypeName","src":"28033:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74720,"initialValue":{"arguments":[{"id":74714,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"28105:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":74717,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"28122:4:126","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}],"id":74716,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"28114:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":74715,"name":"address","nodeType":"ElementaryTypeName","src":"28114:7:126","typeDescriptions":{}}},"id":74718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28114:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":74712,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"28062:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":74713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28080:24:126","memberName":"getMemberPowerInStrategy","nodeType":"MemberAccess","referencedDeclaration":77016,"src":"28062:42:126","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":74719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28062:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28033:95:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74721,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28294:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":74722,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74711,"src":"28318:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28294:42:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74730,"nodeType":"IfStatement","src":"28290:147:126","trueBody":{"id":74729,"nodeType":"Block","src":"28338:99:126","statements":[{"errorCall":{"arguments":[{"id":74725,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28384:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74726,"name":"participantBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74711,"src":"28407:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74724,"name":"NotEnoughPointsToSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72933,"src":"28359:24:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74727,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28359:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74728,"nodeType":"RevertStatement","src":"28352:74:126"}]}},{"expression":{"id":74735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74731,"name":"totalVoterStakePct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73096,"src":"28447:18:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74733,"indexExpression":{"id":74732,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74644,"src":"28466:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28447:27:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74734,"name":"newTotalVotingSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74702,"src":"28477:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28447:51:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74736,"nodeType":"ExpressionStatement","src":"28447:51:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_check_before_addSupport","nameLocation":"26966:24:126","parameters":{"id":74649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74644,"mutability":"mutable","name":"_sender","nameLocation":"26999:7:126","nodeType":"VariableDeclaration","scope":74738,"src":"26991:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74643,"name":"address","nodeType":"ElementaryTypeName","src":"26991:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74648,"mutability":"mutable","name":"_proposalSupport","nameLocation":"27048:16:126","nodeType":"VariableDeclaration","scope":74738,"src":"27008:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74646,"nodeType":"UserDefinedTypeName","pathNode":{"id":74645,"name":"StrategyStruct.ProposalSupport","nameLocations":["27008:14:126","27023:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"27008:30:126"},"referencedDeclaration":72852,"src":"27008:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74647,"nodeType":"ArrayTypeName","src":"27008:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"26990:75:126"},"returnParameters":{"id":74650,"nodeType":"ParameterList","parameters":[],"src":"27087:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75025,"nodeType":"FunctionDefinition","src":"28511:3479:126","nodes":[],"body":{"id":75024,"nodeType":"Block","src":"28616:3374:126","nodes":[],"statements":[{"assignments":[74751],"declarations":[{"constant":false,"id":74751,"mutability":"mutable","name":"proposalsIds","nameLocation":"28643:12:126","nodeType":"VariableDeclaration","scope":75024,"src":"28626:29:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74749,"name":"uint256","nodeType":"ElementaryTypeName","src":"28626:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74750,"nodeType":"ArrayTypeName","src":"28626:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74752,"nodeType":"VariableDeclarationStatement","src":"28626:29:126"},{"body":{"id":75022,"nodeType":"Block","src":"28719:3265:126","statements":[{"assignments":[74765],"declarations":[{"constant":false,"id":74765,"mutability":"mutable","name":"proposalId","nameLocation":"28741:10:126","nodeType":"VariableDeclaration","scope":75022,"src":"28733:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74764,"name":"uint256","nodeType":"ElementaryTypeName","src":"28733:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74770,"initialValue":{"expression":{"baseExpression":{"id":74766,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"28754:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74768,"indexExpression":{"id":74767,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28771:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"28754:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74769,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"28774:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72849,"src":"28754:30:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"28733:51:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74771,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28857:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28870:6:126","memberName":"length","nodeType":"MemberAccess","src":"28857:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74773,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28880:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"28857:24:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74873,"nodeType":"Block","src":"29009:764:126","statements":[{"assignments":[74791],"declarations":[{"constant":false,"id":74791,"mutability":"mutable","name":"exist","nameLocation":"29032:5:126","nodeType":"VariableDeclaration","scope":74873,"src":"29027:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74790,"name":"bool","nodeType":"ElementaryTypeName","src":"29027:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74793,"initialValue":{"hexValue":"66616c7365","id":74792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29040:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"29027:18:126"},{"body":{"id":74821,"nodeType":"Block","src":"29113:268:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":74805,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29164:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74807,"indexExpression":{"id":74806,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29177:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29164:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":74808,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29183:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29164:29:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74820,"nodeType":"IfStatement","src":"29160:203:126","trueBody":{"id":74819,"nodeType":"Block","src":"29195:168:126","statements":[{"expression":{"id":74812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74810,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"29221:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74811,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"29229:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"29221:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74813,"nodeType":"ExpressionStatement","src":"29221:12:126"},{"errorCall":{"arguments":[{"id":74815,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29292:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74816,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29304:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74814,"name":"ProposalSupportDuplicated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72951,"src":"29266:25:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":74817,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29266:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74818,"nodeType":"RevertStatement","src":"29259:47:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74801,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74798,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29083:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74799,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29087:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74800,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29100:6:126","memberName":"length","nodeType":"MemberAccess","src":"29087:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29083:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74822,"initializationExpression":{"assignments":[74795],"declarations":[{"constant":false,"id":74795,"mutability":"mutable","name":"j","nameLocation":"29076:1:126","nodeType":"VariableDeclaration","scope":74822,"src":"29068:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74794,"name":"uint256","nodeType":"ElementaryTypeName","src":"29068:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74797,"initialValue":{"hexValue":"30","id":74796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29080:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29068:13:126"},"loopExpression":{"expression":{"id":74803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29108:3:126","subExpression":{"id":74802,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74795,"src":"29108:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74804,"nodeType":"ExpressionStatement","src":"29108:3:126"},"nodeType":"ForStatement","src":"29063:318:126"},{"condition":{"id":74824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"29402:6:126","subExpression":{"id":74823,"name":"exist","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74791,"src":"29403:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74872,"nodeType":"IfStatement","src":"29398:361:126","trueBody":{"id":74871,"nodeType":"Block","src":"29410:349:126","statements":[{"assignments":[74829],"declarations":[{"constant":false,"id":74829,"mutability":"mutable","name":"temp","nameLocation":"29449:4:126","nodeType":"VariableDeclaration","scope":74871,"src":"29432:21:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[]"},"typeName":{"baseType":{"id":74827,"name":"uint256","nodeType":"ElementaryTypeName","src":"29432:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74828,"nodeType":"ArrayTypeName","src":"29432:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}},"visibility":"internal"}],"id":74838,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74833,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29470:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29483:6:126","memberName":"length","nodeType":"MemberAccess","src":"29470:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":74835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29492:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"29470:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":74832,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"29456:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74830,"name":"uint256","nodeType":"ElementaryTypeName","src":"29460:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74831,"nodeType":"ArrayTypeName","src":"29460:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"29456:38:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"VariableDeclarationStatement","src":"29432:62:126"},{"body":{"id":74858,"nodeType":"Block","src":"29566:74:126","statements":[{"expression":{"id":74856,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74850,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29592:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74852,"indexExpression":{"id":74851,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29597:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29592:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":74853,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29602:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74855,"indexExpression":{"id":74854,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29615:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29602:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29592:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74857,"nodeType":"ExpressionStatement","src":"29592:25:126"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74846,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74843,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29536:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74844,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29540:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29553:6:126","memberName":"length","nodeType":"MemberAccess","src":"29540:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29536:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74859,"initializationExpression":{"assignments":[74840],"declarations":[{"constant":false,"id":74840,"mutability":"mutable","name":"j","nameLocation":"29529:1:126","nodeType":"VariableDeclaration","scope":74859,"src":"29521:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74839,"name":"uint256","nodeType":"ElementaryTypeName","src":"29521:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74842,"initialValue":{"hexValue":"30","id":74841,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"29533:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"29521:13:126"},"loopExpression":{"expression":{"id":74848,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"29561:3:126","subExpression":{"id":74847,"name":"j","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74840,"src":"29561:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74849,"nodeType":"ExpressionStatement","src":"29561:3:126"},"nodeType":"ForStatement","src":"29516:124:126"},{"expression":{"id":74865,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74860,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29661:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74863,"indexExpression":{"expression":{"id":74861,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29666:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74862,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"29679:6:126","memberName":"length","nodeType":"MemberAccess","src":"29666:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"29661:25:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74864,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29689:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"29661:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74866,"nodeType":"ExpressionStatement","src":"29661:38:126"},{"expression":{"id":74869,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74867,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"29721:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74868,"name":"temp","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74829,"src":"29736:4:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"29721:19:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74870,"nodeType":"ExpressionStatement","src":"29721:19:126"}]}}]},"id":74874,"nodeType":"IfStatement","src":"28853:920:126","trueBody":{"id":74789,"nodeType":"Block","src":"28883:120:126","statements":[{"expression":{"id":74781,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74775,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28901:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"31","id":74779,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28930:1:126","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":74778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"28916:13:126","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (uint256[] memory)"},"typeName":{"baseType":{"id":74776,"name":"uint256","nodeType":"ElementaryTypeName","src":"28920:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74777,"nodeType":"ArrayTypeName","src":"28920:9:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage_ptr","typeString":"uint256[]"}}},"id":74780,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"28916:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"src":"28901:31:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74782,"nodeType":"ExpressionStatement","src":"28901:31:126"},{"expression":{"id":74787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":74783,"name":"proposalsIds","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74751,"src":"28950:12:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_memory_ptr","typeString":"uint256[] memory"}},"id":74785,"indexExpression":{"hexValue":"30","id":74784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28963:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"28950:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74786,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"28968:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28950:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74788,"nodeType":"ExpressionStatement","src":"28950:28:126"}]}},{"assignments":[74876],"declarations":[{"constant":false,"id":74876,"mutability":"mutable","name":"delta","nameLocation":"29793:5:126","nodeType":"VariableDeclaration","scope":75022,"src":"29786:12:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":74875,"name":"int256","nodeType":"ElementaryTypeName","src":"29786:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":74881,"initialValue":{"expression":{"baseExpression":{"id":74877,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"29801:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74879,"indexExpression":{"id":74878,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"29818:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29801:19:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory"}},"id":74880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"29821:12:126","memberName":"deltaSupport","nodeType":"MemberAccess","referencedDeclaration":72851,"src":"29801:32:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"29786:47:126"},{"assignments":[74886],"declarations":[{"constant":false,"id":74886,"mutability":"mutable","name":"proposal","nameLocation":"29880:8:126","nodeType":"VariableDeclaration","scope":75022,"src":"29848:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":74885,"nodeType":"UserDefinedTypeName","pathNode":{"id":74884,"name":"StrategyStruct.Proposal","nameLocations":["29848:14:126","29863:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"29848:23:126"},"referencedDeclaration":72847,"src":"29848:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":74890,"initialValue":{"baseExpression":{"id":74887,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"29891:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":74889,"indexExpression":{"id":74888,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"29901:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"29891:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"29848:64:126"},{"assignments":[74892],"declarations":[{"constant":false,"id":74892,"mutability":"mutable","name":"previousStakedPoints","nameLocation":"30022:20:126","nodeType":"VariableDeclaration","scope":75022,"src":"30014:28:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74891,"name":"uint256","nodeType":"ElementaryTypeName","src":"30014:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74897,"initialValue":{"baseExpression":{"expression":{"id":74893,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30045:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74894,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30054:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"30045:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74896,"indexExpression":{"id":74895,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30072:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30045:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30014:66:126"},{"assignments":[74899],"declarations":[{"constant":false,"id":74899,"mutability":"mutable","name":"stakedPoints","nameLocation":"30253:12:126","nodeType":"VariableDeclaration","scope":75022,"src":"30245:20:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74898,"name":"uint256","nodeType":"ElementaryTypeName","src":"30245:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74904,"initialValue":{"arguments":[{"id":74901,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"30280:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":74902,"name":"delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74876,"src":"30302:5:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":74900,"name":"_applyDelta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75060,"src":"30268:11:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_int256_$returns$_t_uint256_$","typeString":"function (uint256,int256) pure returns (uint256)"}},"id":74903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"30268:40:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"30245:63:126"},{"expression":{"id":74911,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"expression":{"id":74905,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30443:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74908,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30452:17:126","memberName":"voterStakedPoints","nodeType":"MemberAccess","referencedDeclaration":72843,"src":"30443:26:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":74909,"indexExpression":{"id":74907,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30470:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"30443:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":74910,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"30481:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30443:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74912,"nodeType":"ExpressionStatement","src":"30443:50:126"},{"assignments":[74914],"declarations":[{"constant":false,"id":74914,"mutability":"mutable","name":"hasProposal","nameLocation":"30732:11:126","nodeType":"VariableDeclaration","scope":75022,"src":"30727:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":74913,"name":"bool","nodeType":"ElementaryTypeName","src":"30727:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"id":74916,"initialValue":{"hexValue":"66616c7365","id":74915,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30746:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"nodeType":"VariableDeclarationStatement","src":"30727:24:126"},{"body":{"id":74945,"nodeType":"Block","src":"30832:179:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"baseExpression":{"id":74930,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"30854:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74932,"indexExpression":{"id":74931,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30875:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74934,"indexExpression":{"id":74933,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30884:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30854:32:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"id":74935,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"30890:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74936,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"30899:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"30890:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30854:55:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74944,"nodeType":"IfStatement","src":"30850:147:126","trueBody":{"id":74943,"nodeType":"Block","src":"30911:86:126","statements":[{"expression":{"id":74940,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74938,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74914,"src":"30933:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":74939,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"30947:4:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"30933:18:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74941,"nodeType":"ExpressionStatement","src":"30933:18:126"},{"id":74942,"nodeType":"Break","src":"30973:5:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74926,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74921,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30785:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"baseExpression":{"id":74922,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"30789:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74924,"indexExpression":{"id":74923,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"30810:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"30789:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"30819:6:126","memberName":"length","nodeType":"MemberAccess","src":"30789:36:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"30785:40:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74946,"initializationExpression":{"assignments":[74918],"declarations":[{"constant":false,"id":74918,"mutability":"mutable","name":"k","nameLocation":"30778:1:126","nodeType":"VariableDeclaration","scope":74946,"src":"30770:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74917,"name":"uint256","nodeType":"ElementaryTypeName","src":"30770:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74920,"initialValue":{"hexValue":"30","id":74919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"30782:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"30770:13:126"},"loopExpression":{"expression":{"id":74928,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"30827:3:126","subExpression":{"id":74927,"name":"k","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74918,"src":"30827:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74929,"nodeType":"ExpressionStatement","src":"30827:3:126"},"nodeType":"ForStatement","src":"30765:246:126"},{"condition":{"id":74948,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"31028:12:126","subExpression":{"id":74947,"name":"hasProposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74914,"src":"31029:11:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":74958,"nodeType":"IfStatement","src":"31024:106:126","trueBody":{"id":74957,"nodeType":"Block","src":"31042:88:126","statements":[{"expression":{"arguments":[{"expression":{"id":74953,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31095:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74954,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31104:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"31095:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"baseExpression":{"id":74949,"name":"voterStakedProposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73101,"src":"31060:20:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$","typeString":"mapping(address => uint256[] storage ref)"}},"id":74951,"indexExpression":{"id":74950,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"31081:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"31060:29:126","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$dyn_storage","typeString":"uint256[] storage ref"}},"id":74952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31090:4:126","memberName":"push","nodeType":"MemberAccess","src":"31060:34:126","typeDescriptions":{"typeIdentifier":"t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$attached_to$_t_array$_t_uint256_$dyn_storage_ptr_$","typeString":"function (uint256[] storage pointer,uint256)"}},"id":74955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31060:55:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":74956,"nodeType":"ExpressionStatement","src":"31060:55:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74961,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74959,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31285:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":74960,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31309:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31285:36:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":74991,"nodeType":"Block","src":"31490:161:126","statements":[{"expression":{"id":74981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74977,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"31508:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74980,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74978,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31523:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74979,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31546:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31523:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31508:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74982,"nodeType":"ExpressionStatement","src":"31508:50:126"},{"expression":{"id":74989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74983,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31576:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74985,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31585:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31576:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74986,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31601:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74987,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31624:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31601:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31576:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74990,"nodeType":"ExpressionStatement","src":"31576:60:126"}]},"id":74992,"nodeType":"IfStatement","src":"31281:370:126","trueBody":{"id":74976,"nodeType":"Block","src":"31323:161:126","statements":[{"expression":{"id":74966,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":74962,"name":"totalStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73068,"src":"31341:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74965,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74963,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31356:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74964,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31371:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31356:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31341:50:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74967,"nodeType":"ExpressionStatement","src":"31341:50:126"},{"expression":{"id":74974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74968,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31409:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74970,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31418:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31409:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74973,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74971,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31434:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":74972,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31449:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31434:35:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31409:60:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74975,"nodeType":"ExpressionStatement","src":"31409:60:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74996,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":74993,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31668:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74994,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31677:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31668:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":74995,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"31690:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"31668:23:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75020,"nodeType":"Block","src":"31765:209:126","statements":[{"expression":{"arguments":[{"id":75006,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31810:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75007,"name":"previousStakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74892,"src":"31820:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75005,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"31783:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31783:58:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75009,"nodeType":"ExpressionStatement","src":"31783:58:126"},{"eventCall":{"arguments":[{"id":75011,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74740,"src":"31877:7:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":75012,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74765,"src":"31886:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75013,"name":"stakedPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74899,"src":"31898:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75014,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31912:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31921:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"31912:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75016,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31935:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75017,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"31944:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"31935:23:126","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"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75010,"name":"SupportAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73016,"src":"31864:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (address,uint256,uint256,uint256,uint256)"}},"id":75018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"31864:95:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75019,"nodeType":"EmitStatement","src":"31859:100:126"}]},"id":75021,"nodeType":"IfStatement","src":"31664:310:126","trueBody":{"id":75004,"nodeType":"Block","src":"31693:66:126","statements":[{"expression":{"id":75002,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":74997,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74886,"src":"31711:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":74999,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"31720:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"31711:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75000,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"31732:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75001,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"31738:6:126","memberName":"number","nodeType":"MemberAccess","src":"31732:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"31711:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75003,"nodeType":"ExpressionStatement","src":"31711:33:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":74760,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":74757,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28685:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":74758,"name":"_proposalSupport","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74744,"src":"28689:16:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport memory[] memory"}},"id":74759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"28706:6:126","memberName":"length","nodeType":"MemberAccess","src":"28689:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"28685:27:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75023,"initializationExpression":{"assignments":[74754],"declarations":[{"constant":false,"id":74754,"mutability":"mutable","name":"i","nameLocation":"28678:1:126","nodeType":"VariableDeclaration","scope":75023,"src":"28670:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":74753,"name":"uint256","nodeType":"ElementaryTypeName","src":"28670:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":74756,"initialValue":{"hexValue":"30","id":74755,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"28682:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"28670:13:126"},"loopExpression":{"expression":{"id":74762,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"28714:3:126","subExpression":{"id":74761,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74754,"src":"28714:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":74763,"nodeType":"ExpressionStatement","src":"28714:3:126"},"nodeType":"ForStatement","src":"28665:3319:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addSupport","nameLocation":"28520:11:126","parameters":{"id":74745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":74740,"mutability":"mutable","name":"_sender","nameLocation":"28540:7:126","nodeType":"VariableDeclaration","scope":75025,"src":"28532:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":74739,"name":"address","nodeType":"ElementaryTypeName","src":"28532:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":74744,"mutability":"mutable","name":"_proposalSupport","nameLocation":"28589:16:126","nodeType":"VariableDeclaration","scope":75025,"src":"28549:56:126","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_memory_ptr_$dyn_memory_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"},"typeName":{"baseType":{"id":74742,"nodeType":"UserDefinedTypeName","pathNode":{"id":74741,"name":"StrategyStruct.ProposalSupport","nameLocations":["28549:14:126","28564:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":72852,"src":"28549:30:126"},"referencedDeclaration":72852,"src":"28549:30:126","typeDescriptions":{"typeIdentifier":"t_struct$_ProposalSupport_$72852_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport"}},"id":74743,"nodeType":"ArrayTypeName","src":"28549:32:126","typeDescriptions":{"typeIdentifier":"t_array$_t_struct$_ProposalSupport_$72852_storage_$dyn_storage_ptr","typeString":"struct StrategyStruct.ProposalSupport[]"}},"visibility":"internal"}],"src":"28531:75:126"},"returnParameters":{"id":74746,"nodeType":"ParameterList","parameters":[],"src":"28616:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75060,"nodeType":"FunctionDefinition","src":"31996:276:126","nodes":[],"body":{"id":75059,"nodeType":"Block","src":"32082:190:126","nodes":[],"statements":[{"assignments":[75035],"declarations":[{"constant":false,"id":75035,"mutability":"mutable","name":"result","nameLocation":"32099:6:126","nodeType":"VariableDeclaration","scope":75059,"src":"32092:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75034,"name":"int256","nodeType":"ElementaryTypeName","src":"32092:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"id":75042,"initialValue":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75041,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":75038,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75027,"src":"32115:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75037,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32108:6:126","typeDescriptions":{"typeIdentifier":"t_type$_t_int256_$","typeString":"type(int256)"},"typeName":{"id":75036,"name":"int256","nodeType":"ElementaryTypeName","src":"32108:6:126","typeDescriptions":{}}},"id":75039,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32108:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75040,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"32127:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"src":"32108:25:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"VariableDeclarationStatement","src":"32092:41:126"},{"condition":{"commonType":{"typeIdentifier":"t_int256","typeString":"int256"},"id":75045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75043,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32148:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"hexValue":"30","id":75044,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"32157:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"32148:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75053,"nodeType":"IfStatement","src":"32144:90:126","trueBody":{"id":75052,"nodeType":"Block","src":"32160:74:126","statements":[{"errorCall":{"arguments":[{"id":75047,"name":"_support","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75027,"src":"32198:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75048,"name":"_delta","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75029,"src":"32208:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},{"id":75049,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32216:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_int256","typeString":"int256"},{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75046,"name":"SupportUnderflow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72923,"src":"32181:16:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_int256_$_t_int256_$returns$__$","typeString":"function (uint256,int256,int256) pure"}},"id":75050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32181:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75051,"nodeType":"RevertStatement","src":"32174:49:126"}]}},{"expression":{"arguments":[{"id":75056,"name":"result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75035,"src":"32258:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_int256","typeString":"int256"}],"id":75055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"32250:7:126","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":75054,"name":"uint256","nodeType":"ElementaryTypeName","src":"32250:7:126","typeDescriptions":{}}},"id":75057,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"32250:15:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75033,"id":75058,"nodeType":"Return","src":"32243:22:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_applyDelta","nameLocation":"32005:11:126","parameters":{"id":75030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75027,"mutability":"mutable","name":"_support","nameLocation":"32025:8:126","nodeType":"VariableDeclaration","scope":75060,"src":"32017:16:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75026,"name":"uint256","nodeType":"ElementaryTypeName","src":"32017:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75029,"mutability":"mutable","name":"_delta","nameLocation":"32042:6:126","nodeType":"VariableDeclaration","scope":75060,"src":"32035:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"},"typeName":{"id":75028,"name":"int256","nodeType":"ElementaryTypeName","src":"32035:6:126","typeDescriptions":{"typeIdentifier":"t_int256","typeString":"int256"}},"visibility":"internal"}],"src":"32016:33:126"},"returnParameters":{"id":75033,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75032,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75060,"src":"32073:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75031,"name":"uint256","nodeType":"ElementaryTypeName","src":"32073:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32072:9:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75116,"nodeType":"FunctionDefinition","src":"32689:1145:126","nodes":[],"body":{"id":75115,"nodeType":"Block","src":"32836:998:126","nodes":[],"statements":[{"assignments":[75073],"declarations":[{"constant":false,"id":75073,"mutability":"mutable","name":"t","nameLocation":"32854:1:126","nodeType":"VariableDeclaration","scope":75115,"src":"32846:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75072,"name":"uint256","nodeType":"ElementaryTypeName","src":"32846:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75075,"initialValue":{"id":75074,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75063,"src":"32858:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"32846:23:126"},{"assignments":[75077],"declarations":[{"constant":false,"id":75077,"mutability":"mutable","name":"atTWO_128","nameLocation":"33192:9:126","nodeType":"VariableDeclaration","scope":75115,"src":"33184:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75076,"name":"uint256","nodeType":"ElementaryTypeName","src":"33184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75087,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75084,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75081,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75079,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33210:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75080,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33219:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33210:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75082,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33209:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75083,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33226:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33209:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75085,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75073,"src":"33229:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75078,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75304,"src":"33204:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75086,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"33204:27:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"33184:47:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75107,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75088,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75077,"src":"33727:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75089,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75065,"src":"33739:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33727:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75091,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33726:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75105,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75099,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75094,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75092,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75067,"src":"33754:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75093,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33767:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75095,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"33772:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75096,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75077,"src":"33782:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33772:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75098,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33771:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33754:38:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75100,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33753:40:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75103,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75101,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"33797:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75102,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"33801:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33797:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75104,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33796:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33753:54:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75106,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33752:56:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33726:82:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75108,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33725:84:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75109,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73051,"src":"33812:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"33725:94:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75111,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"33724:96:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"33824:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"33724:103:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75071,"id":75114,"nodeType":"Return","src":"33717:110:126"}]},"documentation":{"id":75061,"nodeType":"StructuredDocumentation","src":"32278:406:126","text":" @dev Conviction formula: a^t * y(0) + x * (1 - a^t) / (1 - a)\n Solidity implementation: y = (2^128 * a^t * y0 + x * D * (2^128 - 2^128 * a^t) / (D - aD) + 2^127) / 2^128\n @param _timePassed Number of blocks since last conviction record\n @param _lastConv Last conviction record\n @param _oldAmount Amount of tokens staked until now\n @return Current conviction"},"functionSelector":"346db8cb","implemented":true,"kind":"function","modifiers":[],"name":"calculateConviction","nameLocation":"32698:19:126","parameters":{"id":75068,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75063,"mutability":"mutable","name":"_timePassed","nameLocation":"32726:11:126","nodeType":"VariableDeclaration","scope":75116,"src":"32718:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75062,"name":"uint256","nodeType":"ElementaryTypeName","src":"32718:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75065,"mutability":"mutable","name":"_lastConv","nameLocation":"32747:9:126","nodeType":"VariableDeclaration","scope":75116,"src":"32739:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75064,"name":"uint256","nodeType":"ElementaryTypeName","src":"32739:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75067,"mutability":"mutable","name":"_oldAmount","nameLocation":"32766:10:126","nodeType":"VariableDeclaration","scope":75116,"src":"32758:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75066,"name":"uint256","nodeType":"ElementaryTypeName","src":"32758:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32717:60:126"},"returnParameters":{"id":75071,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75070,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75116,"src":"32823:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75069,"name":"uint256","nodeType":"ElementaryTypeName","src":"32823:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"32822:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75204,"nodeType":"FunctionDefinition","src":"34415:1482:126","nodes":[],"body":{"id":75203,"nodeType":"Block","src":"34510:1387:126","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75126,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75124,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"34644:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"hexValue":"30","id":75125,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"34658:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"34644:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75131,"nodeType":"IfStatement","src":"34640:66:126","trueBody":{"id":75130,"nodeType":"Block","src":"34661:45:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75127,"name":"PoolIsEmpty","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72901,"src":"34682:11:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75128,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"34682:13:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75129,"nodeType":"RevertStatement","src":"34675:20:126"}]}},{"condition":{"arguments":[{"id":75133,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"35162:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75132,"name":"_isOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":74642,"src":"35146:15:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_bool_$","typeString":"function (uint256) view returns (bool)"}},"id":75134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35146:33:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75139,"nodeType":"IfStatement","src":"35142:91:126","trueBody":{"id":75138,"nodeType":"Block","src":"35181:52:126","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75135,"name":"AmountOverMaxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72909,"src":"35202:18:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35202:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75137,"nodeType":"RevertStatement","src":"35195:27:126"}]}},{"assignments":[75141],"declarations":[{"constant":false,"id":75141,"mutability":"mutable","name":"denom","nameLocation":"35389:5:126","nodeType":"VariableDeclaration","scope":75203,"src":"35381:13:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75140,"name":"uint256","nodeType":"ElementaryTypeName","src":"35381:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75159,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75146,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75142,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"35398:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75145,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35409:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75144,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35414:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35409:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35398:18:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75147,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35397:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75148,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35420:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75154,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75150,"name":"_requestedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75119,"src":"35425:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"commonType":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"},"id":75153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":75151,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35444:1:126","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3634","id":75152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35449:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35444:7:126","typeDescriptions":{"typeIdentifier":"t_rational_18446744073709551616_by_1","typeString":"int_const 18446744073709551616"}},"src":"35425:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75155,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35424:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75156,"name":"poolAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3343,"src":"35455:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35424:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35397:68:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"35381:84:126"},{"expression":{"id":75192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75160,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35475:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75161,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"35507:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":75162,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35517:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"35507:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75164,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35506:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":75165,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35524:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35506:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75167,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35505:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75168,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75141,"src":"35531:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75169,"name":"denom","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75141,"src":"35539:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35531:13:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75171,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35530:15:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75172,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35549:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35530:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75174,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35529:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35505:47:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75176,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35504:49:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75177,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35556:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35504:53:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75179,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35503:55:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75180,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"35562:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75181,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"35566:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35562:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75183,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35561:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35503:69:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75185,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35502:71:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75186,"name":"totalEffectiveActivePoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75312,"src":"35576:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"id":75187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"35576:28:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35502:102:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75189,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"35488:126:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"3634","id":75190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"35618:2:126","typeDescriptions":{"typeIdentifier":"t_rational_64_by_1","typeString":"int_const 64"},"value":"64"},"src":"35488:132:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35475:145:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75193,"nodeType":"ExpressionStatement","src":"35475:145:126"},{"expression":{"id":75201,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75194,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35810:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75195,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35823:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":75196,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"35836:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35823:32:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"id":75199,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"35871:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75200,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"35823:67:126","trueExpression":{"id":75198,"name":"_threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75122,"src":"35858:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"35810:80:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75202,"nodeType":"ExpressionStatement","src":"35810:80:126"}]},"documentation":{"id":75117,"nodeType":"StructuredDocumentation","src":"33840:570:126","text":" @dev Formula: ρ * totalStaked / (1 - a) / (β - requestedAmount / total)**2\n For the Solidity implementation we amplify ρ and β and simplify the formula:\n weight = ρ * D\n maxRatio = β * D\n decay = a * D\n threshold = weight * totalStaked * D ** 2 * funds ** 2 / (D - decay) / (maxRatio * funds - requestedAmount * D) ** 2\n @param _requestedAmount Requested amount of tokens on certain proposal\n @return _threshold Threshold a proposal's conviction should surpass in order to be able to\n executed it."},"functionSelector":"59a5db8b","implemented":true,"kind":"function","modifiers":[],"name":"calculateThreshold","nameLocation":"34424:18:126","parameters":{"id":75120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75119,"mutability":"mutable","name":"_requestedAmount","nameLocation":"34451:16:126","nodeType":"VariableDeclaration","scope":75204,"src":"34443:24:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75118,"name":"uint256","nodeType":"ElementaryTypeName","src":"34443:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34442:26:126"},"returnParameters":{"id":75123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75122,"mutability":"mutable","name":"_threshold","nameLocation":"34498:10:126","nodeType":"VariableDeclaration","scope":75204,"src":"34490:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75121,"name":"uint256","nodeType":"ElementaryTypeName","src":"34490:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"34489:20:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75239,"nodeType":"FunctionDefinition","src":"36158:269:126","nodes":[],"body":{"id":75238,"nodeType":"Block","src":"36236:191:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75215,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"36254:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75216,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36260:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36254:13:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":75218,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36269:42:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":75214,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36246:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36246:66:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75220,"nodeType":"ExpressionStatement","src":"36246:66:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75222,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"36330:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75223,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36335:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36330:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":75225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36344:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":75221,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36322:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36322:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75227,"nodeType":"ExpressionStatement","src":"36322:53:126"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75233,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75230,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75228,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75207,"src":"36394:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75229,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75209,"src":"36399:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36394:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75231,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36393:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":75232,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73051,"src":"36405:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36393:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75234,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"36392:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":75235,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36417:3:126","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"36392:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75213,"id":75237,"nodeType":"Return","src":"36385:35:126"}]},"documentation":{"id":75205,"nodeType":"StructuredDocumentation","src":"35903:250:126","text":" Multiply _a by _b / 2^128. Parameter _a should be less than or equal to\n 2^128 and parameter _b should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result _a * _b / 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"36167:4:126","parameters":{"id":75210,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75207,"mutability":"mutable","name":"_a","nameLocation":"36180:2:126","nodeType":"VariableDeclaration","scope":75239,"src":"36172:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75206,"name":"uint256","nodeType":"ElementaryTypeName","src":"36172:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75209,"mutability":"mutable","name":"_b","nameLocation":"36192:2:126","nodeType":"VariableDeclaration","scope":75239,"src":"36184:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75208,"name":"uint256","nodeType":"ElementaryTypeName","src":"36184:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36171:24:126"},"returnParameters":{"id":75213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75212,"mutability":"mutable","name":"_result","nameLocation":"36227:7:126","nodeType":"VariableDeclaration","scope":75239,"src":"36219:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75211,"name":"uint256","nodeType":"ElementaryTypeName","src":"36219:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36218:17:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75304,"nodeType":"FunctionDefinition","src":"36649:447:126","nodes":[],"body":{"id":75303,"nodeType":"Block","src":"36727:369:126","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75250,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75242,"src":"36745:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":75251,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36750:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36745:12:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":75253,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"36759:30:126","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":75249,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"36737:7:126","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":75254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36737:53:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75255,"nodeType":"ExpressionStatement","src":"36737:53:126"},{"assignments":[75257],"declarations":[{"constant":false,"id":75257,"mutability":"mutable","name":"a","nameLocation":"36808:1:126","nodeType":"VariableDeclaration","scope":75303,"src":"36800:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75256,"name":"uint256","nodeType":"ElementaryTypeName","src":"36800:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75259,"initialValue":{"id":75258,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75242,"src":"36812:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36800:14:126"},{"assignments":[75261],"declarations":[{"constant":false,"id":75261,"mutability":"mutable","name":"b","nameLocation":"36832:1:126","nodeType":"VariableDeclaration","scope":75303,"src":"36824:9:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75260,"name":"uint256","nodeType":"ElementaryTypeName","src":"36824:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75263,"initialValue":{"id":75262,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75244,"src":"36836:2:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"36824:14:126"},{"expression":{"id":75266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75264,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"36848:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75265,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73048,"src":"36858:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36848:17:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75267,"nodeType":"ExpressionStatement","src":"36848:17:126"},{"body":{"id":75301,"nodeType":"Block","src":"36889:201:126","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75271,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36907:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":75272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36911:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36907:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36916:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36907:10:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":75299,"nodeType":"Block","src":"36997:83:126","statements":[{"expression":{"id":75293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75288,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37015:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75290,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75247,"src":"37030:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75291,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"37039:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75289,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75239,"src":"37025:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37025:16:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37015:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75294,"nodeType":"ExpressionStatement","src":"37015:26:126"},{"expression":{"id":75297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75295,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"37059:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":75296,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37064:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"37059:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75298,"nodeType":"ExpressionStatement","src":"37059:6:126"}]},"id":75300,"nodeType":"IfStatement","src":"36903:177:126","trueBody":{"id":75287,"nodeType":"Block","src":"36919:72:126","statements":[{"expression":{"id":75281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75276,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36937:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75278,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36946:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75279,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75257,"src":"36949:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75277,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75239,"src":"36941:4:126","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":75280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"36941:10:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"36937:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75282,"nodeType":"ExpressionStatement","src":"36937:14:126"},{"expression":{"id":75285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75283,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36969:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":75284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36975:1:126","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"36969:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75286,"nodeType":"ExpressionStatement","src":"36969:7:126"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75268,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75261,"src":"36882:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":75269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"36886:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"36882:5:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75302,"nodeType":"WhileStatement","src":"36875:215:126"}]},"documentation":{"id":75240,"nodeType":"StructuredDocumentation","src":"36433:211:126","text":" Calculate (_a / 2^128)^_b * 2^128. Parameter _a should be less than 2^128.\n @param _a left argument\n @param _b right argument\n @return _result (_a / 2^128)^_b * 2^128"},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"36658:4:126","parameters":{"id":75245,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75242,"mutability":"mutable","name":"_a","nameLocation":"36671:2:126","nodeType":"VariableDeclaration","scope":75304,"src":"36663:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75241,"name":"uint256","nodeType":"ElementaryTypeName","src":"36663:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75244,"mutability":"mutable","name":"_b","nameLocation":"36683:2:126","nodeType":"VariableDeclaration","scope":75304,"src":"36675:10:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75243,"name":"uint256","nodeType":"ElementaryTypeName","src":"36675:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36662:24:126"},"returnParameters":{"id":75248,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75247,"mutability":"mutable","name":"_result","nameLocation":"36718:7:126","nodeType":"VariableDeclaration","scope":75304,"src":"36710:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75246,"name":"uint256","nodeType":"ElementaryTypeName","src":"36710:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"36709:17:126"},"scope":75561,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":75312,"nodeType":"FunctionDefinition","src":"37102:112:126","nodes":[],"body":{"id":75311,"nodeType":"Block","src":"37170:44:126","nodes":[],"statements":[{"expression":{"id":75309,"name":"totalPointsActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73070,"src":"37187:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75308,"id":75310,"nodeType":"Return","src":"37180:27:126"}]},"functionSelector":"d1e36232","implemented":true,"kind":"function","modifiers":[],"name":"totalEffectiveActivePoints","nameLocation":"37111:26:126","parameters":{"id":75305,"nodeType":"ParameterList","parameters":[],"src":"37137:2:126"},"returnParameters":{"id":75308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75307,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75312,"src":"37161:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75306,"name":"uint256","nodeType":"ElementaryTypeName","src":"37161:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37160:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75353,"nodeType":"FunctionDefinition","src":"37404:396:126","nodes":[],"body":{"id":75352,"nodeType":"Block","src":"37512:288:126","nodes":[],"statements":[{"assignments":[75322,75324],"declarations":[{"constant":false,"id":75322,"mutability":"mutable","name":"conviction","nameLocation":"37531:10:126","nodeType":"VariableDeclaration","scope":75352,"src":"37523:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75321,"name":"uint256","nodeType":"ElementaryTypeName","src":"37523:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75324,"mutability":"mutable","name":"blockNumber","nameLocation":"37551:11:126","nodeType":"VariableDeclaration","scope":75352,"src":"37543:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75323,"name":"uint256","nodeType":"ElementaryTypeName","src":"37543:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":75329,"initialValue":{"arguments":[{"id":75326,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37600:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"id":75327,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75318,"src":"37611:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75325,"name":"_checkBlockAndCalculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75400,"src":"37566:33:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$_t_uint256_$_t_uint256_$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256) view returns (uint256,uint256)"}},"id":75328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"37566:56:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_uint256_$","typeString":"tuple(uint256,uint256)"}},"nodeType":"VariableDeclarationStatement","src":"37522:100:126"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75336,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75330,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"37636:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37650:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37636:15:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75333,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37655:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":75334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"37670:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"37655:16:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"37636:35:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75339,"nodeType":"IfStatement","src":"37632:72:126","trueBody":{"id":75338,"nodeType":"Block","src":"37673:31:126","statements":[{"functionReturnParameters":75320,"id":75337,"nodeType":"Return","src":"37687:7:126"}]}},{"expression":{"id":75344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75340,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37713:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75342,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37723:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"37713:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75343,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75324,"src":"37735:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37713:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75345,"nodeType":"ExpressionStatement","src":"37713:33:126"},{"expression":{"id":75350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":75346,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75316,"src":"37756:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75348,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"37766:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"37756:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75349,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75322,"src":"37783:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"37756:37:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75351,"nodeType":"ExpressionStatement","src":"37756:37:126"}]},"documentation":{"id":75313,"nodeType":"StructuredDocumentation","src":"37220:179:126","text":" @dev Calculate conviction and store it on the proposal\n @param _proposal Proposal\n @param _oldStaked Amount of tokens staked on a proposal until now"},"implemented":true,"kind":"function","modifiers":[],"name":"_calculateAndSetConviction","nameLocation":"37413:26:126","parameters":{"id":75319,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75316,"mutability":"mutable","name":"_proposal","nameLocation":"37472:9:126","nodeType":"VariableDeclaration","scope":75353,"src":"37440:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75315,"nodeType":"UserDefinedTypeName","pathNode":{"id":75314,"name":"StrategyStruct.Proposal","nameLocations":["37440:14:126","37455:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"37440:23:126"},"referencedDeclaration":72847,"src":"37440:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75318,"mutability":"mutable","name":"_oldStaked","nameLocation":"37491:10:126","nodeType":"VariableDeclaration","scope":75353,"src":"37483:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75317,"name":"uint256","nodeType":"ElementaryTypeName","src":"37483:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37439:63:126"},"returnParameters":{"id":75320,"nodeType":"ParameterList","parameters":[],"src":"37512:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":75400,"nodeType":"FunctionDefinition","src":"37806:719:126","nodes":[],"body":{"id":75399,"nodeType":"Block","src":"38004:521:126","nodes":[],"statements":[{"expression":{"id":75368,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75365,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38014:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":75366,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"38028:5:126","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":75367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38034:6:126","memberName":"number","nodeType":"MemberAccess","src":"38028:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38014:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75369,"nodeType":"ExpressionStatement","src":"38014:26:126"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75371,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38057:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75372,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38067:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38057:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":75373,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38080:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38057:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":75370,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"38050:6:126","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":75375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38050:42:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75376,"nodeType":"ExpressionStatement","src":"38050:42:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75377,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38106:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75378,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38116:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38106:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75379,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38129:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38106:34:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75386,"nodeType":"IfStatement","src":"38102:173:126","trueBody":{"id":75385,"nodeType":"Block","src":"38142:133:126","statements":[{"expression":{"components":[{"hexValue":"30","id":75381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38230:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"30","id":75382,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"38233:1:126","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"id":75383,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"38229:6:126","typeDescriptions":{"typeIdentifier":"t_tuple$_t_rational_0_by_1_$_t_rational_0_by_1_$","typeString":"tuple(int_const 0,int_const 0)"}},"functionReturnParameters":75364,"id":75384,"nodeType":"Return","src":"38222:13:126"}]}},{"expression":{"id":75397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75387,"name":"conviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75361,"src":"38328:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75389,"name":"blockNumber","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75363,"src":"38374:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"expression":{"id":75390,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38388:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75391,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38398:9:126","memberName":"blockLast","nodeType":"MemberAccess","referencedDeclaration":72836,"src":"38388:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38374:33:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":75393,"name":"_proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75356,"src":"38460:9:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75394,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38470:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"38460:24:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75395,"name":"_oldStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75358,"src":"38498:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75388,"name":"calculateConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75116,"src":"38341:19:126","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256,uint256) view returns (uint256)"}},"id":75396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38341:177:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38328:190:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75398,"nodeType":"ExpressionStatement","src":"38328:190:126"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkBlockAndCalculateConviction","nameLocation":"37815:33:126","parameters":{"id":75359,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75356,"mutability":"mutable","name":"_proposal","nameLocation":"37881:9:126","nodeType":"VariableDeclaration","scope":75400,"src":"37849:41:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75355,"nodeType":"UserDefinedTypeName","pathNode":{"id":75354,"name":"StrategyStruct.Proposal","nameLocations":["37849:14:126","37864:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"37849:23:126"},"referencedDeclaration":72847,"src":"37849:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"},{"constant":false,"id":75358,"mutability":"mutable","name":"_oldStaked","nameLocation":"37900:10:126","nodeType":"VariableDeclaration","scope":75400,"src":"37892:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75357,"name":"uint256","nodeType":"ElementaryTypeName","src":"37892:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37848:63:126"},"returnParameters":{"id":75364,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75361,"mutability":"mutable","name":"conviction","nameLocation":"37967:10:126","nodeType":"VariableDeclaration","scope":75400,"src":"37959:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75360,"name":"uint256","nodeType":"ElementaryTypeName","src":"37959:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75363,"mutability":"mutable","name":"blockNumber","nameLocation":"37987:11:126","nodeType":"VariableDeclaration","scope":75400,"src":"37979:19:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75362,"name":"uint256","nodeType":"ElementaryTypeName","src":"37979:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"37958:41:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":75448,"nodeType":"FunctionDefinition","src":"38531:520:126","nodes":[],"body":{"id":75447,"nodeType":"Block","src":"38610:441:126","nodes":[],"statements":[{"assignments":[75411],"declarations":[{"constant":false,"id":75411,"mutability":"mutable","name":"proposal","nameLocation":"38652:8:126","nodeType":"VariableDeclaration","scope":75447,"src":"38620:40:126","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"},"typeName":{"id":75410,"nodeType":"UserDefinedTypeName","pathNode":{"id":75409,"name":"StrategyStruct.Proposal","nameLocations":["38620:14:126","38635:8:126"],"nodeType":"IdentifierPath","referencedDeclaration":72847,"src":"38620:23:126"},"referencedDeclaration":72847,"src":"38620:23:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal"}},"visibility":"internal"}],"id":75415,"initialValue":{"baseExpression":{"id":75412,"name":"proposals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73092,"src":"38663:9:126","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Proposal_$72847_storage_$","typeString":"mapping(uint256 => struct StrategyStruct.Proposal storage ref)"}},"id":75414,"indexExpression":{"id":75413,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38673:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"38663:21:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage","typeString":"struct StrategyStruct.Proposal storage ref"}},"nodeType":"VariableDeclarationStatement","src":"38620:64:126"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75416,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38699:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75417,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38708:10:126","memberName":"proposalId","nodeType":"MemberAccess","referencedDeclaration":72822,"src":"38699:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":75418,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38722:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"38699:33:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75425,"nodeType":"IfStatement","src":"38695:100:126","trueBody":{"id":75424,"nodeType":"Block","src":"38734:61:126","statements":[{"errorCall":{"arguments":[{"id":75421,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38773:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75420,"name":"ProposalNotInList","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72945,"src":"38755:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38755:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75423,"nodeType":"RevertStatement","src":"38748:36:126"}]}},{"condition":{"commonType":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"},"id":75431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75426,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38809:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75427,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38818:14:126","memberName":"proposalStatus","nodeType":"MemberAccess","referencedDeclaration":72839,"src":"38809:23:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":75428,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"38836:14:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":75429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"38851:14:126","memberName":"ProposalStatus","nodeType":"MemberAccess","referencedDeclaration":72820,"src":"38836:29:126","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_ProposalStatus_$72820_$","typeString":"type(enum StrategyStruct.ProposalStatus)"}},"id":75430,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"38866:6:126","memberName":"Active","nodeType":"MemberAccess","referencedDeclaration":72816,"src":"38836:36:126","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalStatus_$72820","typeString":"enum StrategyStruct.ProposalStatus"}},"src":"38809:63:126","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75437,"nodeType":"IfStatement","src":"38805:130:126","trueBody":{"id":75436,"nodeType":"Block","src":"38874:61:126","statements":[{"errorCall":{"arguments":[{"id":75433,"name":"proposalId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75402,"src":"38913:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75432,"name":"ProposalNotActive","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72941,"src":"38895:17:126","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$returns$__$","typeString":"function (uint256) pure"}},"id":75434,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38895:29:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75435,"nodeType":"RevertStatement","src":"38888:36:126"}]}},{"expression":{"arguments":[{"id":75439,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38972:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},{"expression":{"id":75440,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"38982:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75441,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"38991:12:126","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":72826,"src":"38982:21:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75438,"name":"_calculateAndSetConviction","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75353,"src":"38945:26:126","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_struct$_Proposal_$72847_storage_ptr_$_t_uint256_$returns$__$","typeString":"function (struct StrategyStruct.Proposal storage pointer,uint256)"}},"id":75442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"38945:59:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75443,"nodeType":"ExpressionStatement","src":"38945:59:126"},{"expression":{"expression":{"id":75444,"name":"proposal","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75411,"src":"39021:8:126","typeDescriptions":{"typeIdentifier":"t_struct$_Proposal_$72847_storage_ptr","typeString":"struct StrategyStruct.Proposal storage pointer"}},"id":75445,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"39030:14:126","memberName":"convictionLast","nodeType":"MemberAccess","referencedDeclaration":72828,"src":"39021:23:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75406,"id":75446,"nodeType":"Return","src":"39014:30:126"}]},"functionSelector":"1aa91a9e","implemented":true,"kind":"function","modifiers":[],"name":"updateProposalConviction","nameLocation":"38540:24:126","parameters":{"id":75403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75402,"mutability":"mutable","name":"proposalId","nameLocation":"38573:10:126","nodeType":"VariableDeclaration","scope":75448,"src":"38565:18:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75401,"name":"uint256","nodeType":"ElementaryTypeName","src":"38565:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38564:20:126"},"returnParameters":{"id":75406,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75405,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75448,"src":"38601:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75404,"name":"uint256","nodeType":"ElementaryTypeName","src":"38601:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"38600:9:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75467,"nodeType":"FunctionDefinition","src":"39057:124:126","nodes":[],"body":{"id":75466,"nodeType":"Block","src":"39129:52:126","nodes":[],"statements":[{"expression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75463,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75457,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75455,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75450,"src":"39148:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":75456,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"39157:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39148:10:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75458,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39147:12:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":75461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75459,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73045,"src":"39163:1:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":75460,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"39167:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39163:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75462,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39162:11:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39147:26:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":75464,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"39146:28:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":75454,"id":75465,"nodeType":"Return","src":"39139:35:126"}]},"functionSelector":"950559d7","implemented":true,"kind":"function","modifiers":[],"name":"getMaxConviction","nameLocation":"39066:16:126","parameters":{"id":75451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75450,"mutability":"mutable","name":"amount","nameLocation":"39091:6:126","nodeType":"VariableDeclaration","scope":75467,"src":"39083:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75449,"name":"uint256","nodeType":"ElementaryTypeName","src":"39083:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39082:16:126"},"returnParameters":{"id":75454,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75453,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75467,"src":"39120:7:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75452,"name":"uint256","nodeType":"ElementaryTypeName","src":"39120:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39119:9:126"},"scope":75561,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":75485,"nodeType":"FunctionDefinition","src":"39187:137:126","nodes":[],"body":{"id":75484,"nodeType":"Block","src":"39258:66:126","nodes":[],"statements":[{"expression":{"id":75478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75476,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73059,"src":"39268:5:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75477,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"39276:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39268:14:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75479,"nodeType":"ExpressionStatement","src":"39268:14:126"},{"eventCall":{"arguments":[{"id":75481,"name":"_decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75469,"src":"39310:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75480,"name":"DecayUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73024,"src":"39297:12:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75482,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39297:20:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75483,"nodeType":"EmitStatement","src":"39292:25:126"}]},"functionSelector":"69fa25c4","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75472,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39246:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75473,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39250:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39246:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75474,"kind":"modifierInvocation","modifierName":{"id":75471,"name":"onlyPoolManager","nameLocations":["39230:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39230:15:126"},"nodeType":"ModifierInvocation","src":"39230:27:126"}],"name":"setDecay","nameLocation":"39196:8:126","parameters":{"id":75470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75469,"mutability":"mutable","name":"_decay","nameLocation":"39213:6:126","nodeType":"VariableDeclaration","scope":75485,"src":"39205:14:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75468,"name":"uint256","nodeType":"ElementaryTypeName","src":"39205:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39204:16:126"},"returnParameters":{"id":75475,"nodeType":"ParameterList","parameters":[],"src":"39258:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75503,"nodeType":"FunctionDefinition","src":"39330:155:126","nodes":[],"body":{"id":75502,"nodeType":"Block","src":"39407:78:126","nodes":[],"statements":[{"expression":{"id":75496,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75494,"name":"maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73061,"src":"39417:8:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75495,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75487,"src":"39428:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39417:20:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75497,"nodeType":"ExpressionStatement","src":"39417:20:126"},{"eventCall":{"arguments":[{"id":75499,"name":"_maxRatio","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75487,"src":"39468:9:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75498,"name":"MaxRatioUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73028,"src":"39452:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75500,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39452:26:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75501,"nodeType":"EmitStatement","src":"39447:31:126"}]},"functionSelector":"11f22ae3","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75490,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39395:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39399:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39395:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75492,"kind":"modifierInvocation","modifierName":{"id":75489,"name":"onlyPoolManager","nameLocations":["39379:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39379:15:126"},"nodeType":"ModifierInvocation","src":"39379:27:126"}],"name":"setMaxRatio","nameLocation":"39339:11:126","parameters":{"id":75488,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75487,"mutability":"mutable","name":"_maxRatio","nameLocation":"39359:9:126","nodeType":"VariableDeclaration","scope":75503,"src":"39351:17:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75486,"name":"uint256","nodeType":"ElementaryTypeName","src":"39351:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39350:19:126"},"returnParameters":{"id":75493,"nodeType":"ParameterList","parameters":[],"src":"39407:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75521,"nodeType":"FunctionDefinition","src":"39491:143:126","nodes":[],"body":{"id":75520,"nodeType":"Block","src":"39564:70:126","nodes":[],"statements":[{"expression":{"id":75514,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75512,"name":"weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73063,"src":"39574:6:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75513,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"39583:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"39574:16:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75515,"nodeType":"ExpressionStatement","src":"39574:16:126"},{"eventCall":{"arguments":[{"id":75517,"name":"_weight","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75505,"src":"39619:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75516,"name":"WeightUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73032,"src":"39605:13:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":75518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39605:22:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75519,"nodeType":"EmitStatement","src":"39600:27:126"}]},"functionSelector":"fc1711f2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75508,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39552:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39556:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39552:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75510,"kind":"modifierInvocation","modifierName":{"id":75507,"name":"onlyPoolManager","nameLocations":["39536:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39536:15:126"},"nodeType":"ModifierInvocation","src":"39536:27:126"}],"name":"setWeight","nameLocation":"39500:9:126","parameters":{"id":75506,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75505,"mutability":"mutable","name":"_weight","nameLocation":"39518:7:126","nodeType":"VariableDeclaration","scope":75521,"src":"39510:15:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75504,"name":"uint256","nodeType":"ElementaryTypeName","src":"39510:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39509:17:126"},"returnParameters":{"id":75511,"nodeType":"ParameterList","parameters":[],"src":"39564:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75541,"nodeType":"FunctionDefinition","src":"39640:219:126","nodes":[],"body":{"id":75540,"nodeType":"Block","src":"39735:124:126","nodes":[],"statements":[{"expression":{"id":75534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75530,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73087,"src":"39745:17:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":75532,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"39783:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75531,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"39765:17:126","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunity_$77675_$","typeString":"type(contract RegistryCommunity)"}},"id":75533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39765:37:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"src":"39745:57:126","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":75535,"nodeType":"ExpressionStatement","src":"39745:57:126"},{"eventCall":{"arguments":[{"id":75537,"name":"_registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75523,"src":"39833:18:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75536,"name":"RegistryUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73036,"src":"39817:15:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":75538,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39817:35:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75539,"nodeType":"EmitStatement","src":"39812:40:126"}]},"functionSelector":"058aca44","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75526,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39723:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39727:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39723:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75528,"kind":"modifierInvocation","modifierName":{"id":75525,"name":"onlyPoolManager","nameLocations":["39707:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39707:15:126"},"nodeType":"ModifierInvocation","src":"39707:27:126"}],"name":"setRegistryCommunity","nameLocation":"39649:20:126","parameters":{"id":75524,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75523,"mutability":"mutable","name":"_registryCommunity","nameLocation":"39678:18:126","nodeType":"VariableDeclaration","scope":75541,"src":"39670:26:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75522,"name":"address","nodeType":"ElementaryTypeName","src":"39670:7:126","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"39669:28:126"},"returnParameters":{"id":75529,"nodeType":"ParameterList","parameters":[],"src":"39735:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75560,"nodeType":"FunctionDefinition","src":"39865:237:126","nodes":[],"body":{"id":75559,"nodeType":"Block","src":"39962:140:126","nodes":[],"statements":[{"eventCall":{"arguments":[{"id":75551,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"40003:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":75552,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"40024:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":75550,"name":"MinThresholdPointsUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73042,"src":"39977:25:126","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256)"}},"id":75553,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"39977:67:126","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75554,"nodeType":"EmitStatement","src":"39972:72:126"},{"expression":{"id":75557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75555,"name":"_minThresholdPoints","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":73073,"src":"40054:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75556,"name":"minThresholdPoints_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75543,"src":"40076:19:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"40054:41:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75558,"nodeType":"ExpressionStatement","src":"40054:41:126"}]},"functionSelector":"2cefadbb","implemented":true,"kind":"function","modifiers":[{"arguments":[{"expression":{"id":75546,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"39950:3:126","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"39954:6:126","memberName":"sender","nodeType":"MemberAccess","src":"39950:10:126","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"id":75548,"kind":"modifierInvocation","modifierName":{"id":75545,"name":"onlyPoolManager","nameLocations":["39934:15:126"],"nodeType":"IdentifierPath","referencedDeclaration":3386,"src":"39934:15:126"},"nodeType":"ModifierInvocation","src":"39934:27:126"}],"name":"setMinThresholdPoints","nameLocation":"39874:21:126","parameters":{"id":75544,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75543,"mutability":"mutable","name":"minThresholdPoints_","nameLocation":"39904:19:126","nodeType":"VariableDeclaration","scope":75560,"src":"39896:27:126","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75542,"name":"uint256","nodeType":"ElementaryTypeName","src":"39896:7:126","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"39895:29:126"},"returnParameters":{"id":75549,"nodeType":"ParameterList","parameters":[],"src":"39962:0:126"},"scope":75561,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":72885,"name":"BaseStrategy","nameLocations":["2845:12:126"],"nodeType":"IdentifierPath","referencedDeclaration":3923,"src":"2845:12:126"},"id":72886,"nodeType":"InheritanceSpecifier","src":"2845:12:126"},{"baseName":{"id":72887,"name":"IPointStrategy","nameLocations":["2859:14:126"],"nodeType":"IdentifierPath","referencedDeclaration":72793,"src":"2859:14:126"},"id":72888,"nodeType":"InheritanceSpecifier","src":"2859:14:126"},{"baseName":{"id":72889,"name":"ERC165","nameLocations":["2875:6:126"],"nodeType":"IdentifierPath","referencedDeclaration":58097,"src":"2875:6:126"},"id":72890,"nodeType":"InheritanceSpecifier","src":"2875:6:126"}],"canonicalName":"CVStrategy","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75561,58097,58303,72793,3923,3089,3317,3106,2969],"name":"CVStrategy","nameLocation":"2831:10:126","scope":75562,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117,72895,72897,72899,72901,72903,72905,72907,72909,72911,72913,72915,72923,72925,72927,72933,72935,72937,72941,72945,72951,72953,72955,72963]}],"license":"AGPL-3.0-only"},"id":126} \ No newline at end of file diff --git a/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json b/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json index 84880db2d..6304fade6 100644 --- a/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json +++ b/pkg/contracts/out/CVStrategyHelpers.sol/CVStrategyHelpers.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PERCENTAGE_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"},{"name":"decay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getParams","inputs":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"pure"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadata","inputs":[],"outputs":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_id1","inputs":[{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"pool_admin","type":"address","internalType":"address"},{"name":"pool_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60016080908152610120604052602e60c081815260a09162001e2d60e0399052805160099081556020820151600a906200003a9082620000f6565b5050503480156200004a57600080fd5b50620001c2565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007c57607f821691505b6020821081036200009d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f157600081815260208120601f850160051c81016020861015620000cc5750805b601f850160051c820191505b81811015620000ed57828155600101620000d8565b5050505b505050565b81516001600160401b0381111562000112576200011262000051565b6200012a8162000123845462000067565b84620000a3565b602080601f831160018114620001625760008415620001495750858301515b600019600386901b1c1916600185901b178555620000ed565b600085815260208120601f198616915b82811015620001935788860151825594840194600190910190840162000172565b5085821015620001b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c5b80620001d26000396000f3fe608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea2646970667358221220f84696c8c9b30dc6603c790c8345a6ef6a40f21b2e60247de9c01b0a8281765f64736f6c63430008130033516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","sourceMap":"608:1:135:-:0;508:5347;588:82;;;;508:5347;588:82;;;;;;;;;;;;;561:109;;;;;;;;;;;;;;;;:::i;:::-;;;;508:5347;;;;;;;;;;;;14:127:143;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:143;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:143;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:143;;;2580:26;2531:89;-1:-1:-1;;1335:1:143;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:143;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:143;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:143;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:143:o;:::-;508:5347:135;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea2646970667358221220f84696c8c9b30dc6603c790c8345a6ef6a40f21b2e60247de9c01b0a8281765f64736f6c63430008130033","sourceMap":"508:5347:135:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:143;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;699:43:135:-;;734:8;699:43;;;;;391:25:143;;;379:2;364:18;699:43:135;245:177:143;1093:437:135;;;;;;:::i;:::-;;:::i;561:109::-;;;:::i;:::-;;;;;;;;:::i;748:50::-;;791:7;748:50;;1331:118:15;;;:::i;:::-;;;;;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;1876:107::-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1536:1088:135:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1989:232:15:-;;;:::i;2673:113::-;;;:::i;439:101::-;;;:::i;1537:::-;;;:::i;3485:113::-;;;:::i;4412:75:9:-;;4445:42;4412:75;;3604:241:15;;;:::i;3938:101::-;;;:::i;1644:113::-;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;4078:543:135:-;;;;;;:::i;:::-;;:::i;546:124:15:-;;;:::i;324:109::-;;;:::i;5475:378:135:-;;;;;;:::i;:::-;;:::i;2630:1442::-;;;;;;:::i;:::-;;:::i;3241:119:15:-;;;:::i;1763:107::-;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;1093:437:135:-;1265:16;;1238:7;;1261:230;;1391:48;;;;;;;;1411:1;1391:48;;;;;;;;;;;;;;;;;;;;;;;;1330:150;;;;;-1:-1:-1;;;;;1330:22:135;;;;;:150;;1370:1;;1441:10;;1453:13;;1330:150;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1311:16;:169;1261:230;-1:-1:-1;1507:16:135;;1093:437;;;;;:::o;561:109::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;1876:107::-;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1536:1088:135:-;1776:45;;:::i;:::-;1899:30;1913:15;1899:13;:30::i;:::-;1884:12;;;:45;2046:24;2060:9;2046:13;:24::i;:::-;2028:15;;;:42;2115:26;2129:11;2115:13;:26::i;:::-;2099:13;;;:42;-1:-1:-1;;;;;2238:44:135;;;;2292:19;;;2314:12;2292:34;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2336:18:135;;;2357:11;2336:32;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2383:21:135;;;:26;2379:197;;2551:14;734:8;2551:3;:14;:::i;:::-;2527:38;;2379:197;2585:18;;;:32;;;;:6;1536:1088;-1:-1:-1;;;1536:1088:135:o;1989:232:15:-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;1537:101::-;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3604:241::-;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;1644:113::-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;4078:543:135:-;4349:14;4382:232;4406:4;4424:8;4446:17;4477:8;4499:5;4518:12;4544:11;4569:35;;;;;;;;4602:1;4569:35;;;4382:10;:232::i;:::-;4375:239;4078:543;-1:-1:-1;;;;;;;;4078:543:135:o;546:124:15:-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;5475:378:135:-;5625:7;5660:11;5625:7;5701:27;5706:18;975:7;5716:3;5707:12;;;5706:18;:::i;:::-;5726:1;5701:4;:27::i;:::-;5681:47;-1:-1:-1;5843:3:135;881:8;5816:9;5820:5;975:7;5816:9;:::i;:::-;5792:19;5802:9;-1:-1:-1;;;5792:19:135;:::i;:::-;5774:14;975:7;5774:10;:14;:::i;:::-;:38;;;;:::i;:::-;:52;;;;:::i;:::-;5748:21;5760:9;5748;:21;:::i;:::-;5747:80;;;;:::i;:::-;5746:92;;;;:::i;:::-;5745:101;;;5475:378;-1:-1:-1;;;;;;;5475:378:135:o;2630:1442::-;2962:14;3039:45;3099:68;3109:17;3128:12;3142:11;3155;3099:9;:68::i;:::-;3212:16;;;3226:1;3212:16;;;;;;;;3039:128;;-1:-1:-1;3178:31:135;;3212:16;;;;;;;;;;;;-1:-1:-1;3212:16:135;3178:50;;3266:4;3238:14;3253:1;3238:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;3238:33:135;;;-1:-1:-1;;;;;3238:33:135;;;;;3309:10;3281:14;3296:1;3281:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3281:39:135;;;:17;;;;;;;;;:39;4445:42:9;;3607:19:135;;;3603:64;;-1:-1:-1;3651:5:135;3603:64;3685:4;-1:-1:-1;;;;;3685:33:135;;3773:55;3789:8;3799:12;:10;:12::i;:::-;3813:14;3773:15;:55::i;:::-;3850:8;3884:6;3873:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3905:6;3925:1;3940:8;3962:14;3685:301;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3676:310;;4052:12;4004:60;;;;;;;;:::i;:::-;4023:8;-1:-1:-1;;;;;4004:42:135;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;;3997:68;;;;:::i;:::-;2978:1094;;;2630:1442;;;;;;;;;;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;4627:114:135:-;4690:7;4716:18;4726:8;4716:7;:18;:::i;:::-;4709:25;4627:114;-1:-1:-1;;4627:114:135:o;5022:447::-;5083:15;-1:-1:-1;;;5118:2:135;:12;5110:53;;;;-1:-1:-1;;;5110:53:135;;16523:2:143;5110:53:135;;;16505:21:143;16562:2;16542:18;;;16535:30;16601;16581:18;;;16574:58;16649:18;;5110:53:135;;;;;;;;;-1:-1:-1;;;;5185:2:135;5209;5248:215;5255:5;;5248:215;;5280:1;5284;5280:5;5289:1;5280:10;5276:177;;5314:10;5319:1;5322;5314:4;:10::i;:::-;5310:14;-1:-1:-1;5348:1:135;5342:7;5248:215;;5276:177;5398:16;5403:7;5412:1;5398:4;:16::i;:::-;5388:26;-1:-1:-1;5432:6:135;5437:1;5432:6;;:::i;:::-;;;5248:215;;;5100:369;;5022:447;;;;:::o;20158:242:24:-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:143;;;20293:33:24;-1:-1:-1;20344:7:24;;;;364:18:143;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;4747:269:135:-;4808:15;-1:-1:-1;;;4843:2:135;:13;;4835:66;;;;-1:-1:-1;;;4835:66:135;;17786:2:143;4835:66:135;;;17768:21:143;17825:2;17805:18;;;17798:30;17864:34;17844:18;;;17837:62;17935:10;17915:18;;;17908:38;17963:19;;4835:66:135;17584:404:143;4835:66:135;-1:-1:-1;;;4919:2:135;:12;4911:53;;;;-1:-1:-1;;;4911:53:135;;18195:2:143;4911:53:135;;;18177:21:143;18234:2;18214:18;;;18207:30;18273;18253:18;;;18246:58;18321:18;;4911:53:135;17993:352:143;4911:53:135;5006:3;881:8;4983:7;4988:2;4983;:7;:::i;:::-;4982:19;;;;:::i;:::-;4981:28;;;4747:269;-1:-1:-1;;;4747:269:135:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;427:165:143:-;-1:-1:-1;;;;;517:5:143;513:54;506:5;503:65;493:93;;582:1;579;572:12;493:93;427:165;:::o;597:184::-;-1:-1:-1;;;646:1:143;639:88;746:4;743:1;736:15;770:4;767:1;760:15;786:275;857:2;851:9;922:2;903:13;;-1:-1:-1;;899:27:143;887:40;;957:18;942:34;;978:22;;;939:62;936:88;;;1004:18;;:::i;:::-;1040:2;1033:22;786:275;;-1:-1:-1;786:275:143:o;1066:1354::-;1186:6;1194;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:42;1365:5;1329:42;:::i;:::-;1390:5;-1:-1:-1;1414:2:143;1453:18;;;1440:32;1481:44;1440:32;1481:44;:::i;:::-;1544:7;-1:-1:-1;1602:2:143;1587:18;;1574:32;1625:18;1655:14;;;1652:34;;;1682:1;1679;1672:12;1652:34;1720:6;1709:9;1705:22;1695:32;;1765:7;1758:4;1754:2;1750:13;1746:27;1736:55;;1787:1;1784;1777:12;1736:55;1823:2;1810:16;1845:2;1841;1838:10;1835:36;;;1851:18;;:::i;:::-;1897:2;1894:1;1890:10;1880:20;;1920:28;1944:2;1940;1936:11;1920:28;:::i;:::-;1982:15;;;2052:11;;;2048:20;;;2013:12;;;;2080:19;;;2077:39;;;2112:1;2109;2102:12;2077:39;2136:11;;;;2156:234;2172:6;2167:3;2164:15;2156:234;;;2254:3;2241:17;2226:32;;2271:44;2307:7;2271:44;:::i;:::-;2328:20;;;2189:12;;;;2368;;;;2156:234;;;2409:5;2399:15;;;;;;;;1066:1354;;;;;:::o;2762:250::-;2847:1;2857:113;2871:6;2868:1;2865:13;2857:113;;;2947:11;;;2941:18;2928:11;;;2921:39;2893:2;2886:10;2857:113;;;-1:-1:-1;;3004:1:143;2986:16;;2979:27;2762:250::o;3017:271::-;3059:3;3097:5;3091:12;3124:6;3119:3;3112:19;3140:76;3209:6;3202:4;3197:3;3193:14;3186:4;3179:5;3175:16;3140:76;:::i;:::-;3270:2;3249:15;-1:-1:-1;;3245:29:143;3236:39;;;;3277:4;3232:50;;3017:271;-1:-1:-1;;3017:271:143:o;3293:291::-;3470:6;3459:9;3452:25;3513:2;3508;3497:9;3493:18;3486:30;3433:4;3533:45;3574:2;3563:9;3559:18;3551:6;3533:45;:::i;:::-;3525:53;3293:291;-1:-1:-1;;;;3293:291:143:o;3589:484::-;3642:3;3680:5;3674:12;3707:6;3702:3;3695:19;3733:4;3762:2;3757:3;3753:12;3746:19;;3799:2;3792:5;3788:14;3820:1;3830:218;3844:6;3841:1;3838:13;3830:218;;;3909:13;;-1:-1:-1;;;;;3905:62:143;3893:75;;3988:12;;;;4023:15;;;;3866:1;3859:9;3830:218;;;-1:-1:-1;4064:3:143;;3589:484;-1:-1:-1;;;;;3589:484:143:o;4078:261::-;4257:2;4246:9;4239:21;4220:4;4277:56;4329:2;4318:9;4314:18;4306:6;4277:56;:::i;:::-;4269:64;4078:261;-1:-1:-1;;;4078:261:143:o;4344:111::-;4429:1;4422:5;4419:12;4409:40;;4445:1;4442;4435:12;4460:152;4537:20;;4586:1;4576:12;;4566:40;;4602:1;4599;4592:12;4566:40;4460:152;;;:::o;4617:416::-;4681:5;4729:4;4717:9;4712:3;4708:19;4704:30;4701:50;;;4747:1;4744;4737:12;4701:50;4780:2;4774:9;4822:4;4814:6;4810:17;4893:6;4881:10;4878:22;4857:18;4845:10;4842:34;4839:62;4836:88;;;4904:18;;:::i;:::-;4940:2;4933:22;5003:23;;4988:39;;-1:-1:-1;4973:6:143;4617:416;-1:-1:-1;4617:416:143:o;5038:664::-;5195:6;5203;5211;5219;5272:3;5260:9;5251:7;5247:23;5243:33;5240:53;;;5289:1;5286;5279:12;5240:53;5328:9;5315:23;5347:42;5383:5;5347:42;:::i;:::-;5408:5;-1:-1:-1;5465:2:143;5450:18;;5437:32;5478:43;5437:32;5478:43;:::i;:::-;5540:7;-1:-1:-1;5566:47:143;5609:2;5594:18;;5566:47;:::i;:::-;5556:57;;5632:64;5688:7;5683:2;5672:9;5668:18;5632:64;:::i;:::-;5622:74;;5038:664;;;;;;;:::o;5707:184::-;-1:-1:-1;;;5756:1:143;5749:88;5856:4;5853:1;5846:15;5880:4;5877:1;5870:15;5896:142;5979:1;5972:5;5969:12;5959:46;;5985:18;;:::i;:::-;6014;;5896:142::o;6344:1140::-;6506:4;6548:3;6537:9;6533:19;6525:27;;-1:-1:-1;;;;;6589:6:143;6583:13;6579:62;6568:9;6561:81;6698:4;6690:6;6686:17;6680:24;6673:4;6662:9;6658:20;6651:54;6761:4;6753:6;6749:17;6743:24;6736:4;6725:9;6721:20;6714:54;6824:4;6816:6;6812:17;6806:24;6799:4;6788:9;6784:20;6777:54;6887:4;6879:6;6875:17;6869:24;6862:4;6851:9;6847:20;6840:54;6941:4;6933:6;6929:17;6923:24;6983:1;6969:12;6966:19;6956:53;;6989:18;;:::i;:::-;7047:12;7040:4;7029:9;7025:20;7018:42;;7109:4;7101:6;7097:17;7091:24;7124:65;7183:4;7172:9;7168:20;7152:14;7124:65;:::i;:::-;;7238:4;7230:6;7226:17;7220:24;7253:73;7320:4;7309:9;7305:20;7289:14;6118:12;6106:25;;6043:90;7253:73;-1:-1:-1;7345:6:143;7388:15;;;7382:22;6219:12;;-1:-1:-1;;;;;6215:61:143;7459:18;;;6203:74;6326:4;6315:16;;6309:23;6293:14;;;6286:47;7413:65;6138:201;7489:1170;7668:6;7676;7684;7692;7700;7708;7716;7769:3;7757:9;7748:7;7744:23;7740:33;7737:53;;;7786:1;7783;7776:12;7737:53;7825:9;7812:23;7844:42;7880:5;7844:42;:::i;:::-;7905:5;-1:-1:-1;7962:2:143;7947:18;;7934:32;7975:44;7934:32;7975:44;:::i;:::-;8038:7;-1:-1:-1;8097:2:143;8082:18;;8069:32;8110:44;8069:32;8110:44;:::i;:::-;8173:7;-1:-1:-1;8232:2:143;8217:18;;8204:32;8245:44;8204:32;8245:44;:::i;:::-;8308:7;-1:-1:-1;8367:3:143;8352:19;;8339:33;8381:44;8339:33;8381:44;:::i;:::-;8444:7;-1:-1:-1;8503:3:143;8488:19;;8475:33;8517:43;8475:33;8517:43;:::i;:::-;8579:7;-1:-1:-1;8605:48:143;8648:3;8633:19;;8605:48;:::i;:::-;8595:58;;7489:1170;;;;;;;;;;:::o;8911:385::-;8997:6;9005;9013;9021;9074:3;9062:9;9053:7;9049:23;9045:33;9042:53;;;9091:1;9088;9081:12;9042:53;-1:-1:-1;;9114:23:143;;;9184:2;9169:18;;9156:32;;-1:-1:-1;9235:2:143;9220:18;;9207:32;;9286:2;9271:18;9258:32;;-1:-1:-1;8911:385:143;-1:-1:-1;8911:385:143:o;9301:1307::-;9525:6;9533;9541;9549;9557;9565;9573;9581;9634:3;9622:9;9613:7;9609:23;9605:33;9602:53;;;9651:1;9648;9641:12;9602:53;9690:9;9677:23;9709:42;9745:5;9709:42;:::i;:::-;9770:5;-1:-1:-1;9827:2:143;9812:18;;9799:32;9840:44;9799:32;9840:44;:::i;:::-;9903:7;-1:-1:-1;9962:2:143;9947:18;;9934:32;9975:44;9934:32;9975:44;:::i;:::-;10038:7;-1:-1:-1;10097:2:143;10082:18;;10069:32;10110:44;10069:32;10110:44;:::i;:::-;10173:7;-1:-1:-1;10232:3:143;10217:19;;10204:33;10246:44;10204:33;10246:44;:::i;:::-;10309:7;-1:-1:-1;10368:3:143;10353:19;;10340:33;10382:43;10340:33;10382:43;:::i;:::-;10444:7;-1:-1:-1;10470:48:143;10513:3;10498:19;;10470:48;:::i;:::-;10460:58;;10537:65;10594:7;10588:3;10577:9;10573:19;10537:65;:::i;:::-;10527:75;;9301:1307;;;;;;;;;;;:::o;10613:1032::-;11037:6;11026:9;11019:25;11080:3;11075:2;11064:9;11060:18;11053:31;11121:2;11115:3;11104:9;11100:19;11093:31;11161:16;11155:3;11144:9;11140:19;11133:45;11214:3;11209:2;11198:9;11194:18;11187:31;11261:6;11255:13;11249:3;11238:9;11234:19;11227:42;11000:4;11316:2;11308:6;11304:15;11298:22;11357:2;11351:3;11340:9;11336:19;11329:31;11380:52;11427:3;11416:9;11412:19;11398:12;11380:52;:::i;:::-;11369:63;;-1:-1:-1;;;;;11472:6:143;11468:55;11463:2;11452:9;11448:18;11441:83;11570:9;11565:3;11561:19;11555:3;11544:9;11540:19;11533:48;11598:41;11635:3;11627:6;11598:41;:::i;:::-;11590:49;10613:1032;-1:-1:-1;;;;;;;10613:1032:143:o;11650:184::-;11720:6;11773:2;11761:9;11752:7;11748:23;11744:32;11741:52;;;11789:1;11786;11779:12;11741:52;-1:-1:-1;11812:16:143;;11650:184;-1:-1:-1;11650:184:143:o;11839:437::-;11918:1;11914:12;;;;11961;;;11982:61;;12036:4;12028:6;12024:17;12014:27;;11982:61;12089:2;12081:6;12078:14;12058:18;12055:38;12052:218;;-1:-1:-1;;;12123:1:143;12116:88;12227:4;12224:1;12217:15;12255:4;12252:1;12245:15;12052:218;;11839:437;;;:::o;12281:184::-;-1:-1:-1;;;12330:1:143;12323:88;12430:4;12427:1;12420:15;12454:4;12451:1;12444:15;12470:184;-1:-1:-1;;;12519:1:143;12512:88;12619:4;12616:1;12609:15;12643:4;12640:1;12633:15;12659:168;12732:9;;;12763;;12780:15;;;12774:22;;12760:37;12750:71;;12801:18;;:::i;12832:274::-;12872:1;12898;12888:189;;-1:-1:-1;;;12930:1:143;12923:88;13034:4;13031:1;13024:15;13062:4;13059:1;13052:15;12888:189;-1:-1:-1;13091:9:143;;12832:274::o;13111:128::-;13178:9;;;13199:11;;;13196:37;;;13213:18;;:::i;13244:125::-;13309:9;;;13330:10;;;13327:36;;;13343:18;;:::i;13500:2154::-;13922:6;13911:9;13904:25;13885:4;13948:2;-1:-1:-1;;;;;14059:2:143;14051:6;14047:15;14042:2;14031:9;14027:18;14020:43;14099:3;14094:2;14083:9;14079:18;14072:31;14126:46;14167:3;14156:9;14152:19;14144:6;14126:46;:::i;:::-;14220:2;14212:6;14208:15;14203:2;14192:9;14188:18;14181:43;14261:6;14255:3;14244:9;14240:19;14233:35;14317:9;14309:6;14305:22;14299:3;14288:9;14284:19;14277:51;14358:6;14352:13;14344:6;14337:29;14385:4;14375:14;;14430:2;14422:6;14418:15;14466:2;14461;14453:6;14449:15;14442:27;14489:1;14522:12;14516:19;14558:3;14588:9;14584:2;14580:18;14570:28;;14648:2;14637:9;14633:18;14670;14660:61;;14714:4;14706:6;14702:17;14692:27;;14660:61;14767:2;14759:6;14756:14;14736:18;14733:38;14730:222;;-1:-1:-1;;;14801:3:143;14794:90;14907:4;14904:1;14897:15;14937:4;14932:3;14925:17;14730:222;15020:2;15008:15;;2694:19;;;2737:14;;;14961:71;-1:-1:-1;15048:18:143;15075:128;;;;15217:1;15212:321;;;;15041:492;;15075:128;-1:-1:-1;;15108:24:143;;15096:37;;15176:14;;15169:22;15166:1;15162:30;15153:40;;;-1:-1:-1;15075:128:143;;15212:321;13447:1;13440:14;;;13484:4;13471:18;;15313:1;15327:165;15341:6;15338:1;15335:13;15327:165;;;15419:14;;15406:11;;;15399:35;15462:16;;;;15356:10;;15327:165;;;15512:11;;;-1:-1:-1;;15041:492:143;;;;;15579:9;15574:3;15570:19;15564:3;15553:9;15549:19;15542:48;15607:41;15644:3;15636:6;15607:41;:::i;:::-;15599:49;13500:2154;-1:-1:-1;;;;;;;;;;;;;;13500:2154:143:o;15848:279::-;15936:6;15989:2;15977:9;15968:7;15964:23;15960:32;15957:52;;;16005:1;16002;15995:12;15957:52;16037:9;16031:16;16056:41;16091:5;16056:41;:::i;16132:184::-;-1:-1:-1;;;16181:1:143;16174:88;16281:4;16278:1;16271:15;16305:4;16302:1;16295:15;16678:289;16809:3;16847:6;16841:13;16863:66;16922:6;16917:3;16910:4;16902:6;16898:17;16863:66;:::i;:::-;16945:16;;;;;16678:289;-1:-1:-1;;16678:289:143:o;16972:262::-;17042:6;17095:2;17083:9;17074:7;17070:23;17066:32;17063:52;;;17111:1;17108;17101:12;17063:52;17143:9;17137:16;17162:42;17198:5;17162:42;:::i;17239:340::-;-1:-1:-1;;;;;17420:6:143;17416:55;17405:9;17398:74;17508:2;17503;17492:9;17488:18;17481:30;17379:4;17528:45;17569:2;17558:9;17554:18;17546:6;17528:45;:::i","linkReferences":{}},"methodIdentifiers":{"DECIMALS()":"2e0f2625","NATIVE()":"a0cf0aea","PERCENTAGE_SCALE()":"3f26479e","_calculateConviction(uint256,uint256,uint256,uint256)":"e99ce911","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","createPool(address,address,address,address,address,uint8,uint8)":"d8c12dc2","createPool(address,address,address,address,address,uint8,uint8,(uint256))":"ed62303a","getParams(address,uint8,uint8,(uint256))":"770b2e66","local()":"0f166ad4","metadata()":"392f37e9","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_id1(address,address,address[])":"37d1c404","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry_owner()":"dac4eb16"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERCENTAGE_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"_calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"getParams\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool_admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"pool_managers\",\"type\":\"address[]\"}],\"name\":\"poolProfile_id1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/CVStrategyHelpers.sol\":\"CVStrategyHelpers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/test/CVStrategyHelpers.sol\":{\"keccak256\":\"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc\",\"dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERCENTAGE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"},{"internalType":"uint256","name":"decay","type":"uint256"}],"stateMutability":"pure","type":"function","name":"_calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"getParams","outputs":[{"internalType":"struct StrategyStruct.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metadata","outputs":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"pool_admin","type":"address"},{"internalType":"address[]","name":"pool_managers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"poolProfile_id1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/CVStrategyHelpers.sol":"CVStrategyHelpers"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/test/CVStrategyHelpers.sol":{"keccak256":"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24","urls":["bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc","dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3"],"license":"AGPL-3.0-or-later"}},"version":1},"storageLayout":{"storage":[{"astId":9317,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"gasMeteringOff","offset":0,"slot":"0","type":"t_bool"},{"astId":11354,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"stdstore","offset":0,"slot":"1","type":"t_struct(StdStorage)13235_storage"},{"astId":81140,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"metadata","offset":0,"slot":"9","type":"t_struct(Metadata)3098_storage"},{"astId":81152,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_poolProfileId1_","offset":0,"slot":"11","type":"t_bytes32"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/test/CVStrategyHelpers.sol","id":81615,"exportedSymbols":{"Accounts":[5026],"Allo":[1390],"CVStrategy":[75569],"CVStrategyHelpers":[81614],"IRegistry":[2802],"Metadata":[3098],"Native":[3106],"StrategyStruct":[72892],"console":[29549]},"nodeType":"SourceUnit","src":"46:5810:135","nodes":[{"id":81115,"nodeType":"PragmaDirective","src":"46:24:135","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":81116,"nodeType":"ImportDirective","src":"72:31:135","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":81118,"nodeType":"ImportDirective","src":"104:53:135","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Allo.sol","file":"allo-v2-contracts/core/Allo.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":1391,"symbolAliases":[{"foreign":{"id":81117,"name":"Allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"112:4:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81120,"nodeType":"ImportDirective","src":"158:71:135","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"allo-v2-contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":81119,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"166:8:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81123,"nodeType":"ImportDirective","src":"230:65:135","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"../src/CVStrategy.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":75570,"symbolAliases":[{"foreign":{"id":81121,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75569,"src":"238:10:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":81122,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"250:14:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81125,"nodeType":"ImportDirective","src":"296:67:135","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"allo-v2-contracts/core/libraries/Native.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":3107,"symbolAliases":[{"foreign":{"id":81124,"name":"Native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"304:6:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81127,"nodeType":"ImportDirective","src":"364:74:135","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":81126,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"372:9:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81129,"nodeType":"ImportDirective","src":"440:66:135","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"allo-v2-test/foundry/shared/Accounts.sol","nameLocation":"-1:-1:-1","scope":81615,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":81128,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"448:8:135","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":81614,"nodeType":"ContractDefinition","src":"508:5347:135","nodes":[{"id":81140,"nodeType":"VariableDeclaration","src":"561:109:135","nodes":[],"constant":false,"functionSelector":"392f37e9","mutability":"mutable","name":"metadata","nameLocation":"577:8:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata"},"typeName":{"id":81135,"nodeType":"UserDefinedTypeName","pathNode":{"id":81134,"name":"Metadata","nameLocations":["561:8:135"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"561:8:135"},"referencedDeclaration":3098,"src":"561:8:135","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"value":{"arguments":[{"hexValue":"31","id":81137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"608:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","id":81138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"620:48:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_5132d0078161e899617508f56f10fe912a54664090fbe8853f8693be238f8d30","typeString":"literal_string \"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY\""},"value":"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_5132d0078161e899617508f56f10fe912a54664090fbe8853f8693be238f8d30","typeString":"literal_string \"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY\""}],"id":81136,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"588:8:135","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":81139,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["598:8:135","611:7:135"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"588:82:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"visibility":"public"},{"id":81145,"nodeType":"VariableDeclaration","src":"699:43:135","nodes":[],"constant":true,"functionSelector":"2e0f2625","mutability":"constant","name":"DECIMALS","nameLocation":"723:8:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81141,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":81144,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"734:2:135","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":81143,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"740:2:135","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"734:8:135","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"id":81150,"nodeType":"VariableDeclaration","src":"748:50:135","nodes":[],"constant":true,"functionSelector":"3f26479e","mutability":"constant","name":"PERCENTAGE_SCALE","nameLocation":"772:16:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81146,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":81149,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"791:2:135","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":81148,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"797:1:135","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"791:7:135","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":81152,"nodeType":"VariableDeclaration","src":"805:33:135","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId1_","nameLocation":"822:16:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81151,"name":"bytes32","nodeType":"ElementaryTypeName","src":"805:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":81157,"nodeType":"VariableDeclaration","src":"845:44:135","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"871:7:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81153,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"id":81156,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":81154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"881:1:135","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313237","id":81155,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"886:3:135","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"881:8:135","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"}},"visibility":"internal"},{"id":81162,"nodeType":"VariableDeclaration","src":"895:44:135","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"921:7:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81158,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":81161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":81159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:135","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":81160,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:135","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"931:8:135","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"internal"},{"id":81167,"nodeType":"VariableDeclaration","src":"945:37:135","nodes":[],"constant":true,"mutability":"constant","name":"D","nameLocation":"971:1:135","scope":81614,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81163,"name":"uint256","nodeType":"ElementaryTypeName","src":"945:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"id":81166,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"975:2:135","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"37","id":81165,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:1:135","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"975:7:135","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"}},"visibility":"internal"},{"id":81205,"nodeType":"FunctionDefinition","src":"1093:437:135","nodes":[],"body":{"id":81204,"nodeType":"Block","src":"1251:279:135","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":81185,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81180,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81152,"src":"1265:16:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":81183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1293:1:135","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":81182,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":81181,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1285:7:135","typeDescriptions":{}}},"id":81184,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1265:30:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81201,"nodeType":"IfStatement","src":"1261:230:135","trueBody":{"id":81200,"nodeType":"Block","src":"1297:194:135","statements":[{"expression":{"id":81198,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81186,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81152,"src":"1311:16:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32","id":81189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1370:1:135","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"hexValue":"506f6f6c2050726f66696c652031","id":81190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1373:16:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":81192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1411:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":81193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1423:14:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":81191,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1391:8:135","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":81194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1401:8:135","1414:7:135"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1391:48:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":81195,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81172,"src":"1441:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81196,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81175,"src":"1453:13:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":81187,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81170,"src":"1330:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":81188,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1339:13:135","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"1330:22:135","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":81197,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:150:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1311:169:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":81199,"nodeType":"ExpressionStatement","src":"1311:169:135"}]}},{"expression":{"id":81202,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81152,"src":"1507:16:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":81179,"id":81203,"nodeType":"Return","src":"1500:23:135"}]},"functionSelector":"37d1c404","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id1","nameLocation":"1102:15:135","parameters":{"id":81176,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81170,"mutability":"mutable","name":"registry","nameLocation":"1128:8:135","nodeType":"VariableDeclaration","scope":81205,"src":"1118:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":81169,"nodeType":"UserDefinedTypeName","pathNode":{"id":81168,"name":"IRegistry","nameLocations":["1118:9:135"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"1118:9:135"},"referencedDeclaration":2802,"src":"1118:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":81172,"mutability":"mutable","name":"pool_admin","nameLocation":"1146:10:135","nodeType":"VariableDeclaration","scope":81205,"src":"1138:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81171,"name":"address","nodeType":"ElementaryTypeName","src":"1138:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81175,"mutability":"mutable","name":"pool_managers","nameLocation":"1175:13:135","nodeType":"VariableDeclaration","scope":81205,"src":"1158:30:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81173,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81174,"nodeType":"ArrayTypeName","src":"1158:9:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1117:72:135"},"returnParameters":{"id":81179,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81178,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81205,"src":"1238:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":81177,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1238:7:135","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1237:9:135"},"scope":81614,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":81285,"nodeType":"FunctionDefinition","src":"1536:1088:135","nodes":[],"body":{"id":81284,"nodeType":"Block","src":"1823:801:135","nodes":[],"statements":[{"expression":{"id":81228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81222,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"1884:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1891:5:135","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72872,"src":"1884:12:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e39393939373939","id":81226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1913:15:135","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_999979900000000000_by_1","typeString":"int_const 999979900000000000"},"value":"0.9999799"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999979900000000000_by_1","typeString":"int_const 999979900000000000"}],"id":81225,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"1899:13:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81227,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:30:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1884:45:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81229,"nodeType":"ExpressionStatement","src":"1884:45:135"},{"expression":{"id":81236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81230,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"2028:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81232,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2035:8:135","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72874,"src":"2028:15:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e32","id":81234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2060:9:135","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"},"value":"0.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"}],"id":81233,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"2046:13:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2046:24:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2028:42:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81237,"nodeType":"ExpressionStatement","src":"2028:42:135"},{"expression":{"id":81244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81238,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"2099:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81240,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2106:6:135","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"2099:13:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e303031","id":81242,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2129:11:135","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":81241,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81459,"src":"2115:13:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":81243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2115:26:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2099:42:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81245,"nodeType":"ExpressionStatement","src":"2099:42:135"},{"expression":{"id":81250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81246,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"2238:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2245:17:135","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72870,"src":"2238:24:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81249,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81207,"src":"2265:17:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2238:44:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81251,"nodeType":"ExpressionStatement","src":"2238:44:135"},{"expression":{"id":81256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81252,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"2292:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81254,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2299:12:135","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72881,"src":"2292:19:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81255,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81210,"src":"2314:12:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"2292:34:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"id":81257,"nodeType":"ExpressionStatement","src":"2292:34:135"},{"expression":{"id":81262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81258,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"2336:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81260,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2343:11:135","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72884,"src":"2336:18:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81261,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81213,"src":"2357:11:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"2336:32:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"id":81263,"nodeType":"ExpressionStatement","src":"2336:32:135"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":81264,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81216,"src":"2383:11:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":81265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2395:9:135","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"2383:21:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2383:26:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81277,"nodeType":"IfStatement","src":"2379:197:135","trueBody":{"id":81276,"nodeType":"Block","src":"2411:165:135","statements":[{"expression":{"id":81274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81268,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81216,"src":"2527:11:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":81270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2539:9:135","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"2527:21:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81273,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"323030","id":81271,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:3:135","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81272,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81145,"src":"2557:8:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2551:14:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2527:38:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81275,"nodeType":"ExpressionStatement","src":"2527:38:135"}]}},{"expression":{"id":81282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":81278,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81220,"src":"2585:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":81280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2592:11:135","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72887,"src":"2585:18:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81281,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81216,"src":"2606:11:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"2585:32:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":81283,"nodeType":"ExpressionStatement","src":"2585:32:135"}]},"functionSelector":"770b2e66","implemented":true,"kind":"function","modifiers":[],"name":"getParams","nameLocation":"1545:9:135","parameters":{"id":81217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81207,"mutability":"mutable","name":"registryCommunity","nameLocation":"1572:17:135","nodeType":"VariableDeclaration","scope":81285,"src":"1564:25:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81206,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81210,"mutability":"mutable","name":"proposalType","nameLocation":"1627:12:135","nodeType":"VariableDeclaration","scope":81285,"src":"1599:40:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":81209,"nodeType":"UserDefinedTypeName","pathNode":{"id":81208,"name":"StrategyStruct.ProposalType","nameLocations":["1599:14:135","1614:12:135"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"1599:27:135"},"referencedDeclaration":72805,"src":"1599:27:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":81213,"mutability":"mutable","name":"pointSystem","nameLocation":"1676:11:135","nodeType":"VariableDeclaration","scope":81285,"src":"1649:38:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":81212,"nodeType":"UserDefinedTypeName","pathNode":{"id":81211,"name":"StrategyStruct.PointSystem","nameLocations":["1649:14:135","1664:11:135"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"1649:26:135"},"referencedDeclaration":72810,"src":"1649:26:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":81216,"mutability":"mutable","name":"pointConfig","nameLocation":"1737:11:135","nodeType":"VariableDeclaration","scope":81285,"src":"1697:51:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":81215,"nodeType":"UserDefinedTypeName","pathNode":{"id":81214,"name":"StrategyStruct.PointSystemConfig","nameLocations":["1697:14:135","1712:17:135"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"1697:32:135"},"referencedDeclaration":72863,"src":"1697:32:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"}],"src":"1554:200:135"},"returnParameters":{"id":81221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81220,"mutability":"mutable","name":"params","nameLocation":"1815:6:135","nodeType":"VariableDeclaration","scope":81285,"src":"1776:45:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":81219,"nodeType":"UserDefinedTypeName","pathNode":{"id":81218,"name":"StrategyStruct.InitializeParams","nameLocations":["1776:14:135","1791:16:135"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"1776:31:135"},"referencedDeclaration":72891,"src":"1776:31:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"1775:47:135"},"scope":81614,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":81407,"nodeType":"FunctionDefinition","src":"2630:1442:135","nodes":[],"body":{"id":81406,"nodeType":"Block","src":"2978:1094:135","nodes":[],"statements":[{"assignments":[81315],"declarations":[{"constant":false,"id":81315,"mutability":"mutable","name":"params","nameLocation":"3078:6:135","nodeType":"VariableDeclaration","scope":81406,"src":"3039:45:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":81314,"nodeType":"UserDefinedTypeName","pathNode":{"id":81313,"name":"StrategyStruct.InitializeParams","nameLocations":["3039:14:135","3054:16:135"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"3039:31:135"},"referencedDeclaration":72891,"src":"3039:31:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":81322,"initialValue":{"arguments":[{"id":81317,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81292,"src":"3109:17:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81318,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81300,"src":"3128:12:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},{"id":81319,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81303,"src":"3142:11:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},{"id":81320,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81306,"src":"3155:11:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}],"id":81316,"name":"getParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81285,"src":"3099:9:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_enum$_ProposalType_$72805_$_t_enum$_PointSystem_$72810_$_t_struct$_PointSystemConfig_$72863_memory_ptr_$returns$_t_struct$_InitializeParams_$72891_memory_ptr_$","typeString":"function (address,enum StrategyStruct.ProposalType,enum StrategyStruct.PointSystem,struct StrategyStruct.PointSystemConfig memory) pure returns (struct StrategyStruct.InitializeParams memory)"}},"id":81321,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:68:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3039:128:135"},{"assignments":[81327],"declarations":[{"constant":false,"id":81327,"mutability":"mutable","name":"_pool_managers","nameLocation":"3195:14:135","nodeType":"VariableDeclaration","scope":81406,"src":"3178:31:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":81325,"name":"address","nodeType":"ElementaryTypeName","src":"3178:7:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81326,"nodeType":"ArrayTypeName","src":"3178:9:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":81333,"initialValue":{"arguments":[{"hexValue":"32","id":81331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3226:1:135","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":81330,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3212:13:135","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":81328,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81329,"nodeType":"ArrayTypeName","src":"3216:9:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":81332,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:16:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3178:50:135"},{"expression":{"id":81341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":81334,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81327,"src":"3238:14:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":81336,"indexExpression":{"hexValue":"30","id":81335,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3253:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3238:17:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81339,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3266:4:135","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategyHelpers_$81614","typeString":"contract CVStrategyHelpers"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategyHelpers_$81614","typeString":"contract CVStrategyHelpers"}],"id":81338,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3258:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81337,"name":"address","nodeType":"ElementaryTypeName","src":"3258:7:135","typeDescriptions":{}}},"id":81340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:13:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3238:33:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81342,"nodeType":"ExpressionStatement","src":"3238:33:135"},{"expression":{"id":81351,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":81343,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81327,"src":"3281:14:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":81345,"indexExpression":{"hexValue":"31","id":81344,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3296:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3281:17:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":81348,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3309:3:135","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":81349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3313:6:135","memberName":"sender","nodeType":"MemberAccess","src":"3309:10:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81347,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3301:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81346,"name":"address","nodeType":"ElementaryTypeName","src":"3301:7:135","typeDescriptions":{}}},"id":81350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3301:19:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3281:39:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81352,"nodeType":"ExpressionStatement","src":"3281:39:135"},{"assignments":[81354],"declarations":[{"constant":false,"id":81354,"mutability":"mutable","name":"_token","nameLocation":"3578:6:135","nodeType":"VariableDeclaration","scope":81406,"src":"3570:14:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81353,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":81356,"initialValue":{"id":81355,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"3587:6:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3570:23:135"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":81362,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81357,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81297,"src":"3607:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":81360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3624:1:135","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":81359,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3616:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81358,"name":"address","nodeType":"ElementaryTypeName","src":"3616:7:135","typeDescriptions":{}}},"id":81361,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3616:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3607:19:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81368,"nodeType":"IfStatement","src":"3603:64:135","trueBody":{"id":81367,"nodeType":"Block","src":"3628:39:135","statements":[{"expression":{"id":81365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81363,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81354,"src":"3642:6:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81364,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81297,"src":"3651:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3642:14:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":81366,"nodeType":"ExpressionStatement","src":"3642:14:135"}]}},{"expression":{"id":81391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81369,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81309,"src":"3676:6:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":81373,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81295,"src":"3789:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},{"arguments":[],"expression":{"argumentTypes":[],"id":81374,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"3799:10:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":81375,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3799:12:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81376,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81327,"src":"3813:14:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":81372,"name":"poolProfile_id1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81205,"src":"3773:15:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IRegistry_$2802_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (contract IRegistry,address,address[] memory) returns (bytes32)"}},"id":81377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:55:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":81380,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"3850:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81379,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:7:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":81378,"name":"address","nodeType":"ElementaryTypeName","src":"3842:7:135","typeDescriptions":{}}},"id":81381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:17:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":81384,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81315,"src":"3884:6:135","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":81382,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3873:3:135","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":81383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3877:6:135","memberName":"encode","nodeType":"MemberAccess","src":"3873:10:135","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":81385,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:18:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":81386,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81354,"src":"3905:6:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":81387,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3925:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":81388,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81140,"src":"3940:8:135","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},{"id":81389,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81327,"src":"3962:14:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":81370,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81288,"src":"3685:4:135","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"id":81371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3690:28:135","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":175,"src":"3685:33:135","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":81390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3685:301:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3676:310:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81392,"nodeType":"ExpressionStatement","src":"3676:310:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"id":81403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":81397,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81290,"src":"4023:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":81396,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4015:8:135","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":81395,"name":"address","nodeType":"ElementaryTypeName","src":"4015:8:135","stateMutability":"payable","typeDescriptions":{}}},"id":81398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4015:17:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":81394,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75569,"src":"4004:10:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CVStrategy_$75569_$","typeString":"type(contract CVStrategy)"}},"id":81399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:29:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75569","typeString":"contract CVStrategy"}},"id":81400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4034:12:135","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73086,"src":"4004:42:135","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ProposalType_$72805_$","typeString":"function () view external returns (enum StrategyStruct.ProposalType)"}},"id":81401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:44:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":81402,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81300,"src":"4052:12:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"src":"4004:60:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":81393,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3997:6:135","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":81404,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:68:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81405,"nodeType":"ExpressionStatement","src":"3997:68:135"}]},"functionSelector":"ed62303a","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"2639:10:135","parameters":{"id":81307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81288,"mutability":"mutable","name":"allo","nameLocation":"2664:4:135","nodeType":"VariableDeclaration","scope":81407,"src":"2659:9:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},"typeName":{"id":81287,"nodeType":"UserDefinedTypeName","pathNode":{"id":81286,"name":"Allo","nameLocations":["2659:4:135"],"nodeType":"IdentifierPath","referencedDeclaration":1390,"src":"2659:4:135"},"referencedDeclaration":1390,"src":"2659:4:135","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"visibility":"internal"},{"constant":false,"id":81290,"mutability":"mutable","name":"strategy","nameLocation":"2686:8:135","nodeType":"VariableDeclaration","scope":81407,"src":"2678:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81289,"name":"address","nodeType":"ElementaryTypeName","src":"2678:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81292,"mutability":"mutable","name":"registryCommunity","nameLocation":"2712:17:135","nodeType":"VariableDeclaration","scope":81407,"src":"2704:25:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81291,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81295,"mutability":"mutable","name":"registry","nameLocation":"2749:8:135","nodeType":"VariableDeclaration","scope":81407,"src":"2739:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":81294,"nodeType":"UserDefinedTypeName","pathNode":{"id":81293,"name":"IRegistry","nameLocations":["2739:9:135"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"2739:9:135"},"referencedDeclaration":2802,"src":"2739:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":81297,"mutability":"mutable","name":"token","nameLocation":"2775:5:135","nodeType":"VariableDeclaration","scope":81407,"src":"2767:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81296,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81300,"mutability":"mutable","name":"proposalType","nameLocation":"2818:12:135","nodeType":"VariableDeclaration","scope":81407,"src":"2790:40:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":81299,"nodeType":"UserDefinedTypeName","pathNode":{"id":81298,"name":"StrategyStruct.ProposalType","nameLocations":["2790:14:135","2805:12:135"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"2790:27:135"},"referencedDeclaration":72805,"src":"2790:27:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":81303,"mutability":"mutable","name":"pointSystem","nameLocation":"2867:11:135","nodeType":"VariableDeclaration","scope":81407,"src":"2840:38:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":81302,"nodeType":"UserDefinedTypeName","pathNode":{"id":81301,"name":"StrategyStruct.PointSystem","nameLocations":["2840:14:135","2855:11:135"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"2840:26:135"},"referencedDeclaration":72810,"src":"2840:26:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":81306,"mutability":"mutable","name":"pointConfig","nameLocation":"2928:11:135","nodeType":"VariableDeclaration","scope":81407,"src":"2888:51:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":81305,"nodeType":"UserDefinedTypeName","pathNode":{"id":81304,"name":"StrategyStruct.PointSystemConfig","nameLocations":["2888:14:135","2903:17:135"],"nodeType":"IdentifierPath","referencedDeclaration":72863,"src":"2888:32:135"},"referencedDeclaration":72863,"src":"2888:32:135","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"}],"src":"2649:296:135"},"returnParameters":{"id":81310,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81309,"mutability":"mutable","name":"poolId","nameLocation":"2970:6:135","nodeType":"VariableDeclaration","scope":81407,"src":"2962:14:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81308,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2961:16:135"},"scope":81614,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81445,"nodeType":"FunctionDefinition","src":"4078:543:135","nodes":[],"body":{"id":81444,"nodeType":"Block","src":"4365:256:135","nodes":[],"statements":[{"expression":{"arguments":[{"id":81431,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81410,"src":"4406:4:135","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},{"id":81432,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81412,"src":"4424:8:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81433,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81414,"src":"4446:17:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81434,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81417,"src":"4477:8:135","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},{"id":81435,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81419,"src":"4499:5:135","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":81436,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81422,"src":"4518:12:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},{"id":81437,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81425,"src":"4544:11:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},{"arguments":[{"hexValue":"30","id":81440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4602:1:135","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"}],"expression":{"id":81438,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"4569:14:135","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":81439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4584:17:135","memberName":"PointSystemConfig","nodeType":"MemberAccess","referencedDeclaration":72863,"src":"4569:32:135","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PointSystemConfig_$72863_storage_ptr_$","typeString":"type(struct StrategyStruct.PointSystemConfig storage pointer)"}},"id":81441,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:35:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},{"typeIdentifier":"t_struct$_PointSystemConfig_$72863_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}],"id":81430,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[81407,81445],"referencedDeclaration":81407,"src":"4382:10:135","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Allo_$1390_$_t_address_$_t_address_$_t_contract$_IRegistry_$2802_$_t_address_$_t_enum$_ProposalType_$72805_$_t_enum$_PointSystem_$72810_$_t_struct$_PointSystemConfig_$72863_memory_ptr_$returns$_t_uint256_$","typeString":"function (contract Allo,address,address,contract IRegistry,address,enum StrategyStruct.ProposalType,enum StrategyStruct.PointSystem,struct StrategyStruct.PointSystemConfig memory) returns (uint256)"}},"id":81442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:232:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81429,"id":81443,"nodeType":"Return","src":"4375:239:135"}]},"functionSelector":"d8c12dc2","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"4087:10:135","parameters":{"id":81426,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81410,"mutability":"mutable","name":"allo","nameLocation":"4112:4:135","nodeType":"VariableDeclaration","scope":81445,"src":"4107:9:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},"typeName":{"id":81409,"nodeType":"UserDefinedTypeName","pathNode":{"id":81408,"name":"Allo","nameLocations":["4107:4:135"],"nodeType":"IdentifierPath","referencedDeclaration":1390,"src":"4107:4:135"},"referencedDeclaration":1390,"src":"4107:4:135","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"visibility":"internal"},{"constant":false,"id":81412,"mutability":"mutable","name":"strategy","nameLocation":"4134:8:135","nodeType":"VariableDeclaration","scope":81445,"src":"4126:16:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81411,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81414,"mutability":"mutable","name":"registryCommunity","nameLocation":"4160:17:135","nodeType":"VariableDeclaration","scope":81445,"src":"4152:25:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81413,"name":"address","nodeType":"ElementaryTypeName","src":"4152:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81417,"mutability":"mutable","name":"registry","nameLocation":"4197:8:135","nodeType":"VariableDeclaration","scope":81445,"src":"4187:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":81416,"nodeType":"UserDefinedTypeName","pathNode":{"id":81415,"name":"IRegistry","nameLocations":["4187:9:135"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"4187:9:135"},"referencedDeclaration":2802,"src":"4187:9:135","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":81419,"mutability":"mutable","name":"token","nameLocation":"4223:5:135","nodeType":"VariableDeclaration","scope":81445,"src":"4215:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":81418,"name":"address","nodeType":"ElementaryTypeName","src":"4215:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":81422,"mutability":"mutable","name":"proposalType","nameLocation":"4266:12:135","nodeType":"VariableDeclaration","scope":81445,"src":"4238:40:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":81421,"nodeType":"UserDefinedTypeName","pathNode":{"id":81420,"name":"StrategyStruct.ProposalType","nameLocations":["4238:14:135","4253:12:135"],"nodeType":"IdentifierPath","referencedDeclaration":72805,"src":"4238:27:135"},"referencedDeclaration":72805,"src":"4238:27:135","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72805","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":81425,"mutability":"mutable","name":"pointSystem","nameLocation":"4315:11:135","nodeType":"VariableDeclaration","scope":81445,"src":"4288:38:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":81424,"nodeType":"UserDefinedTypeName","pathNode":{"id":81423,"name":"StrategyStruct.PointSystem","nameLocations":["4288:14:135","4303:11:135"],"nodeType":"IdentifierPath","referencedDeclaration":72810,"src":"4288:26:135"},"referencedDeclaration":72810,"src":"4288:26:135","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"4097:235:135"},"returnParameters":{"id":81429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81428,"mutability":"mutable","name":"poolId","nameLocation":"4357:6:135","nodeType":"VariableDeclaration","scope":81445,"src":"4349:14:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81427,"name":"uint256","nodeType":"ElementaryTypeName","src":"4349:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4348:16:135"},"scope":81614,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":81459,"nodeType":"FunctionDefinition","src":"4627:114:135","nodes":[],"body":{"id":81458,"nodeType":"Block","src":"4699:42:135","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81456,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81452,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81447,"src":"4716:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000_by_1","typeString":"int_const 100000000000"},"id":81455,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":81453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4726:2:135","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3131","id":81454,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4732:2:135","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"4726:8:135","typeDescriptions":{"typeIdentifier":"t_rational_100000000000_by_1","typeString":"int_const 100000000000"}},"src":"4716:18:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81451,"id":81457,"nodeType":"Return","src":"4709:25:135"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_etherToFloat","nameLocation":"4636:13:135","parameters":{"id":81448,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81447,"mutability":"mutable","name":"_amount","nameLocation":"4658:7:135","nodeType":"VariableDeclaration","scope":81459,"src":"4650:15:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81446,"name":"uint256","nodeType":"ElementaryTypeName","src":"4650:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4649:17:135"},"returnParameters":{"id":81451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81459,"src":"4690:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81449,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4689:9:135"},"scope":81614,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":81493,"nodeType":"FunctionDefinition","src":"4747:269:135","nodes":[],"body":{"id":81492,"nodeType":"Block","src":"4825:191:135","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81469,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81461,"src":"4843:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":81470,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"4849:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:13:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":81472,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4858:42:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":81468,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4835:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:66:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81474,"nodeType":"ExpressionStatement","src":"4835:66:135"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81476,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81463,"src":"4919:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81477,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"4924:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4919:12:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":81479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4933:30:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":81475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4911:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81480,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4911:53:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81481,"nodeType":"ExpressionStatement","src":"4911:53:135"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81487,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81482,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81461,"src":"4983:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81483,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81463,"src":"4988:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81485,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4982:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":81486,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81157,"src":"4994:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4982:19:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81488,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4981:21:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":81489,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5006:3:135","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"4981:28:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81467,"id":81491,"nodeType":"Return","src":"4974:35:135"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"4756:4:135","parameters":{"id":81464,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81461,"mutability":"mutable","name":"_a","nameLocation":"4769:2:135","nodeType":"VariableDeclaration","scope":81493,"src":"4761:10:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81460,"name":"uint256","nodeType":"ElementaryTypeName","src":"4761:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81463,"mutability":"mutable","name":"_b","nameLocation":"4781:2:135","nodeType":"VariableDeclaration","scope":81493,"src":"4773:10:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81462,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4760:24:135"},"returnParameters":{"id":81467,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81466,"mutability":"mutable","name":"_result","nameLocation":"4816:7:135","nodeType":"VariableDeclaration","scope":81493,"src":"4808:15:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81465,"name":"uint256","nodeType":"ElementaryTypeName","src":"4808:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:17:135"},"scope":81614,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":81557,"nodeType":"FunctionDefinition","src":"5022:447:135","nodes":[],"body":{"id":81556,"nodeType":"Block","src":"5100:369:135","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81503,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81495,"src":"5118:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":81504,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"5123:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5118:12:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":81506,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5132:30:135","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":81502,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5110:7:135","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":81507,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:53:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":81508,"nodeType":"ExpressionStatement","src":"5110:53:135"},{"assignments":[81510],"declarations":[{"constant":false,"id":81510,"mutability":"mutable","name":"a","nameLocation":"5181:1:135","nodeType":"VariableDeclaration","scope":81556,"src":"5173:9:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81509,"name":"uint256","nodeType":"ElementaryTypeName","src":"5173:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81512,"initialValue":{"id":81511,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81495,"src":"5185:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5173:14:135"},{"assignments":[81514],"declarations":[{"constant":false,"id":81514,"mutability":"mutable","name":"b","nameLocation":"5205:1:135","nodeType":"VariableDeclaration","scope":81556,"src":"5197:9:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81513,"name":"uint256","nodeType":"ElementaryTypeName","src":"5197:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81516,"initialValue":{"id":81515,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81497,"src":"5209:2:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5197:14:135"},{"expression":{"id":81519,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81517,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81500,"src":"5221:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":81518,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"5231:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5221:17:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81520,"nodeType":"ExpressionStatement","src":"5221:17:135"},{"body":{"id":81554,"nodeType":"Block","src":"5262:201:135","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81526,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81524,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81514,"src":"5280:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":81525,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5284:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5280:5:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":81527,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5289:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5280:10:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":81552,"nodeType":"Block","src":"5370:83:135","statements":[{"expression":{"id":81546,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81541,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81500,"src":"5388:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81543,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81500,"src":"5403:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81544,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81510,"src":"5412:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81542,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81493,"src":"5398:4:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":81545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5398:16:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5388:26:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81547,"nodeType":"ExpressionStatement","src":"5388:26:135"},{"expression":{"id":81550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81548,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81514,"src":"5432:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":81549,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5437:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5432:6:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81551,"nodeType":"ExpressionStatement","src":"5432:6:135"}]},"id":81553,"nodeType":"IfStatement","src":"5276:177:135","trueBody":{"id":81540,"nodeType":"Block","src":"5292:72:135","statements":[{"expression":{"id":81534,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81529,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81510,"src":"5310:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":81531,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81510,"src":"5319:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81532,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81510,"src":"5322:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81530,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81493,"src":"5314:4:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":81533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5314:10:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5310:14:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81535,"nodeType":"ExpressionStatement","src":"5310:14:135"},{"expression":{"id":81538,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":81536,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81514,"src":"5342:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":81537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5348:1:135","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5342:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":81539,"nodeType":"ExpressionStatement","src":"5342:7:135"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81523,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81521,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81514,"src":"5255:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":81522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5259:1:135","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5255:5:135","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":81555,"nodeType":"WhileStatement","src":"5248:215:135"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"5031:4:135","parameters":{"id":81498,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81495,"mutability":"mutable","name":"_a","nameLocation":"5044:2:135","nodeType":"VariableDeclaration","scope":81557,"src":"5036:10:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81494,"name":"uint256","nodeType":"ElementaryTypeName","src":"5036:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81497,"mutability":"mutable","name":"_b","nameLocation":"5056:2:135","nodeType":"VariableDeclaration","scope":81557,"src":"5048:10:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81496,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5035:24:135"},"returnParameters":{"id":81501,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81500,"mutability":"mutable","name":"_result","nameLocation":"5091:7:135","nodeType":"VariableDeclaration","scope":81557,"src":"5083:15:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81499,"name":"uint256","nodeType":"ElementaryTypeName","src":"5083:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5082:17:135"},"scope":81614,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":81613,"nodeType":"FunctionDefinition","src":"5475:378:135","nodes":[],"body":{"id":81612,"nodeType":"Block","src":"5638:215:135","nodes":[],"statements":[{"assignments":[81571],"declarations":[{"constant":false,"id":81571,"mutability":"mutable","name":"t","nameLocation":"5656:1:135","nodeType":"VariableDeclaration","scope":81612,"src":"5648:9:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81570,"name":"uint256","nodeType":"ElementaryTypeName","src":"5648:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81573,"initialValue":{"id":81572,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81559,"src":"5660:11:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5648:23:135"},{"assignments":[81575],"declarations":[{"constant":false,"id":81575,"mutability":"mutable","name":"atTWO_128","nameLocation":"5689:9:135","nodeType":"VariableDeclaration","scope":81612,"src":"5681:17:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81574,"name":"uint256","nodeType":"ElementaryTypeName","src":"5681:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":81585,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81577,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81565,"src":"5707:5:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":81578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5716:3:135","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5707:12:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81580,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5706:14:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":81581,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81167,"src":"5723:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5706:18:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":81583,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81571,"src":"5726:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":81576,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81557,"src":"5701:4:135","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":81584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:27:135","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5681:47:135"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81604,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81586,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81575,"src":"5748:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81587,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81561,"src":"5760:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5748:21:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81589,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5747:23:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81590,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81563,"src":"5774:10:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":81591,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81167,"src":"5787:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:14:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81593,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81162,"src":"5792:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81594,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81575,"src":"5802:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5792:19:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81596,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5791:21:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:38:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":81600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":81598,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81167,"src":"5816:1:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":81599,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81565,"src":"5820:5:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5816:9:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81601,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5815:11:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:52:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81603,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5773:54:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5747:80:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81605,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5746:82:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":81606,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":81157,"src":"5831:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:92:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":81608,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5745:94:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":81609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5843:3:135","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5745:101:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":81569,"id":81611,"nodeType":"Return","src":"5738:108:135"}]},"functionSelector":"e99ce911","implemented":true,"kind":"function","modifiers":[],"name":"_calculateConviction","nameLocation":"5484:20:135","parameters":{"id":81566,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81559,"mutability":"mutable","name":"_timePassed","nameLocation":"5513:11:135","nodeType":"VariableDeclaration","scope":81613,"src":"5505:19:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81558,"name":"uint256","nodeType":"ElementaryTypeName","src":"5505:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81561,"mutability":"mutable","name":"_lastConv","nameLocation":"5534:9:135","nodeType":"VariableDeclaration","scope":81613,"src":"5526:17:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81560,"name":"uint256","nodeType":"ElementaryTypeName","src":"5526:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81563,"mutability":"mutable","name":"_oldAmount","nameLocation":"5553:10:135","nodeType":"VariableDeclaration","scope":81613,"src":"5545:18:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81562,"name":"uint256","nodeType":"ElementaryTypeName","src":"5545:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":81565,"mutability":"mutable","name":"decay","nameLocation":"5573:5:135","nodeType":"VariableDeclaration","scope":81613,"src":"5565:13:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81564,"name":"uint256","nodeType":"ElementaryTypeName","src":"5565:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5504:75:135"},"returnParameters":{"id":81569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":81568,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":81613,"src":"5625:7:135","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":81567,"name":"uint256","nodeType":"ElementaryTypeName","src":"5625:7:135","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5624:9:135"},"scope":81614,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":81130,"name":"Native","nameLocations":["538:6:135"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"538:6:135"},"id":81131,"nodeType":"InheritanceSpecifier","src":"538:6:135"},{"baseName":{"id":81132,"name":"Accounts","nameLocations":["546:8:135"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"546:8:135"},"id":81133,"nodeType":"InheritanceSpecifier","src":"546:8:135"}],"canonicalName":"CVStrategyHelpers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[81614,5026,12138,11345,3106],"name":"CVStrategyHelpers","nameLocation":"517:17:135","scope":81615,"usedErrors":[]}],"license":"AGPL-3.0-or-later"},"id":135} \ No newline at end of file +{"abi":[{"type":"function","name":"DECIMALS","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PERCENTAGE_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"_calculateConviction","inputs":[{"name":"_timePassed","type":"uint256","internalType":"uint256"},{"name":"_lastConv","type":"uint256","internalType":"uint256"},{"name":"_oldAmount","type":"uint256","internalType":"uint256"},{"name":"decay","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"pure"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"allo","type":"address","internalType":"contract Allo"},{"name":"strategy","type":"address","internalType":"address"},{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"token","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"getParams","inputs":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]}],"outputs":[{"name":"params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]}],"stateMutability":"pure"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"metadata","inputs":[],"outputs":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_id1","inputs":[{"name":"registry","type":"address","internalType":"contract IRegistry"},{"name":"pool_admin","type":"address","internalType":"address"},{"name":"pool_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x60016080908152610120604052602e60c081815260a09162001e2d60e0399052805160099081556020820151600a906200003a9082620000f6565b5050503480156200004a57600080fd5b50620001c2565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200007c57607f821691505b6020821081036200009d57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620000f157600081815260208120601f850160051c81016020861015620000cc5750805b601f850160051c820191505b81811015620000ed57828155600101620000d8565b5050505b505050565b81516001600160401b0381111562000112576200011262000051565b6200012a8162000123845462000067565b84620000a3565b602080601f831160018114620001625760008415620001495750858301515b600019600386901b1c1916600185901b178555620000ed565b600085815260208120601f198616915b82811015620001935788860151825594840194600190910190840162000172565b5085821015620001b25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b611c5b80620001d26000396000f3fe608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea264697066735822122065451347e45081bc435016df327c9831c4b23ece0880d0eba744acf206642aaf64736f6c63430008130033516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","sourceMap":"608:1:137:-:0;508:5347;588:82;;;;508:5347;588:82;;;;;;;;;;;;;561:109;;;;;;;;;;;;;;;;:::i;:::-;;;;508:5347;;;;;;;;;;;;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:380;225:1;221:12;;;;268;;;289:61;;343:4;335:6;331:17;321:27;;289:61;396:2;388:6;385:14;365:18;362:38;359:161;;442:10;437:3;433:20;430:1;423:31;477:4;474:1;467:15;505:4;502:1;495:15;359:161;;146:380;;;:::o;657:545::-;759:2;754:3;751:11;748:448;;;795:1;820:5;816:2;809:17;865:4;861:2;851:19;935:2;923:10;919:19;916:1;912:27;906:4;902:38;971:4;959:10;956:20;953:47;;;-1:-1:-1;994:4:145;953:47;1049:2;1044:3;1040:12;1037:1;1033:20;1027:4;1023:31;1013:41;;1104:82;1122:2;1115:5;1112:13;1104:82;;;1167:17;;;1148:1;1137:13;1104:82;;;1108:3;;;748:448;657:545;;;:::o;1378:1352::-;1498:10;;-1:-1:-1;;;;;1520:30:145;;1517:56;;;1553:18;;:::i;:::-;1582:97;1672:6;1632:38;1664:4;1658:11;1632:38;:::i;:::-;1626:4;1582:97;:::i;:::-;1734:4;;1798:2;1787:14;;1815:1;1810:663;;;;2517:1;2534:6;2531:89;;;-1:-1:-1;2586:19:145;;;2580:26;2531:89;-1:-1:-1;;1335:1:145;1331:11;;;1327:24;1323:29;1313:40;1359:1;1355:11;;;1310:57;2633:81;;1780:944;;1810:663;604:1;597:14;;;641:4;628:18;;-1:-1:-1;;1846:20:145;;;1964:236;1978:7;1975:1;1972:14;1964:236;;;2067:19;;;2061:26;2046:42;;2159:27;;;;2127:1;2115:14;;;;1994:19;;1964:236;;;1968:3;2228:6;2219:7;2216:19;2213:201;;;2289:19;;;2283:26;-1:-1:-1;;2372:1:145;2368:14;;;2384:3;2364:24;2360:37;2356:42;2341:58;2326:74;;2213:201;-1:-1:-1;;;;;2460:1:145;2444:14;;;2440:22;2427:36;;-1:-1:-1;1378:1352:145:o;:::-;508:5347:137;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102ac5760003560e01c8063770b2e661161017b578063aa3744bd116100d8578063da4bf0871161008c578063e99ce91111610071578063e99ce91114610445578063ed62303a14610458578063ef0d790f1461046b57600080fd5b8063da4bf08714610435578063dac4eb161461043d57600080fd5b8063d1f2cd88116100bd578063d1f2cd8814610412578063d5bee9f51461041a578063d8c12dc21461042257600080fd5b8063aa3744bd14610402578063d1e82b581461040a57600080fd5b80638c7408c41161012f5780638e3c2493116101145780638e3c2493146103d7578063a0cf0aea146103df578063a407c67a146103fa57600080fd5b80638c7408c4146102ec5780638e0d1a50146103cf57600080fd5b80637b2edf32116101605780637b2edf32146103bf5780637cbe79ed146103c7578063829e423f146102ec57600080fd5b8063770b2e661461039757806379e62d0d146103b757600080fd5b8063392f37e91161022957806366d003ac116101dd57806370a32944116101c257806370a329441461038757806374d9284e146102ec578063759c9a861461038f57600080fd5b806366d003ac146103775780636a38dd0a1461037f57600080fd5b80634bf4ba211161020e5780634bf4ba2114610352578063587c1243146103675780635aff59991461036f57600080fd5b8063392f37e9146103335780633f26479e1461034957600080fd5b8063174eedde116102805780631e7bcb2e116102655780631e7bcb2e146102fb5780632e0f26251461030357806337d1c4041461032057600080fd5b8063174eedde146102ec5780631b96dce6146102f357600080fd5b8062b1fad7146102b1578063030e4006146102d65780630688b135146102de5780630f166ad4146102e6575b600080fd5b6102b9610473565b6040516001600160a01b0390911681526020015b60405180910390f35b6102b96104b8565b6102b96104f8565b306102b9565b60006102b9565b6102b9610538565b6102b9610578565b610312670de0b6b3a764000081565b6040519081526020016102cd565b61031261032e36600461147c565b6105b8565b61033b6106a2565b6040516102cd9291906115a5565b61031261271081565b61035a610739565b6040516102cd919061160a565b6102b961075c565b6102b961079c565b6102b96107dc565b6102b961081c565b61035a61085c565b6102b96108f4565b6103aa6103a5366004611687565b610934565b6040516102cd919061170a565b61035a610a0f565b6102b9610a77565b6102b9610ab7565b6102b9610af7565b6102b9610b37565b6102b973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61035a610b77565b6102b9610bdf565b6102b9610c1f565b6102b9610c5f565b6102b9610c9f565b6103126104303660046117b0565b610cdf565b6102b9610d0c565b6102b9610d4c565b610312610453366004611842565b610d8c565b610312610466366004611874565b610e26565b6102b9611029565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611065565b905090565b60006104b36040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611065565b600b54600090610697576040805180820182526001815281518083018352600c81527f506f6f6c50726f66696c6531000000000000000000000000000000000000000060208281019190915282015290517f3a92f65f0000000000000000000000000000000000000000000000000000000081526001600160a01b03861691633a92f65f916106509160029188908890600401611918565b6020604051808303816000875af115801561066f573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061069391906119a8565b600b555b50600b549392505050565b60098054600a80549192916106b6906119c1565b80601f01602080910402602001604051908101604052809291908181526020018280546106e2906119c1565b801561072f5780601f106107045761010080835404028352916020019161072f565b820191906000526020600020905b81548152906001019060200180831161071257829003601f168201915b5050505050905082565b604080516002808252606080830184529260208301908036833701905050905090565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611065565b60006104b36040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610889610578565b8160008151811061089c5761089c6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610a77565b816001815181106108d7576108d76119fb565b6001600160a01b0390921660209283029190910190910152919050565b60006104b36040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611065565b61093c611380565b61094d670de0a46bc207d800611077565b60208201526109636702c68af0bb140000611077565b604082015261097866038d7ea4c68000611077565b60608201526001600160a01b038516815260a0810184600281111561099f5761099f6116e0565b908160028111156109b2576109b26116e0565b90525060c081018360038111156109cb576109cb6116e0565b908160038111156109de576109de6116e0565b9052508151600003610a00576109fd670de0b6b3a764000060c8611a27565b82525b60e08101919091529392505050565b60408051600280825260608083018452926000929190602083019080368337019050509050610a3c610473565b81600081518110610a4f57610a4f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c461081c565b60006104b36040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611065565b60408051600280825260608083018452926000929190602083019080368337019050509050610ba461075c565b81600081518110610bb757610bb76119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250506108c4610b37565b60006104b36040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611065565b6000610d008888888888888860405180602001604052806000815250610e26565b98975050505050505050565b60006104b36040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611065565b60006104b36040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611065565b60008481610daa610da462989680608087901b611a3e565b8361108e565b905060806f80000000000000000000000000000000610dcc8662989680611a60565b610dda84600160801b611a60565b610de7629896808a611a27565b610df19190611a27565b610dfb9190611a3e565b610e058985611a27565b610e0f9190611a73565b610e199190611a73565b901c979650505050505050565b600080610e3588868686610934565b60408051600280825260608201835292935060009290916020830190803683370190505090503081600081518110610e6f57610e6f6119fb565b60200260200101906001600160a01b031690816001600160a01b0316815250503381600181518110610ea357610ea36119fb565b6001600160a01b03928316602091820292909201015273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee90881615610ed95750865b8b6001600160a01b031663e1007d4a610efa8b610ef4610af7565b866105b8565b8d86604051602001610f0c919061170a565b6040516020818303038152906040528560006009896040518863ffffffff1660e01b8152600401610f439796959493929190611a86565b6020604051808303816000875af1158015610f62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f8691906119a8565b9350866002811115610f9a57610f9a6116e0565b8b6001600160a01b031663351d9f966040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fd8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ffc9190611b97565b600281111561100d5761100d6116e0565b1461101a5761101a611bb4565b50505098975050505050505050565b60006104b36040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006110708261113c565b5092915050565b600061108864174876e80083611a3e565b92915050565b6000600160801b83106110e85760405162461bcd60e51b815260206004820152601c60248201527f5f612073686f756c64206265206c657373207468616e20325e3132380000000060448201526064015b60405180910390fd5b50600160801b82825b801561113457806001166000036111165761110c8283611281565b915060011c6110f1565b6111208383611281565b925061112d600182611a60565b90506110f1565b505092915050565b600080826040516020016111509190611bca565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156111d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111f59190611be6565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061124a9085908790600401611c03565b600060405180830381600087803b15801561126457600080fd5b505af1158015611278573d6000803e3d6000fd5b50505050915091565b6000600160801b8311156112fd5760405162461bcd60e51b815260206004820152602860248201527f5f612073686f756c64206265206c657373207468616e206f7220657175616c2060448201527f746f20325e31323800000000000000000000000000000000000000000000000060648201526084016110df565b600160801b82106113505760405162461bcd60e51b815260206004820152601c60248201527f5f622073686f756c64206265206c657373207468616e20325e3132380000000060448201526064016110df565b60806f8000000000000000000000000000000061136d8486611a27565b6113779190611a73565b901c9392505050565b60405180610120016040528060006001600160a01b0316815260200160008152602001600081526020016000815260200160008152602001600060028111156113cb576113cb6116e0565b8152602001600081526020016113ed6040518060200160405280600081525090565b8152602001611418604051806040016040528060006001600160a01b03168152602001600081525090565b905290565b6001600160a01b038116811461143257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561147457611474611435565b604052919050565b60008060006060848603121561149157600080fd5b833561149c8161141d565b92506020848101356114ad8161141d565b9250604085013567ffffffffffffffff808211156114ca57600080fd5b818701915087601f8301126114de57600080fd5b8135818111156114f0576114f0611435565b8060051b915061150184830161144b565b818152918301840191848101908a84111561151b57600080fd5b938501935b8385101561154557843592506115358361141d565b8282529385019390850190611520565b8096505050505050509250925092565b60005b83811015611570578181015183820152602001611558565b50506000910152565b60008151808452611591816020860160208601611555565b601f01601f19169290920160200192915050565b8281526040602082015260006115be6040830184611579565b949350505050565b600081518084526020808501945080840160005b838110156115ff5781516001600160a01b0316875295820195908201906001016115da565b509495945050505050565b60208152600061161d60208301846115c6565b9392505050565b6003811061143257600080fd5b80356004811061164057600080fd5b919050565b60006020828403121561165757600080fd5b6040516020810181811067ffffffffffffffff8211171561167a5761167a611435565b6040529135825250919050565b6000806000806080858703121561169d57600080fd5b84356116a88161141d565b935060208501356116b881611624565b92506116c660408601611631565b91506116d58660608701611645565b905092959194509250565b634e487b7160e01b600052602160045260246000fd5b60048110611706576117066116e0565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061175d5761175d6116e0565b8060a08401525060c083015161177660c08401826116f6565b5060e083015161178960e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152611134565b600080600080600080600060e0888a0312156117cb57600080fd5b87356117d68161141d565b965060208801356117e68161141d565b955060408801356117f68161141d565b945060608801356118068161141d565b935060808801356118168161141d565b925060a088013561182681611624565b915061183460c08901611631565b905092959891949750929550565b6000806000806080858703121561185857600080fd5b5050823594602084013594506040840135936060013592509050565b600080600080600080600080610100898b03121561189157600080fd5b883561189c8161141d565b975060208901356118ac8161141d565b965060408901356118bc8161141d565b955060608901356118cc8161141d565b945060808901356118dc8161141d565b935060a08901356118ec81611624565b92506118fa60c08a01611631565b91506119098a60e08b01611645565b90509295985092959890939650565b84815260a06020820152600e60a08201527f506f6f6c2050726f66696c65203100000000000000000000000000000000000060c082015260e06040820152835160e082015260006020850151604061010084015261197a610120840182611579565b90506001600160a01b0385166060840152828103608084015261199d81856115c6565b979650505050505050565b6000602082840312156119ba57600080fd5b5051919050565b600181811c908216806119d557607f821691505b6020821081036119f557634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761108857611088611a11565b600082611a5b57634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561108857611088611a11565b8082018082111561108857611088611a11565b878152600060206001600160a01b03808a168285015260e06040850152611ab060e085018a611579565b818916606086015287608086015284810360a08601528654815260019150818701604084830152600081548181861c905085821680611af057607f821691505b8782108103611b0d57634e487b7160e01b84526022600452602484fd5b60408601829052606086019550808015611b2e5760018114611b4457611b6f565b60ff198416875282151560051b87019450611b6f565b60008681526020902060005b84811015611b6957815489820152908901908a01611b50565b88019550505b5050505086810360c0880152611b8581896115c6565b9e9d5050505050505050505050505050565b600060208284031215611ba957600080fd5b815161161d81611624565b634e487b7160e01b600052600160045260246000fd5b60008251611bdc818460208701611555565b9190910192915050565b600060208284031215611bf857600080fd5b815161161d8161141d565b6001600160a01b03831681526040602082015260006115be604083018461157956fea264697066735822122065451347e45081bc435016df327c9831c4b23ece0880d0eba744acf206642aaf64736f6c63430008130033","sourceMap":"508:5347:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:145;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;699:43:137:-;;734:8;699:43;;;;;391:25:145;;;379:2;364:18;699:43:137;245:177:145;1093:437:137;;;;;;:::i;:::-;;:::i;561:109::-;;;:::i;:::-;;;;;;;;:::i;748:50::-;;791:7;748:50;;1331:118:15;;;:::i;:::-;;;;;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;1876:107::-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1536:1088:137:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;1989:232:15:-;;;:::i;2673:113::-;;;:::i;439:101::-;;;:::i;1537:::-;;;:::i;3485:113::-;;;:::i;4412:75:9:-;;4445:42;4412:75;;3604:241:15;;;:::i;3938:101::-;;;:::i;1644:113::-;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;4078:543:137:-;;;;;;:::i;:::-;;:::i;546:124:15:-;;;:::i;324:109::-;;;:::i;5475:378:137:-;;;;;;:::i;:::-;;:::i;2630:1442::-;;;;;;:::i;:::-;;:::i;3241:119:15:-;;;:::i;1763:107::-;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;1093:437:137:-;1265:16;;1238:7;;1261:230;;1391:48;;;;;;;;1411:1;1391:48;;;;;;;;;;;;;;;;;;;;;;;;1330:150;;;;;-1:-1:-1;;;;;1330:22:137;;;;;:150;;1370:1;;1441:10;;1453:13;;1330:150;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;1311:16;:169;1261:230;-1:-1:-1;1507:16:137;;1093:437;;;;;:::o;561:109::-;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;1876:107::-;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1536:1088:137:-;1776:45;;:::i;:::-;1899:30;1913:15;1899:13;:30::i;:::-;1884:12;;;:45;2046:24;2060:9;2046:13;:24::i;:::-;2028:15;;;:42;2115:26;2129:11;2115:13;:26::i;:::-;2099:13;;;:42;-1:-1:-1;;;;;2238:44:137;;;;2292:19;;;2314:12;2292:34;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2336:18:137;;;2357:11;2336:32;;;;;;;;:::i;:::-;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;2383:21:137;;;:26;2379:197;;2551:14;734:8;2551:3;:14;:::i;:::-;2527:38;;2379:197;2585:18;;;:32;;;;:6;1536:1088;-1:-1:-1;;;1536:1088:137:o;1989:232:15:-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;1537:101::-;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3604:241::-;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;1644:113::-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;4078:543:137:-;4349:14;4382:232;4406:4;4424:8;4446:17;4477:8;4499:5;4518:12;4544:11;4569:35;;;;;;;;4602:1;4569:35;;;4382:10;:232::i;:::-;4375:239;4078:543;-1:-1:-1;;;;;;;;4078:543:137:o;546:124:15:-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;5475:378:137:-;5625:7;5660:11;5625:7;5701:27;5706:18;975:7;5716:3;5707:12;;;5706:18;:::i;:::-;5726:1;5701:4;:27::i;:::-;5681:47;-1:-1:-1;5843:3:137;881:8;5816:9;5820:5;975:7;5816:9;:::i;:::-;5792:19;5802:9;-1:-1:-1;;;5792:19:137;:::i;:::-;5774:14;975:7;5774:10;:14;:::i;:::-;:38;;;;:::i;:::-;:52;;;;:::i;:::-;5748:21;5760:9;5748;:21;:::i;:::-;5747:80;;;;:::i;:::-;5746:92;;;;:::i;:::-;5745:101;;;5475:378;-1:-1:-1;;;;;;;5475:378:137:o;2630:1442::-;2962:14;3039:45;3099:68;3109:17;3128:12;3142:11;3155;3099:9;:68::i;:::-;3212:16;;;3226:1;3212:16;;;;;;;;3039:128;;-1:-1:-1;3178:31:137;;3212:16;;;;;;;;;;;;-1:-1:-1;3212:16:137;3178:50;;3266:4;3238:14;3253:1;3238:17;;;;;;;;:::i;:::-;;;;;;:33;-1:-1:-1;;;;;3238:33:137;;;-1:-1:-1;;;;;3238:33:137;;;;;3309:10;3281:14;3296:1;3281:17;;;;;;;;:::i;:::-;-1:-1:-1;;;;;3281:39:137;;;:17;;;;;;;;;:39;4445:42:9;;3607:19:137;;;3603:64;;-1:-1:-1;3651:5:137;3603:64;3685:4;-1:-1:-1;;;;;3685:33:137;;3773:55;3789:8;3799:12;:10;:12::i;:::-;3813:14;3773:15;:55::i;:::-;3850:8;3884:6;3873:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;3905:6;3925:1;3940:8;3962:14;3685:301;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3676:310;;4052:12;4004:60;;;;;;;;:::i;:::-;4023:8;-1:-1:-1;;;;;4004:42:137;;:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:60;;;;;;;;:::i;:::-;;3997:68;;;;:::i;:::-;2978:1094;;;2630:1442;;;;;;;;;;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;4627:114:137:-;4690:7;4716:18;4726:8;4716:7;:18;:::i;:::-;4709:25;4627:114;-1:-1:-1;;4627:114:137:o;5022:447::-;5083:15;-1:-1:-1;;;5118:2:137;:12;5110:53;;;;-1:-1:-1;;;5110:53:137;;16523:2:145;5110:53:137;;;16505:21:145;16562:2;16542:18;;;16535:30;16601;16581:18;;;16574:58;16649:18;;5110:53:137;;;;;;;;;-1:-1:-1;;;;5185:2:137;5209;5248:215;5255:5;;5248:215;;5280:1;5284;5280:5;5289:1;5280:10;5276:177;;5314:10;5319:1;5322;5314:4;:10::i;:::-;5310:14;-1:-1:-1;5348:1:137;5342:7;5248:215;;5276:177;5398:16;5403:7;5412:1;5398:4;:16::i;:::-;5388:26;-1:-1:-1;5432:6:137;5437:1;5432:6;;:::i;:::-;;;5248:215;;;5100:369;;5022:447;;;;:::o;20158:242:24:-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:145;;;20293:33:24;-1:-1:-1;20344:7:24;;;;364:18:145;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;4747:269:137:-;4808:15;-1:-1:-1;;;4843:2:137;:13;;4835:66;;;;-1:-1:-1;;;4835:66:137;;17786:2:145;4835:66:137;;;17768:21:145;17825:2;17805:18;;;17798:30;17864:34;17844:18;;;17837:62;17935:10;17915:18;;;17908:38;17963:19;;4835:66:137;17584:404:145;4835:66:137;-1:-1:-1;;;4919:2:137;:12;4911:53;;;;-1:-1:-1;;;4911:53:137;;18195:2:145;4911:53:137;;;18177:21:145;18234:2;18214:18;;;18207:30;18273;18253:18;;;18246:58;18321:18;;4911:53:137;17993:352:145;4911:53:137;5006:3;881:8;4983:7;4988:2;4983;:7;:::i;:::-;4982:19;;;;:::i;:::-;4981:28;;;4747:269;-1:-1:-1;;;4747:269:137:o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;427:165:145:-;-1:-1:-1;;;;;517:5:145;513:54;506:5;503:65;493:93;;582:1;579;572:12;493:93;427:165;:::o;597:184::-;-1:-1:-1;;;646:1:145;639:88;746:4;743:1;736:15;770:4;767:1;760:15;786:275;857:2;851:9;922:2;903:13;;-1:-1:-1;;899:27:145;887:40;;957:18;942:34;;978:22;;;939:62;936:88;;;1004:18;;:::i;:::-;1040:2;1033:22;786:275;;-1:-1:-1;786:275:145:o;1066:1354::-;1186:6;1194;1202;1255:2;1243:9;1234:7;1230:23;1226:32;1223:52;;;1271:1;1268;1261:12;1223:52;1310:9;1297:23;1329:42;1365:5;1329:42;:::i;:::-;1390:5;-1:-1:-1;1414:2:145;1453:18;;;1440:32;1481:44;1440:32;1481:44;:::i;:::-;1544:7;-1:-1:-1;1602:2:145;1587:18;;1574:32;1625:18;1655:14;;;1652:34;;;1682:1;1679;1672:12;1652:34;1720:6;1709:9;1705:22;1695:32;;1765:7;1758:4;1754:2;1750:13;1746:27;1736:55;;1787:1;1784;1777:12;1736:55;1823:2;1810:16;1845:2;1841;1838:10;1835:36;;;1851:18;;:::i;:::-;1897:2;1894:1;1890:10;1880:20;;1920:28;1944:2;1940;1936:11;1920:28;:::i;:::-;1982:15;;;2052:11;;;2048:20;;;2013:12;;;;2080:19;;;2077:39;;;2112:1;2109;2102:12;2077:39;2136:11;;;;2156:234;2172:6;2167:3;2164:15;2156:234;;;2254:3;2241:17;2226:32;;2271:44;2307:7;2271:44;:::i;:::-;2328:20;;;2189:12;;;;2368;;;;2156:234;;;2409:5;2399:15;;;;;;;;1066:1354;;;;;:::o;2762:250::-;2847:1;2857:113;2871:6;2868:1;2865:13;2857:113;;;2947:11;;;2941:18;2928:11;;;2921:39;2893:2;2886:10;2857:113;;;-1:-1:-1;;3004:1:145;2986:16;;2979:27;2762:250::o;3017:271::-;3059:3;3097:5;3091:12;3124:6;3119:3;3112:19;3140:76;3209:6;3202:4;3197:3;3193:14;3186:4;3179:5;3175:16;3140:76;:::i;:::-;3270:2;3249:15;-1:-1:-1;;3245:29:145;3236:39;;;;3277:4;3232:50;;3017:271;-1:-1:-1;;3017:271:145:o;3293:291::-;3470:6;3459:9;3452:25;3513:2;3508;3497:9;3493:18;3486:30;3433:4;3533:45;3574:2;3563:9;3559:18;3551:6;3533:45;:::i;:::-;3525:53;3293:291;-1:-1:-1;;;;3293:291:145:o;3589:484::-;3642:3;3680:5;3674:12;3707:6;3702:3;3695:19;3733:4;3762:2;3757:3;3753:12;3746:19;;3799:2;3792:5;3788:14;3820:1;3830:218;3844:6;3841:1;3838:13;3830:218;;;3909:13;;-1:-1:-1;;;;;3905:62:145;3893:75;;3988:12;;;;4023:15;;;;3866:1;3859:9;3830:218;;;-1:-1:-1;4064:3:145;;3589:484;-1:-1:-1;;;;;3589:484:145:o;4078:261::-;4257:2;4246:9;4239:21;4220:4;4277:56;4329:2;4318:9;4314:18;4306:6;4277:56;:::i;:::-;4269:64;4078:261;-1:-1:-1;;;4078:261:145:o;4344:111::-;4429:1;4422:5;4419:12;4409:40;;4445:1;4442;4435:12;4460:152;4537:20;;4586:1;4576:12;;4566:40;;4602:1;4599;4592:12;4566:40;4460:152;;;:::o;4617:416::-;4681:5;4729:4;4717:9;4712:3;4708:19;4704:30;4701:50;;;4747:1;4744;4737:12;4701:50;4780:2;4774:9;4822:4;4814:6;4810:17;4893:6;4881:10;4878:22;4857:18;4845:10;4842:34;4839:62;4836:88;;;4904:18;;:::i;:::-;4940:2;4933:22;5003:23;;4988:39;;-1:-1:-1;4973:6:145;4617:416;-1:-1:-1;4617:416:145:o;5038:664::-;5195:6;5203;5211;5219;5272:3;5260:9;5251:7;5247:23;5243:33;5240:53;;;5289:1;5286;5279:12;5240:53;5328:9;5315:23;5347:42;5383:5;5347:42;:::i;:::-;5408:5;-1:-1:-1;5465:2:145;5450:18;;5437:32;5478:43;5437:32;5478:43;:::i;:::-;5540:7;-1:-1:-1;5566:47:145;5609:2;5594:18;;5566:47;:::i;:::-;5556:57;;5632:64;5688:7;5683:2;5672:9;5668:18;5632:64;:::i;:::-;5622:74;;5038:664;;;;;;;:::o;5707:184::-;-1:-1:-1;;;5756:1:145;5749:88;5856:4;5853:1;5846:15;5880:4;5877:1;5870:15;5896:142;5979:1;5972:5;5969:12;5959:46;;5985:18;;:::i;:::-;6014;;5896:142::o;6344:1140::-;6506:4;6548:3;6537:9;6533:19;6525:27;;-1:-1:-1;;;;;6589:6:145;6583:13;6579:62;6568:9;6561:81;6698:4;6690:6;6686:17;6680:24;6673:4;6662:9;6658:20;6651:54;6761:4;6753:6;6749:17;6743:24;6736:4;6725:9;6721:20;6714:54;6824:4;6816:6;6812:17;6806:24;6799:4;6788:9;6784:20;6777:54;6887:4;6879:6;6875:17;6869:24;6862:4;6851:9;6847:20;6840:54;6941:4;6933:6;6929:17;6923:24;6983:1;6969:12;6966:19;6956:53;;6989:18;;:::i;:::-;7047:12;7040:4;7029:9;7025:20;7018:42;;7109:4;7101:6;7097:17;7091:24;7124:65;7183:4;7172:9;7168:20;7152:14;7124:65;:::i;:::-;;7238:4;7230:6;7226:17;7220:24;7253:73;7320:4;7309:9;7305:20;7289:14;6118:12;6106:25;;6043:90;7253:73;-1:-1:-1;7345:6:145;7388:15;;;7382:22;6219:12;;-1:-1:-1;;;;;6215:61:145;7459:18;;;6203:74;6326:4;6315:16;;6309:23;6293:14;;;6286:47;7413:65;6138:201;7489:1170;7668:6;7676;7684;7692;7700;7708;7716;7769:3;7757:9;7748:7;7744:23;7740:33;7737:53;;;7786:1;7783;7776:12;7737:53;7825:9;7812:23;7844:42;7880:5;7844:42;:::i;:::-;7905:5;-1:-1:-1;7962:2:145;7947:18;;7934:32;7975:44;7934:32;7975:44;:::i;:::-;8038:7;-1:-1:-1;8097:2:145;8082:18;;8069:32;8110:44;8069:32;8110:44;:::i;:::-;8173:7;-1:-1:-1;8232:2:145;8217:18;;8204:32;8245:44;8204:32;8245:44;:::i;:::-;8308:7;-1:-1:-1;8367:3:145;8352:19;;8339:33;8381:44;8339:33;8381:44;:::i;:::-;8444:7;-1:-1:-1;8503:3:145;8488:19;;8475:33;8517:43;8475:33;8517:43;:::i;:::-;8579:7;-1:-1:-1;8605:48:145;8648:3;8633:19;;8605:48;:::i;:::-;8595:58;;7489:1170;;;;;;;;;;:::o;8911:385::-;8997:6;9005;9013;9021;9074:3;9062:9;9053:7;9049:23;9045:33;9042:53;;;9091:1;9088;9081:12;9042:53;-1:-1:-1;;9114:23:145;;;9184:2;9169:18;;9156:32;;-1:-1:-1;9235:2:145;9220:18;;9207:32;;9286:2;9271:18;9258:32;;-1:-1:-1;8911:385:145;-1:-1:-1;8911:385:145:o;9301:1307::-;9525:6;9533;9541;9549;9557;9565;9573;9581;9634:3;9622:9;9613:7;9609:23;9605:33;9602:53;;;9651:1;9648;9641:12;9602:53;9690:9;9677:23;9709:42;9745:5;9709:42;:::i;:::-;9770:5;-1:-1:-1;9827:2:145;9812:18;;9799:32;9840:44;9799:32;9840:44;:::i;:::-;9903:7;-1:-1:-1;9962:2:145;9947:18;;9934:32;9975:44;9934:32;9975:44;:::i;:::-;10038:7;-1:-1:-1;10097:2:145;10082:18;;10069:32;10110:44;10069:32;10110:44;:::i;:::-;10173:7;-1:-1:-1;10232:3:145;10217:19;;10204:33;10246:44;10204:33;10246:44;:::i;:::-;10309:7;-1:-1:-1;10368:3:145;10353:19;;10340:33;10382:43;10340:33;10382:43;:::i;:::-;10444:7;-1:-1:-1;10470:48:145;10513:3;10498:19;;10470:48;:::i;:::-;10460:58;;10537:65;10594:7;10588:3;10577:9;10573:19;10537:65;:::i;:::-;10527:75;;9301:1307;;;;;;;;;;;:::o;10613:1032::-;11037:6;11026:9;11019:25;11080:3;11075:2;11064:9;11060:18;11053:31;11121:2;11115:3;11104:9;11100:19;11093:31;11161:16;11155:3;11144:9;11140:19;11133:45;11214:3;11209:2;11198:9;11194:18;11187:31;11261:6;11255:13;11249:3;11238:9;11234:19;11227:42;11000:4;11316:2;11308:6;11304:15;11298:22;11357:2;11351:3;11340:9;11336:19;11329:31;11380:52;11427:3;11416:9;11412:19;11398:12;11380:52;:::i;:::-;11369:63;;-1:-1:-1;;;;;11472:6:145;11468:55;11463:2;11452:9;11448:18;11441:83;11570:9;11565:3;11561:19;11555:3;11544:9;11540:19;11533:48;11598:41;11635:3;11627:6;11598:41;:::i;:::-;11590:49;10613:1032;-1:-1:-1;;;;;;;10613:1032:145:o;11650:184::-;11720:6;11773:2;11761:9;11752:7;11748:23;11744:32;11741:52;;;11789:1;11786;11779:12;11741:52;-1:-1:-1;11812:16:145;;11650:184;-1:-1:-1;11650:184:145:o;11839:437::-;11918:1;11914:12;;;;11961;;;11982:61;;12036:4;12028:6;12024:17;12014:27;;11982:61;12089:2;12081:6;12078:14;12058:18;12055:38;12052:218;;-1:-1:-1;;;12123:1:145;12116:88;12227:4;12224:1;12217:15;12255:4;12252:1;12245:15;12052:218;;11839:437;;;:::o;12281:184::-;-1:-1:-1;;;12330:1:145;12323:88;12430:4;12427:1;12420:15;12454:4;12451:1;12444:15;12470:184;-1:-1:-1;;;12519:1:145;12512:88;12619:4;12616:1;12609:15;12643:4;12640:1;12633:15;12659:168;12732:9;;;12763;;12780:15;;;12774:22;;12760:37;12750:71;;12801:18;;:::i;12832:274::-;12872:1;12898;12888:189;;-1:-1:-1;;;12930:1:145;12923:88;13034:4;13031:1;13024:15;13062:4;13059:1;13052:15;12888:189;-1:-1:-1;13091:9:145;;12832:274::o;13111:128::-;13178:9;;;13199:11;;;13196:37;;;13213:18;;:::i;13244:125::-;13309:9;;;13330:10;;;13327:36;;;13343:18;;:::i;13500:2154::-;13922:6;13911:9;13904:25;13885:4;13948:2;-1:-1:-1;;;;;14059:2:145;14051:6;14047:15;14042:2;14031:9;14027:18;14020:43;14099:3;14094:2;14083:9;14079:18;14072:31;14126:46;14167:3;14156:9;14152:19;14144:6;14126:46;:::i;:::-;14220:2;14212:6;14208:15;14203:2;14192:9;14188:18;14181:43;14261:6;14255:3;14244:9;14240:19;14233:35;14317:9;14309:6;14305:22;14299:3;14288:9;14284:19;14277:51;14358:6;14352:13;14344:6;14337:29;14385:4;14375:14;;14430:2;14422:6;14418:15;14466:2;14461;14453:6;14449:15;14442:27;14489:1;14522:12;14516:19;14558:3;14588:9;14584:2;14580:18;14570:28;;14648:2;14637:9;14633:18;14670;14660:61;;14714:4;14706:6;14702:17;14692:27;;14660:61;14767:2;14759:6;14756:14;14736:18;14733:38;14730:222;;-1:-1:-1;;;14801:3:145;14794:90;14907:4;14904:1;14897:15;14937:4;14932:3;14925:17;14730:222;15020:2;15008:15;;2694:19;;;2737:14;;;14961:71;-1:-1:-1;15048:18:145;15075:128;;;;15217:1;15212:321;;;;15041:492;;15075:128;-1:-1:-1;;15108:24:145;;15096:37;;15176:14;;15169:22;15166:1;15162:30;15153:40;;;-1:-1:-1;15075:128:145;;15212:321;13447:1;13440:14;;;13484:4;13471:18;;15313:1;15327:165;15341:6;15338:1;15335:13;15327:165;;;15419:14;;15406:11;;;15399:35;15462:16;;;;15356:10;;15327:165;;;15512:11;;;-1:-1:-1;;15041:492:145;;;;;15579:9;15574:3;15570:19;15564:3;15553:9;15549:19;15542:48;15607:41;15644:3;15636:6;15607:41;:::i;:::-;15599:49;13500:2154;-1:-1:-1;;;;;;;;;;;;;;13500:2154:145:o;15848:279::-;15936:6;15989:2;15977:9;15968:7;15964:23;15960:32;15957:52;;;16005:1;16002;15995:12;15957:52;16037:9;16031:16;16056:41;16091:5;16056:41;:::i;16132:184::-;-1:-1:-1;;;16181:1:145;16174:88;16281:4;16278:1;16271:15;16305:4;16302:1;16295:15;16678:289;16809:3;16847:6;16841:13;16863:66;16922:6;16917:3;16910:4;16902:6;16898:17;16863:66;:::i;:::-;16945:16;;;;;16678:289;-1:-1:-1;;16678:289:145:o;16972:262::-;17042:6;17095:2;17083:9;17074:7;17070:23;17066:32;17063:52;;;17111:1;17108;17101:12;17063:52;17143:9;17137:16;17162:42;17198:5;17162:42;:::i;17239:340::-;-1:-1:-1;;;;;17420:6:145;17416:55;17405:9;17398:74;17508:2;17503;17492:9;17488:18;17481:30;17379:4;17528:45;17569:2;17558:9;17554:18;17546:6;17528:45;:::i","linkReferences":{}},"methodIdentifiers":{"DECIMALS()":"2e0f2625","NATIVE()":"a0cf0aea","PERCENTAGE_SCALE()":"3f26479e","_calculateConviction(uint256,uint256,uint256,uint256)":"e99ce911","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","createPool(address,address,address,address,address,uint8,uint8)":"d8c12dc2","createPool(address,address,address,address,address,uint8,uint8,(uint256))":"ed62303a","getParams(address,uint8,uint8,(uint256))":"770b2e66","local()":"0f166ad4","metadata()":"392f37e9","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_id1(address,address,address[])":"37d1c404","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry_owner()":"dac4eb16"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DECIMALS\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERCENTAGE_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_timePassed\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_lastConv\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_oldAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"}],\"name\":\"_calculateConviction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract Allo\",\"name\":\"allo\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"}],\"name\":\"getParams\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"metadata\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"registry\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"pool_admin\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"pool_managers\",\"type\":\"address[]\"}],\"name\":\"poolProfile_id1\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"NATIVE()\":{\"notice\":\"Address of the native token\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/CVStrategyHelpers.sol\":\"CVStrategyHelpers\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Allo.sol\":{\"keccak256\":\"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c\",\"dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd\"]},\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/auth/Ownable.sol\":{\"keccak256\":\"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30\",\"dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol\":{\"keccak256\":\"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f\",\"dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/test/CVStrategyHelpers.sol\":{\"keccak256\":\"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc\",\"dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DECIMALS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PERCENTAGE_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_timePassed","type":"uint256"},{"internalType":"uint256","name":"_lastConv","type":"uint256"},{"internalType":"uint256","name":"_oldAmount","type":"uint256"},{"internalType":"uint256","name":"decay","type":"uint256"}],"stateMutability":"pure","type":"function","name":"_calculateConviction","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"contract Allo","name":"allo","type":"address"},{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]}],"stateMutability":"pure","type":"function","name":"getParams","outputs":[{"internalType":"struct StrategyStruct.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"metadata","outputs":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"contract IRegistry","name":"registry","type":"address"},{"internalType":"address","name":"pool_admin","type":"address"},{"internalType":"address[]","name":"pool_managers","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"poolProfile_id1","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{"NATIVE()":{"notice":"Address of the native token"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/CVStrategyHelpers.sol":"CVStrategyHelpers"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Allo.sol":{"keccak256":"0x6eadd7d37d010ad736e5b9fd25bd2083e430757d72b5873357cd7ee41d7fc21a","urls":["bzz-raw://add326fecd1aac73bf91e634a9b11ab9a19b99a73616e44d5c79261bfbfb3a7c","dweb:/ipfs/QmTF7WYUpSTF6EPWtB6CW9BPJAjWeZDtNjWGME4VHrarZd"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/auth/Ownable.sol":{"keccak256":"0xd916b6ca098f26e08eff367c6fc1853956839d8d1c9d2df715784b6dec99889b","urls":["bzz-raw://7a9d8137ec1f5fb4210fbebeafa002f5b9cab28579445bd8281c56862e63aa30","dweb:/ipfs/QmPLBcT1JkBKa4jK6qNficwZx2uGG4MetPNErJArdX6G61"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC20/IERC20Upgradeable.sol":{"keccak256":"0x0e1f0f5f62f67a881cd1a9597acbc0a5e4071f3c2c10449a183b922ae7272e3f","urls":["bzz-raw://c25f742ff154998d19a669e2508c3597b363e123ce9144cd0fcf6521229f401f","dweb:/ipfs/QmQXRuFzStEWqeEPbhQU6cAg9PaSowxJVo4PDKyRod7dco"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/test/CVStrategyHelpers.sol":{"keccak256":"0xfcc390c70622db9346166a485f9bb93b1ff84ad531791177a6a23295649c3e24","urls":["bzz-raw://b3c3bde815da0a72a764836b1237aee87cdb225e1762845a3fc85391c52bc0fc","dweb:/ipfs/QmRnav8sgfUvu6njHS4A4vrjDuxdYiz4Z4nWboj68BPEt3"],"license":"AGPL-3.0-or-later"}},"version":1},"storageLayout":{"storage":[{"astId":9317,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"gasMeteringOff","offset":0,"slot":"0","type":"t_bool"},{"astId":11354,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"stdstore","offset":0,"slot":"1","type":"t_struct(StdStorage)13235_storage"},{"astId":83139,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"metadata","offset":0,"slot":"9","type":"t_struct(Metadata)3098_storage"},{"astId":83151,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_poolProfileId1_","offset":0,"slot":"11","type":"t_bytes32"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"pkg/contracts/test/CVStrategyHelpers.sol:CVStrategyHelpers","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/test/CVStrategyHelpers.sol","id":83614,"exportedSymbols":{"Accounts":[5026],"Allo":[1390],"CVStrategy":[75561],"CVStrategyHelpers":[83613],"IRegistry":[2802],"Metadata":[3098],"Native":[3106],"StrategyStruct":[72884],"console":[29549]},"nodeType":"SourceUnit","src":"46:5810:137","nodes":[{"id":83114,"nodeType":"PragmaDirective","src":"46:24:137","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":83115,"nodeType":"ImportDirective","src":"72:31:137","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":83117,"nodeType":"ImportDirective","src":"104:53:137","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Allo.sol","file":"allo-v2-contracts/core/Allo.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":1391,"symbolAliases":[{"foreign":{"id":83116,"name":"Allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1390,"src":"112:4:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83119,"nodeType":"ImportDirective","src":"158:71:137","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"allo-v2-contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":83118,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"166:8:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83122,"nodeType":"ImportDirective","src":"230:65:137","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"../src/CVStrategy.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":75562,"symbolAliases":[{"foreign":{"id":83120,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"238:10:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":83121,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"250:14:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83124,"nodeType":"ImportDirective","src":"296:67:137","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"allo-v2-contracts/core/libraries/Native.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":3107,"symbolAliases":[{"foreign":{"id":83123,"name":"Native","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3106,"src":"304:6:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83126,"nodeType":"ImportDirective","src":"364:74:137","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":83125,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"372:9:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83128,"nodeType":"ImportDirective","src":"440:66:137","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"allo-v2-test/foundry/shared/Accounts.sol","nameLocation":"-1:-1:-1","scope":83614,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":83127,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"448:8:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":83613,"nodeType":"ContractDefinition","src":"508:5347:137","nodes":[{"id":83139,"nodeType":"VariableDeclaration","src":"561:109:137","nodes":[],"constant":false,"functionSelector":"392f37e9","mutability":"mutable","name":"metadata","nameLocation":"577:8:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata"},"typeName":{"id":83134,"nodeType":"UserDefinedTypeName","pathNode":{"id":83133,"name":"Metadata","nameLocations":["561:8:137"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"561:8:137"},"referencedDeclaration":3098,"src":"561:8:137","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"value":{"arguments":[{"hexValue":"31","id":83136,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"608:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"516d57347a464c464a524e374a3637457a4e6d64433272324d397532694a44686132666a3547656536684a7a5359","id":83137,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"620:48:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_5132d0078161e899617508f56f10fe912a54664090fbe8853f8693be238f8d30","typeString":"literal_string \"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY\""},"value":"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_5132d0078161e899617508f56f10fe912a54664090fbe8853f8693be238f8d30","typeString":"literal_string \"QmW4zFLFJRN7J67EzNmdC2r2M9u2iJDha2fj5Gee6hJzSY\""}],"id":83135,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"588:8:137","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":83138,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["598:8:137","611:7:137"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"588:82:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"visibility":"public"},{"id":83144,"nodeType":"VariableDeclaration","src":"699:43:137","nodes":[],"constant":true,"functionSelector":"2e0f2625","mutability":"constant","name":"DECIMALS","nameLocation":"723:8:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83140,"name":"uint256","nodeType":"ElementaryTypeName","src":"699:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"},"id":83143,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":83141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"734:2:137","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3138","id":83142,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"740:2:137","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"src":"734:8:137","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000000_by_1","typeString":"int_const 1000000000000000000"}},"visibility":"public"},{"id":83149,"nodeType":"VariableDeclaration","src":"748:50:137","nodes":[],"constant":true,"functionSelector":"3f26479e","mutability":"constant","name":"PERCENTAGE_SCALE","nameLocation":"772:16:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83145,"name":"uint256","nodeType":"ElementaryTypeName","src":"748:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":83148,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":83146,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"791:2:137","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":83147,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"797:1:137","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"791:7:137","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":83151,"nodeType":"VariableDeclaration","src":"805:33:137","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId1_","nameLocation":"822:16:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83150,"name":"bytes32","nodeType":"ElementaryTypeName","src":"805:7:137","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":83156,"nodeType":"VariableDeclaration","src":"845:44:137","nodes":[],"constant":true,"mutability":"constant","name":"TWO_127","nameLocation":"871:7:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83152,"name":"uint256","nodeType":"ElementaryTypeName","src":"845:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"},"id":83155,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":83153,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"881:1:137","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313237","id":83154,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"886:3:137","typeDescriptions":{"typeIdentifier":"t_rational_127_by_1","typeString":"int_const 127"},"value":"127"},"src":"881:8:137","typeDescriptions":{"typeIdentifier":"t_rational_170141183460469231731687303715884105728_by_1","typeString":"int_const 1701...(31 digits omitted)...5728"}},"visibility":"internal"},{"id":83161,"nodeType":"VariableDeclaration","src":"895:44:137","nodes":[],"constant":true,"mutability":"constant","name":"TWO_128","nameLocation":"921:7:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83157,"name":"uint256","nodeType":"ElementaryTypeName","src":"895:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"},"id":83160,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"32","id":83158,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"931:1:137","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"313238","id":83159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"936:3:137","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"931:8:137","typeDescriptions":{"typeIdentifier":"t_rational_340282366920938463463374607431768211456_by_1","typeString":"int_const 3402...(31 digits omitted)...1456"}},"visibility":"internal"},{"id":83166,"nodeType":"VariableDeclaration","src":"945:37:137","nodes":[],"constant":true,"mutability":"constant","name":"D","nameLocation":"971:1:137","scope":83613,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83162,"name":"uint256","nodeType":"ElementaryTypeName","src":"945:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"},"id":83165,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":83163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"975:2:137","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"37","id":83164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"981:1:137","typeDescriptions":{"typeIdentifier":"t_rational_7_by_1","typeString":"int_const 7"},"value":"7"},"src":"975:7:137","typeDescriptions":{"typeIdentifier":"t_rational_10000000_by_1","typeString":"int_const 10000000"}},"visibility":"internal"},{"id":83204,"nodeType":"FunctionDefinition","src":"1093:437:137","nodes":[],"body":{"id":83203,"nodeType":"Block","src":"1251:279:137","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":83184,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83179,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83151,"src":"1265:16:137","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":83182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1293:1:137","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":83181,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1285:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":83180,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1285:7:137","typeDescriptions":{}}},"id":83183,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1285:10:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1265:30:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83200,"nodeType":"IfStatement","src":"1261:230:137","trueBody":{"id":83199,"nodeType":"Block","src":"1297:194:137","statements":[{"expression":{"id":83197,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83185,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83151,"src":"1311:16:137","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"32","id":83188,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1370:1:137","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},{"hexValue":"506f6f6c2050726f66696c652031","id":83189,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1373:16:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":83191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1411:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":83192,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1423:14:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":83190,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1391:8:137","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":83193,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1401:8:137","1414:7:137"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1391:48:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":83194,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83171,"src":"1441:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83195,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83174,"src":"1453:13:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":83186,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83169,"src":"1330:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":83187,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1339:13:137","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"1330:22:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":83196,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1330:150:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1311:169:137","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":83198,"nodeType":"ExpressionStatement","src":"1311:169:137"}]}},{"expression":{"id":83201,"name":"_poolProfileId1_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83151,"src":"1507:16:137","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":83178,"id":83202,"nodeType":"Return","src":"1500:23:137"}]},"functionSelector":"37d1c404","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id1","nameLocation":"1102:15:137","parameters":{"id":83175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83169,"mutability":"mutable","name":"registry","nameLocation":"1128:8:137","nodeType":"VariableDeclaration","scope":83204,"src":"1118:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":83168,"nodeType":"UserDefinedTypeName","pathNode":{"id":83167,"name":"IRegistry","nameLocations":["1118:9:137"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"1118:9:137"},"referencedDeclaration":2802,"src":"1118:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":83171,"mutability":"mutable","name":"pool_admin","nameLocation":"1146:10:137","nodeType":"VariableDeclaration","scope":83204,"src":"1138:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83170,"name":"address","nodeType":"ElementaryTypeName","src":"1138:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83174,"mutability":"mutable","name":"pool_managers","nameLocation":"1175:13:137","nodeType":"VariableDeclaration","scope":83204,"src":"1158:30:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83172,"name":"address","nodeType":"ElementaryTypeName","src":"1158:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83173,"nodeType":"ArrayTypeName","src":"1158:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1117:72:137"},"returnParameters":{"id":83178,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83177,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83204,"src":"1238:7:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":83176,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1238:7:137","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1237:9:137"},"scope":83613,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":83284,"nodeType":"FunctionDefinition","src":"1536:1088:137","nodes":[],"body":{"id":83283,"nodeType":"Block","src":"1823:801:137","nodes":[],"statements":[{"expression":{"id":83227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83221,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"1884:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1891:5:137","memberName":"decay","nodeType":"MemberAccess","referencedDeclaration":72864,"src":"1884:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e39393939373939","id":83225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1913:15:137","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_999979900000000000_by_1","typeString":"int_const 999979900000000000"},"value":"0.9999799"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_999979900000000000_by_1","typeString":"int_const 999979900000000000"}],"id":83224,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83458,"src":"1899:13:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":83226,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1899:30:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1884:45:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83228,"nodeType":"ExpressionStatement","src":"1884:45:137"},{"expression":{"id":83235,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83229,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"2028:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83231,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2035:8:137","memberName":"maxRatio","nodeType":"MemberAccess","referencedDeclaration":72866,"src":"2028:15:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e32","id":83233,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2060:9:137","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"},"value":"0.2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_200000000000000000_by_1","typeString":"int_const 200000000000000000"}],"id":83232,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83458,"src":"2046:13:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":83234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2046:24:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2028:42:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83236,"nodeType":"ExpressionStatement","src":"2028:42:137"},{"expression":{"id":83243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83237,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"2099:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83239,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2106:6:137","memberName":"weight","nodeType":"MemberAccess","referencedDeclaration":72868,"src":"2099:13:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"302e303031","id":83241,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2129:11:137","subdenomination":"ether","typeDescriptions":{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"},"value":"0.001"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1000000000000000_by_1","typeString":"int_const 1000000000000000"}],"id":83240,"name":"_etherToFloat","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83458,"src":"2115:13:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256) pure returns (uint256)"}},"id":83242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2115:26:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2099:42:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83244,"nodeType":"ExpressionStatement","src":"2099:42:137"},{"expression":{"id":83249,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83245,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"2238:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2245:17:137","memberName":"registryCommunity","nodeType":"MemberAccess","referencedDeclaration":72862,"src":"2238:24:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83248,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83206,"src":"2265:17:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2238:44:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83250,"nodeType":"ExpressionStatement","src":"2238:44:137"},{"expression":{"id":83255,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83251,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"2292:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2299:12:137","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":72873,"src":"2292:19:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83254,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83209,"src":"2314:12:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"2292:34:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"id":83256,"nodeType":"ExpressionStatement","src":"2292:34:137"},{"expression":{"id":83261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83257,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"2336:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83259,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2343:11:137","memberName":"pointSystem","nodeType":"MemberAccess","referencedDeclaration":72876,"src":"2336:18:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83260,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83212,"src":"2357:11:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"2336:32:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"id":83262,"nodeType":"ExpressionStatement","src":"2336:32:137"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":83263,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83215,"src":"2383:11:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":83264,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2395:9:137","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"2383:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83265,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2408:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2383:26:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83276,"nodeType":"IfStatement","src":"2379:197:137","trueBody":{"id":83275,"nodeType":"Block","src":"2411:165:137","statements":[{"expression":{"id":83273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83267,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83215,"src":"2527:11:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":83269,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2539:9:137","memberName":"maxAmount","nodeType":"MemberAccess","referencedDeclaration":72854,"src":"2527:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"323030","id":83270,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2551:3:137","typeDescriptions":{"typeIdentifier":"t_rational_200_by_1","typeString":"int_const 200"},"value":"200"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83271,"name":"DECIMALS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83144,"src":"2557:8:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2551:14:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2527:38:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83274,"nodeType":"ExpressionStatement","src":"2527:38:137"}]}},{"expression":{"id":83281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":83277,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83219,"src":"2585:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"id":83279,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2592:11:137","memberName":"pointConfig","nodeType":"MemberAccess","referencedDeclaration":72879,"src":"2585:18:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83280,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83215,"src":"2606:11:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"src":"2585:32:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}},"id":83282,"nodeType":"ExpressionStatement","src":"2585:32:137"}]},"functionSelector":"770b2e66","implemented":true,"kind":"function","modifiers":[],"name":"getParams","nameLocation":"1545:9:137","parameters":{"id":83216,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83206,"mutability":"mutable","name":"registryCommunity","nameLocation":"1572:17:137","nodeType":"VariableDeclaration","scope":83284,"src":"1564:25:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83205,"name":"address","nodeType":"ElementaryTypeName","src":"1564:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83209,"mutability":"mutable","name":"proposalType","nameLocation":"1627:12:137","nodeType":"VariableDeclaration","scope":83284,"src":"1599:40:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":83208,"nodeType":"UserDefinedTypeName","pathNode":{"id":83207,"name":"StrategyStruct.ProposalType","nameLocations":["1599:14:137","1614:12:137"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"1599:27:137"},"referencedDeclaration":72797,"src":"1599:27:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":83212,"mutability":"mutable","name":"pointSystem","nameLocation":"1676:11:137","nodeType":"VariableDeclaration","scope":83284,"src":"1649:38:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":83211,"nodeType":"UserDefinedTypeName","pathNode":{"id":83210,"name":"StrategyStruct.PointSystem","nameLocations":["1649:14:137","1664:11:137"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"1649:26:137"},"referencedDeclaration":72802,"src":"1649:26:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":83215,"mutability":"mutable","name":"pointConfig","nameLocation":"1737:11:137","nodeType":"VariableDeclaration","scope":83284,"src":"1697:51:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":83214,"nodeType":"UserDefinedTypeName","pathNode":{"id":83213,"name":"StrategyStruct.PointSystemConfig","nameLocations":["1697:14:137","1712:17:137"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"1697:32:137"},"referencedDeclaration":72855,"src":"1697:32:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"}],"src":"1554:200:137"},"returnParameters":{"id":83220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83219,"mutability":"mutable","name":"params","nameLocation":"1815:6:137","nodeType":"VariableDeclaration","scope":83284,"src":"1776:45:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":83218,"nodeType":"UserDefinedTypeName","pathNode":{"id":83217,"name":"StrategyStruct.InitializeParams","nameLocations":["1776:14:137","1791:16:137"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"1776:31:137"},"referencedDeclaration":72883,"src":"1776:31:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"src":"1775:47:137"},"scope":83613,"stateMutability":"pure","virtual":false,"visibility":"public"},{"id":83406,"nodeType":"FunctionDefinition","src":"2630:1442:137","nodes":[],"body":{"id":83405,"nodeType":"Block","src":"2978:1094:137","nodes":[],"statements":[{"assignments":[83314],"declarations":[{"constant":false,"id":83314,"mutability":"mutable","name":"params","nameLocation":"3078:6:137","nodeType":"VariableDeclaration","scope":83405,"src":"3039:45:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":83313,"nodeType":"UserDefinedTypeName","pathNode":{"id":83312,"name":"StrategyStruct.InitializeParams","nameLocations":["3039:14:137","3054:16:137"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"3039:31:137"},"referencedDeclaration":72883,"src":"3039:31:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"}],"id":83321,"initialValue":{"arguments":[{"id":83316,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83291,"src":"3109:17:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83317,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83299,"src":"3128:12:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},{"id":83318,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83302,"src":"3142:11:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},{"id":83319,"name":"pointConfig","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83305,"src":"3155:11:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}],"id":83315,"name":"getParams","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83284,"src":"3099:9:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_enum$_ProposalType_$72797_$_t_enum$_PointSystem_$72802_$_t_struct$_PointSystemConfig_$72855_memory_ptr_$returns$_t_struct$_InitializeParams_$72883_memory_ptr_$","typeString":"function (address,enum StrategyStruct.ProposalType,enum StrategyStruct.PointSystem,struct StrategyStruct.PointSystemConfig memory) pure returns (struct StrategyStruct.InitializeParams memory)"}},"id":83320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3099:68:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},"nodeType":"VariableDeclarationStatement","src":"3039:128:137"},{"assignments":[83326],"declarations":[{"constant":false,"id":83326,"mutability":"mutable","name":"_pool_managers","nameLocation":"3195:14:137","nodeType":"VariableDeclaration","scope":83405,"src":"3178:31:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":83324,"name":"address","nodeType":"ElementaryTypeName","src":"3178:7:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83325,"nodeType":"ArrayTypeName","src":"3178:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":83332,"initialValue":{"arguments":[{"hexValue":"32","id":83330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3226:1:137","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"}],"id":83329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"3212:13:137","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":83327,"name":"address","nodeType":"ElementaryTypeName","src":"3216:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83328,"nodeType":"ArrayTypeName","src":"3216:9:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":83331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:16:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"3178:50:137"},{"expression":{"id":83340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83333,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83326,"src":"3238:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":83335,"indexExpression":{"hexValue":"30","id":83334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3253:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3238:17:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":83338,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3266:4:137","typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategyHelpers_$83613","typeString":"contract CVStrategyHelpers"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_CVStrategyHelpers_$83613","typeString":"contract CVStrategyHelpers"}],"id":83337,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3258:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83336,"name":"address","nodeType":"ElementaryTypeName","src":"3258:7:137","typeDescriptions":{}}},"id":83339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3258:13:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3238:33:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83341,"nodeType":"ExpressionStatement","src":"3238:33:137"},{"expression":{"id":83350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":83342,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83326,"src":"3281:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":83344,"indexExpression":{"hexValue":"31","id":83343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3296:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3281:17:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":83347,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3309:3:137","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":83348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3313:6:137","memberName":"sender","nodeType":"MemberAccess","src":"3309:10:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83346,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3301:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83345,"name":"address","nodeType":"ElementaryTypeName","src":"3301:7:137","typeDescriptions":{}}},"id":83349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3301:19:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3281:39:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83351,"nodeType":"ExpressionStatement","src":"3281:39:137"},{"assignments":[83353],"declarations":[{"constant":false,"id":83353,"mutability":"mutable","name":"_token","nameLocation":"3578:6:137","nodeType":"VariableDeclaration","scope":83405,"src":"3570:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83352,"name":"address","nodeType":"ElementaryTypeName","src":"3570:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":83355,"initialValue":{"id":83354,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"3587:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3570:23:137"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":83361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83356,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83296,"src":"3607:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":83359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3624:1:137","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":83358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3616:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83357,"name":"address","nodeType":"ElementaryTypeName","src":"3616:7:137","typeDescriptions":{}}},"id":83360,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3616:10:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3607:19:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83367,"nodeType":"IfStatement","src":"3603:64:137","trueBody":{"id":83366,"nodeType":"Block","src":"3628:39:137","statements":[{"expression":{"id":83364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83362,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83353,"src":"3642:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83363,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83296,"src":"3651:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"3642:14:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":83365,"nodeType":"ExpressionStatement","src":"3642:14:137"}]}},{"expression":{"id":83390,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83368,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83308,"src":"3676:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[{"id":83372,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83294,"src":"3789:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},{"arguments":[],"expression":{"argumentTypes":[],"id":83373,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"3799:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":83374,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3799:12:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83375,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83326,"src":"3813:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"id":83371,"name":"poolProfile_id1","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83204,"src":"3773:15:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IRegistry_$2802_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (contract IRegistry,address,address[] memory) returns (bytes32)"}},"id":83376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3773:55:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":83379,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83289,"src":"3850:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83378,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3842:7:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":83377,"name":"address","nodeType":"ElementaryTypeName","src":"3842:7:137","typeDescriptions":{}}},"id":83380,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3842:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":83383,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83314,"src":"3884:6:137","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":83381,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3873:3:137","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":83382,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3877:6:137","memberName":"encode","nodeType":"MemberAccess","src":"3873:10:137","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":83384,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":83385,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83353,"src":"3905:6:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":83386,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3925:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":83387,"name":"metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83139,"src":"3940:8:137","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},{"id":83388,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83326,"src":"3962:14:137","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":83369,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83287,"src":"3685:4:137","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"id":83370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3690:28:137","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":175,"src":"3685:33:137","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":83389,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3685:301:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3676:310:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83391,"nodeType":"ExpressionStatement","src":"3676:310:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"id":83402,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":83396,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83289,"src":"4023:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":83395,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4015:8:137","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":83394,"name":"address","nodeType":"ElementaryTypeName","src":"4015:8:137","stateMutability":"payable","typeDescriptions":{}}},"id":83397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4015:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":83393,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"4004:10:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_CVStrategy_$75561_$","typeString":"type(contract CVStrategy)"}},"id":83398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:29:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_CVStrategy_$75561","typeString":"contract CVStrategy"}},"id":83399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4034:12:137","memberName":"proposalType","nodeType":"MemberAccess","referencedDeclaration":73078,"src":"4004:42:137","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_enum$_ProposalType_$72797_$","typeString":"function () view external returns (enum StrategyStruct.ProposalType)"}},"id":83400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4004:44:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":83401,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83299,"src":"4052:12:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"src":"4004:60:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"id":83392,"name":"assert","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-3,"src":"3997:6:137","typeDescriptions":{"typeIdentifier":"t_function_assert_pure$_t_bool_$returns$__$","typeString":"function (bool) pure"}},"id":83403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3997:68:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83404,"nodeType":"ExpressionStatement","src":"3997:68:137"}]},"functionSelector":"ed62303a","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"2639:10:137","parameters":{"id":83306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83287,"mutability":"mutable","name":"allo","nameLocation":"2664:4:137","nodeType":"VariableDeclaration","scope":83406,"src":"2659:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},"typeName":{"id":83286,"nodeType":"UserDefinedTypeName","pathNode":{"id":83285,"name":"Allo","nameLocations":["2659:4:137"],"nodeType":"IdentifierPath","referencedDeclaration":1390,"src":"2659:4:137"},"referencedDeclaration":1390,"src":"2659:4:137","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"visibility":"internal"},{"constant":false,"id":83289,"mutability":"mutable","name":"strategy","nameLocation":"2686:8:137","nodeType":"VariableDeclaration","scope":83406,"src":"2678:16:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83288,"name":"address","nodeType":"ElementaryTypeName","src":"2678:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83291,"mutability":"mutable","name":"registryCommunity","nameLocation":"2712:17:137","nodeType":"VariableDeclaration","scope":83406,"src":"2704:25:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83290,"name":"address","nodeType":"ElementaryTypeName","src":"2704:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83294,"mutability":"mutable","name":"registry","nameLocation":"2749:8:137","nodeType":"VariableDeclaration","scope":83406,"src":"2739:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":83293,"nodeType":"UserDefinedTypeName","pathNode":{"id":83292,"name":"IRegistry","nameLocations":["2739:9:137"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"2739:9:137"},"referencedDeclaration":2802,"src":"2739:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":83296,"mutability":"mutable","name":"token","nameLocation":"2775:5:137","nodeType":"VariableDeclaration","scope":83406,"src":"2767:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83295,"name":"address","nodeType":"ElementaryTypeName","src":"2767:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83299,"mutability":"mutable","name":"proposalType","nameLocation":"2818:12:137","nodeType":"VariableDeclaration","scope":83406,"src":"2790:40:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":83298,"nodeType":"UserDefinedTypeName","pathNode":{"id":83297,"name":"StrategyStruct.ProposalType","nameLocations":["2790:14:137","2805:12:137"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"2790:27:137"},"referencedDeclaration":72797,"src":"2790:27:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":83302,"mutability":"mutable","name":"pointSystem","nameLocation":"2867:11:137","nodeType":"VariableDeclaration","scope":83406,"src":"2840:38:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":83301,"nodeType":"UserDefinedTypeName","pathNode":{"id":83300,"name":"StrategyStruct.PointSystem","nameLocations":["2840:14:137","2855:11:137"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"2840:26:137"},"referencedDeclaration":72802,"src":"2840:26:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"},{"constant":false,"id":83305,"mutability":"mutable","name":"pointConfig","nameLocation":"2928:11:137","nodeType":"VariableDeclaration","scope":83406,"src":"2888:51:137","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig"},"typeName":{"id":83304,"nodeType":"UserDefinedTypeName","pathNode":{"id":83303,"name":"StrategyStruct.PointSystemConfig","nameLocations":["2888:14:137","2903:17:137"],"nodeType":"IdentifierPath","referencedDeclaration":72855,"src":"2888:32:137"},"referencedDeclaration":72855,"src":"2888:32:137","typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_storage_ptr","typeString":"struct StrategyStruct.PointSystemConfig"}},"visibility":"internal"}],"src":"2649:296:137"},"returnParameters":{"id":83309,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83308,"mutability":"mutable","name":"poolId","nameLocation":"2970:6:137","nodeType":"VariableDeclaration","scope":83406,"src":"2962:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83307,"name":"uint256","nodeType":"ElementaryTypeName","src":"2962:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2961:16:137"},"scope":83613,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83444,"nodeType":"FunctionDefinition","src":"4078:543:137","nodes":[],"body":{"id":83443,"nodeType":"Block","src":"4365:256:137","nodes":[],"statements":[{"expression":{"arguments":[{"id":83430,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83409,"src":"4406:4:137","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},{"id":83431,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83411,"src":"4424:8:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83432,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83413,"src":"4446:17:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83433,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83416,"src":"4477:8:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},{"id":83434,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83418,"src":"4499:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":83435,"name":"proposalType","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83421,"src":"4518:12:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},{"id":83436,"name":"pointSystem","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83424,"src":"4544:11:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},{"arguments":[{"hexValue":"30","id":83439,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4602:1:137","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"}],"expression":{"id":83437,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"4569:14:137","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":83438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4584:17:137","memberName":"PointSystemConfig","nodeType":"MemberAccess","referencedDeclaration":72855,"src":"4569:32:137","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_PointSystemConfig_$72855_storage_ptr_$","typeString":"type(struct StrategyStruct.PointSystemConfig storage pointer)"}},"id":83440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4569:35:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},{"typeIdentifier":"t_struct$_PointSystemConfig_$72855_memory_ptr","typeString":"struct StrategyStruct.PointSystemConfig memory"}],"id":83429,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[83406,83444],"referencedDeclaration":83406,"src":"4382:10:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_Allo_$1390_$_t_address_$_t_address_$_t_contract$_IRegistry_$2802_$_t_address_$_t_enum$_ProposalType_$72797_$_t_enum$_PointSystem_$72802_$_t_struct$_PointSystemConfig_$72855_memory_ptr_$returns$_t_uint256_$","typeString":"function (contract Allo,address,address,contract IRegistry,address,enum StrategyStruct.ProposalType,enum StrategyStruct.PointSystem,struct StrategyStruct.PointSystemConfig memory) returns (uint256)"}},"id":83441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4382:232:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83428,"id":83442,"nodeType":"Return","src":"4375:239:137"}]},"functionSelector":"d8c12dc2","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"4087:10:137","parameters":{"id":83425,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83409,"mutability":"mutable","name":"allo","nameLocation":"4112:4:137","nodeType":"VariableDeclaration","scope":83444,"src":"4107:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"},"typeName":{"id":83408,"nodeType":"UserDefinedTypeName","pathNode":{"id":83407,"name":"Allo","nameLocations":["4107:4:137"],"nodeType":"IdentifierPath","referencedDeclaration":1390,"src":"4107:4:137"},"referencedDeclaration":1390,"src":"4107:4:137","typeDescriptions":{"typeIdentifier":"t_contract$_Allo_$1390","typeString":"contract Allo"}},"visibility":"internal"},{"constant":false,"id":83411,"mutability":"mutable","name":"strategy","nameLocation":"4134:8:137","nodeType":"VariableDeclaration","scope":83444,"src":"4126:16:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83410,"name":"address","nodeType":"ElementaryTypeName","src":"4126:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83413,"mutability":"mutable","name":"registryCommunity","nameLocation":"4160:17:137","nodeType":"VariableDeclaration","scope":83444,"src":"4152:25:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83412,"name":"address","nodeType":"ElementaryTypeName","src":"4152:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83416,"mutability":"mutable","name":"registry","nameLocation":"4197:8:137","nodeType":"VariableDeclaration","scope":83444,"src":"4187:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":83415,"nodeType":"UserDefinedTypeName","pathNode":{"id":83414,"name":"IRegistry","nameLocations":["4187:9:137"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"4187:9:137"},"referencedDeclaration":2802,"src":"4187:9:137","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"internal"},{"constant":false,"id":83418,"mutability":"mutable","name":"token","nameLocation":"4223:5:137","nodeType":"VariableDeclaration","scope":83444,"src":"4215:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":83417,"name":"address","nodeType":"ElementaryTypeName","src":"4215:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":83421,"mutability":"mutable","name":"proposalType","nameLocation":"4266:12:137","nodeType":"VariableDeclaration","scope":83444,"src":"4238:40:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"},"typeName":{"id":83420,"nodeType":"UserDefinedTypeName","pathNode":{"id":83419,"name":"StrategyStruct.ProposalType","nameLocations":["4238:14:137","4253:12:137"],"nodeType":"IdentifierPath","referencedDeclaration":72797,"src":"4238:27:137"},"referencedDeclaration":72797,"src":"4238:27:137","typeDescriptions":{"typeIdentifier":"t_enum$_ProposalType_$72797","typeString":"enum StrategyStruct.ProposalType"}},"visibility":"internal"},{"constant":false,"id":83424,"mutability":"mutable","name":"pointSystem","nameLocation":"4315:11:137","nodeType":"VariableDeclaration","scope":83444,"src":"4288:38:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"typeName":{"id":83423,"nodeType":"UserDefinedTypeName","pathNode":{"id":83422,"name":"StrategyStruct.PointSystem","nameLocations":["4288:14:137","4303:11:137"],"nodeType":"IdentifierPath","referencedDeclaration":72802,"src":"4288:26:137"},"referencedDeclaration":72802,"src":"4288:26:137","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"visibility":"internal"}],"src":"4097:235:137"},"returnParameters":{"id":83428,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83427,"mutability":"mutable","name":"poolId","nameLocation":"4357:6:137","nodeType":"VariableDeclaration","scope":83444,"src":"4349:14:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83426,"name":"uint256","nodeType":"ElementaryTypeName","src":"4349:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4348:16:137"},"scope":83613,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":83458,"nodeType":"FunctionDefinition","src":"4627:114:137","nodes":[],"body":{"id":83457,"nodeType":"Block","src":"4699:42:137","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83451,"name":"_amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83446,"src":"4716:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"commonType":{"typeIdentifier":"t_rational_100000000000_by_1","typeString":"int_const 100000000000"},"id":83454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":83452,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4726:2:137","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"3131","id":83453,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4732:2:137","typeDescriptions":{"typeIdentifier":"t_rational_11_by_1","typeString":"int_const 11"},"value":"11"},"src":"4726:8:137","typeDescriptions":{"typeIdentifier":"t_rational_100000000000_by_1","typeString":"int_const 100000000000"}},"src":"4716:18:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83450,"id":83456,"nodeType":"Return","src":"4709:25:137"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_etherToFloat","nameLocation":"4636:13:137","parameters":{"id":83447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83446,"mutability":"mutable","name":"_amount","nameLocation":"4658:7:137","nodeType":"VariableDeclaration","scope":83458,"src":"4650:15:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83445,"name":"uint256","nodeType":"ElementaryTypeName","src":"4650:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4649:17:137"},"returnParameters":{"id":83450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83458,"src":"4690:7:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83448,"name":"uint256","nodeType":"ElementaryTypeName","src":"4690:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4689:9:137"},"scope":83613,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83492,"nodeType":"FunctionDefinition","src":"4747:269:137","nodes":[],"body":{"id":83491,"nodeType":"Block","src":"4825:191:137","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83470,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83468,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"4843:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"id":83469,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83161,"src":"4849:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4843:13:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e206f7220657175616c20746f20325e313238","id":83471,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4858:42:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""},"value":"_a should be less than or equal to 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_44e2d05298e19dba9341288d7967f4ffbb5a083f725e2470963d4d2d80484153","typeString":"literal_string \"_a should be less than or equal to 2^128\""}],"id":83467,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4835:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":83472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4835:66:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83473,"nodeType":"ExpressionStatement","src":"4835:66:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83477,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83475,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83462,"src":"4919:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83476,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83161,"src":"4924:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4919:12:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f622073686f756c64206265206c657373207468616e20325e313238","id":83478,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4933:30:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""},"value":"_b should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_94029ed39d36fd1673853e0d61636cb1f54d05801d9baceb39b21e0f4420d664","typeString":"literal_string \"_b should be less than 2^128\""}],"id":83474,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4911:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":83479,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4911:53:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83480,"nodeType":"ExpressionStatement","src":"4911:53:137"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83483,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83481,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83460,"src":"4983:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83482,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83462,"src":"4988:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4983:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83484,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4982:9:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":83485,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83156,"src":"4994:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4982:19:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83487,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"4981:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":83488,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5006:3:137","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"4981:28:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83466,"id":83490,"nodeType":"Return","src":"4974:35:137"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mul","nameLocation":"4756:4:137","parameters":{"id":83463,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83460,"mutability":"mutable","name":"_a","nameLocation":"4769:2:137","nodeType":"VariableDeclaration","scope":83492,"src":"4761:10:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83459,"name":"uint256","nodeType":"ElementaryTypeName","src":"4761:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83462,"mutability":"mutable","name":"_b","nameLocation":"4781:2:137","nodeType":"VariableDeclaration","scope":83492,"src":"4773:10:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83461,"name":"uint256","nodeType":"ElementaryTypeName","src":"4773:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4760:24:137"},"returnParameters":{"id":83466,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83465,"mutability":"mutable","name":"_result","nameLocation":"4816:7:137","nodeType":"VariableDeclaration","scope":83492,"src":"4808:15:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83464,"name":"uint256","nodeType":"ElementaryTypeName","src":"4808:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4807:17:137"},"scope":83613,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83556,"nodeType":"FunctionDefinition","src":"5022:447:137","nodes":[],"body":{"id":83555,"nodeType":"Block","src":"5100:369:137","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83502,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83494,"src":"5118:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":83503,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83161,"src":"5123:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5118:12:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5f612073686f756c64206265206c657373207468616e20325e313238","id":83505,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5132:30:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""},"value":"_a should be less than 2^128"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_8cb59667c527f8a0ca0170161b6ece5e9864e8aa2d080a486f0167056517515f","typeString":"literal_string \"_a should be less than 2^128\""}],"id":83501,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5110:7:137","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":83506,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5110:53:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":83507,"nodeType":"ExpressionStatement","src":"5110:53:137"},{"assignments":[83509],"declarations":[{"constant":false,"id":83509,"mutability":"mutable","name":"a","nameLocation":"5181:1:137","nodeType":"VariableDeclaration","scope":83555,"src":"5173:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83508,"name":"uint256","nodeType":"ElementaryTypeName","src":"5173:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83511,"initialValue":{"id":83510,"name":"_a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83494,"src":"5185:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5173:14:137"},{"assignments":[83513],"declarations":[{"constant":false,"id":83513,"mutability":"mutable","name":"b","nameLocation":"5205:1:137","nodeType":"VariableDeclaration","scope":83555,"src":"5197:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83512,"name":"uint256","nodeType":"ElementaryTypeName","src":"5197:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83515,"initialValue":{"id":83514,"name":"_b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83496,"src":"5209:2:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5197:14:137"},{"expression":{"id":83518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83516,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83499,"src":"5221:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":83517,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83161,"src":"5231:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5221:17:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83519,"nodeType":"ExpressionStatement","src":"5221:17:137"},{"body":{"id":83553,"nodeType":"Block","src":"5262:201:137","statements":[{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83523,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83513,"src":"5280:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"&","rightExpression":{"hexValue":"31","id":83524,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5284:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5280:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":83526,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5289:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5280:10:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":83551,"nodeType":"Block","src":"5370:83:137","statements":[{"expression":{"id":83545,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83540,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83499,"src":"5388:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":83542,"name":"_result","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83499,"src":"5403:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83543,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83509,"src":"5412:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83541,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83492,"src":"5398:4:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":83544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5398:16:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5388:26:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83546,"nodeType":"ExpressionStatement","src":"5388:26:137"},{"expression":{"id":83549,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83547,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83513,"src":"5432:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"hexValue":"31","id":83548,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5437:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5432:6:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83550,"nodeType":"ExpressionStatement","src":"5432:6:137"}]},"id":83552,"nodeType":"IfStatement","src":"5276:177:137","trueBody":{"id":83539,"nodeType":"Block","src":"5292:72:137","statements":[{"expression":{"id":83533,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83528,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83509,"src":"5310:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":83530,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83509,"src":"5319:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83531,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83509,"src":"5322:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83529,"name":"_mul","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83492,"src":"5314:4:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":83532,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5314:10:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5310:14:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83534,"nodeType":"ExpressionStatement","src":"5310:14:137"},{"expression":{"id":83537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":83535,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83513,"src":"5342:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":">>=","rightHandSide":{"hexValue":"31","id":83536,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5348:1:137","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"5342:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":83538,"nodeType":"ExpressionStatement","src":"5342:7:137"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83522,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83520,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83513,"src":"5255:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":83521,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5259:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5255:5:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":83554,"nodeType":"WhileStatement","src":"5248:215:137"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pow","nameLocation":"5031:4:137","parameters":{"id":83497,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83494,"mutability":"mutable","name":"_a","nameLocation":"5044:2:137","nodeType":"VariableDeclaration","scope":83556,"src":"5036:10:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83493,"name":"uint256","nodeType":"ElementaryTypeName","src":"5036:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83496,"mutability":"mutable","name":"_b","nameLocation":"5056:2:137","nodeType":"VariableDeclaration","scope":83556,"src":"5048:10:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83495,"name":"uint256","nodeType":"ElementaryTypeName","src":"5048:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5035:24:137"},"returnParameters":{"id":83500,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83499,"mutability":"mutable","name":"_result","nameLocation":"5091:7:137","nodeType":"VariableDeclaration","scope":83556,"src":"5083:15:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83498,"name":"uint256","nodeType":"ElementaryTypeName","src":"5083:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5082:17:137"},"scope":83613,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":83612,"nodeType":"FunctionDefinition","src":"5475:378:137","nodes":[],"body":{"id":83611,"nodeType":"Block","src":"5638:215:137","nodes":[],"statements":[{"assignments":[83570],"declarations":[{"constant":false,"id":83570,"mutability":"mutable","name":"t","nameLocation":"5656:1:137","nodeType":"VariableDeclaration","scope":83611,"src":"5648:9:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83569,"name":"uint256","nodeType":"ElementaryTypeName","src":"5648:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83572,"initialValue":{"id":83571,"name":"_timePassed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83558,"src":"5660:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5648:23:137"},{"assignments":[83574],"declarations":[{"constant":false,"id":83574,"mutability":"mutable","name":"atTWO_128","nameLocation":"5689:9:137","nodeType":"VariableDeclaration","scope":83611,"src":"5681:17:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83573,"name":"uint256","nodeType":"ElementaryTypeName","src":"5681:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":83584,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83578,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83576,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83564,"src":"5707:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<<","rightExpression":{"hexValue":"313238","id":83577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5716:3:137","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5707:12:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83579,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5706:14:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"id":83580,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83166,"src":"5723:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5706:18:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":83582,"name":"t","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83570,"src":"5726:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":83575,"name":"_pow","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83556,"src":"5701:4:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":83583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5701:27:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5681:47:137"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83609,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83606,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83603,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83585,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83574,"src":"5748:9:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83586,"name":"_lastConv","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83560,"src":"5760:9:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5748:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83588,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5747:23:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83601,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83591,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83589,"name":"_oldAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83562,"src":"5774:10:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":83590,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83166,"src":"5787:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:14:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83594,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83592,"name":"TWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83161,"src":"5792:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83593,"name":"atTWO_128","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83574,"src":"5802:9:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5792:19:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83595,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5791:21:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:38:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":83599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":83597,"name":"D","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83166,"src":"5816:1:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":83598,"name":"decay","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83564,"src":"5820:5:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5816:9:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83600,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5815:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5774:52:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83602,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5773:54:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5747:80:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83604,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5746:82:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":83605,"name":"TWO_127","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":83156,"src":"5831:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5746:92:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":83607,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"5745:94:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">>","rightExpression":{"hexValue":"313238","id":83608,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5843:3:137","typeDescriptions":{"typeIdentifier":"t_rational_128_by_1","typeString":"int_const 128"},"value":"128"},"src":"5745:101:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":83568,"id":83610,"nodeType":"Return","src":"5738:108:137"}]},"functionSelector":"e99ce911","implemented":true,"kind":"function","modifiers":[],"name":"_calculateConviction","nameLocation":"5484:20:137","parameters":{"id":83565,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83558,"mutability":"mutable","name":"_timePassed","nameLocation":"5513:11:137","nodeType":"VariableDeclaration","scope":83612,"src":"5505:19:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83557,"name":"uint256","nodeType":"ElementaryTypeName","src":"5505:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83560,"mutability":"mutable","name":"_lastConv","nameLocation":"5534:9:137","nodeType":"VariableDeclaration","scope":83612,"src":"5526:17:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83559,"name":"uint256","nodeType":"ElementaryTypeName","src":"5526:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83562,"mutability":"mutable","name":"_oldAmount","nameLocation":"5553:10:137","nodeType":"VariableDeclaration","scope":83612,"src":"5545:18:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83561,"name":"uint256","nodeType":"ElementaryTypeName","src":"5545:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":83564,"mutability":"mutable","name":"decay","nameLocation":"5573:5:137","nodeType":"VariableDeclaration","scope":83612,"src":"5565:13:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83563,"name":"uint256","nodeType":"ElementaryTypeName","src":"5565:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5504:75:137"},"returnParameters":{"id":83568,"nodeType":"ParameterList","parameters":[{"constant":false,"id":83567,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":83612,"src":"5625:7:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":83566,"name":"uint256","nodeType":"ElementaryTypeName","src":"5625:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5624:9:137"},"scope":83613,"stateMutability":"pure","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":83129,"name":"Native","nameLocations":["538:6:137"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"538:6:137"},"id":83130,"nodeType":"InheritanceSpecifier","src":"538:6:137"},{"baseName":{"id":83131,"name":"Accounts","nameLocations":["546:8:137"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"546:8:137"},"id":83132,"nodeType":"InheritanceSpecifier","src":"546:8:137"}],"canonicalName":"CVStrategyHelpers","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[83613,5026,12138,11345,3106],"name":"CVStrategyHelpers","nameLocation":"517:17:137","scope":83614,"usedErrors":[]}],"license":"AGPL-3.0-or-later"},"id":137} \ No newline at end of file diff --git a/pkg/contracts/out/ERC20.sol/ERC20.json b/pkg/contracts/out/ERC20.sol/ERC20.json index ba9826725..4a0026fec 100644 --- a/pkg/contracts/out/ERC20.sol/ERC20.json +++ b/pkg/contracts/out/ERC20.sol/ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000c4238038062000c4283398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61094e80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea26469706673582212204412d3db4927f0b19a043a2c2ae25f7456288e96036de6820c3767bddc17796964736f6c63430008130033","sourceMap":"1532:11312:72:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:72;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;14:127:143;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:143;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:143;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:143:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:143;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:143;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:143;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:143;;;3992:26;3943:89;-1:-1:-1;;2747:1:143;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:143;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:143;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:143;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:143:o;:::-;1532:11312:72;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea26469706673582212204412d3db4927f0b19a043a2c2ae25f7456288e96036de6820c3767bddc17796964736f6c63430008130033","sourceMap":"1532:11312:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:143;;1185:22;1167:41;;1155:2;1140:18;4444:197:72;1027:187:143;3255:106:72;3342:12;;3255:106;;;1365:25:143;;;1353:2;1338:18;3255:106:72;1219:177:143;5203:256:72;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1876:36:143;;1864:2;1849:18;3104:91:72;1734:184:143;5854:234:72;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:72;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4102:18:72;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;734:10:80;4581:32:72;734:10:80;4597:7:72;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;734:10:80;5356:38:72;5372:4;734:10:80;5387:6:72;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:72;;5203:256;-1:-1:-1;;;;5203:256:72:o;5854:234::-;734:10:80;5942:4:72;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:72;;;;;;;;;;5942:4;;734:10:80;5996:64:72;;734:10:80;;4102:27:72;;6021:38;;6049:10;;6021:38;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;734:10:80;6668:4:72;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:72;;;;;;;;;;6668:4;;734:10:80;6812:15:72;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:72;;3307:2:143;6784:85:72;;;3289:21:143;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6784:85:72;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;734:10:80;3873:28:72;734:10:80;3890:2:72;3894:6;3873:9;:28::i;10457:340::-;-1:-1:-1;;;;;10558:19:72;;10550:68;;;;-1:-1:-1;;;10550:68:72;;3713:2:143;10550:68:72;;;3695:21:143;3752:2;3732:18;;;3725:30;3791:34;3771:18;;;3764:62;3862:6;3842:18;;;3835:34;3886:19;;10550:68:72;3511:400:143;10550:68:72;-1:-1:-1;;;;;10636:21:72;;10628:68;;;;-1:-1:-1;;;10628:68:72;;4118:2:143;10628:68:72;;;4100:21:143;4157:2;4137:18;;;4130:30;4196:34;4176:18;;;4169:62;4267:4;4247:18;;;4240:32;4289:19;;10628:68:72;3916:398:143;10628:68:72;-1:-1:-1;;;;;10707:18:72;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1365:25:143;;;10758:32:72;;1338:18:143;10758:32:72;;;;;;;10457:340;;;:::o;11078:411::-;-1:-1:-1;;;;;4102:18:72;;;11178:24;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11244:37:72;;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:72;;4521:2:143;11297:68:72;;;4503:21:143;4560:2;4540:18;;;4533:30;4599:31;4579:18;;;4572:59;4648:18;;11297:68:72;4319:353:143;11297:68:72;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:72;;7544:68;;;;-1:-1:-1;;;7544:68:72;;4879:2:143;7544:68:72;;;4861:21:143;4918:2;4898:18;;;4891:30;4957:34;4937:18;;;4930:62;5028:7;5008:18;;;5001:35;5053:19;;7544:68:72;4677:401:143;7544:68:72;-1:-1:-1;;;;;7630:16:72;;7622:64;;;;-1:-1:-1;;;7622:64:72;;5285:2:143;7622:64:72;;;5267:21:143;5324:2;5304:18;;;5297:30;5363:34;5343:18;;;5336:62;5434:5;5414:18;;;5407:33;5457:19;;7622:64:72;5083:399:143;7622:64:72;-1:-1:-1;;;;;7768:15:72;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:72;;5689:2:143;7793:72:72;;;5671:21:143;5728:2;5708:18;;;5701:30;5767:34;5747:18;;;5740:62;5838:8;5818:18;;;5811:36;5864:19;;7793:72:72;5487:402:143;7793:72:72;-1:-1:-1;;;;;7899:15:72;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1365:25:143;;;8114:13:72;;8163:26;;1338:18:143;8163:26:72;;;;;;;8200:37;12073:91;14:548:143;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:143;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:143:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:143:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:143;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:143;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"amount\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":56251,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":56257,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":56259,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":56261,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":56263,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","id":56823,"exportedSymbols":{"Context":[57742],"ERC20":[56822],"IERC20":[56900],"IERC20Metadata":[56925]},"nodeType":"SourceUnit","src":"105:12740:72","nodes":[{"id":56237,"nodeType":"PragmaDirective","src":"105:23:72","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56238,"nodeType":"ImportDirective","src":"130:22:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":56823,"sourceUnit":56901,"symbolAliases":[],"unitAlias":""},{"id":56239,"nodeType":"ImportDirective","src":"153:41:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":56823,"sourceUnit":56926,"symbolAliases":[],"unitAlias":""},{"id":56240,"nodeType":"ImportDirective","src":"195:33:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":56823,"sourceUnit":57743,"symbolAliases":[],"unitAlias":""},{"id":56822,"nodeType":"ContractDefinition","src":"1532:11312:72","nodes":[{"id":56251,"nodeType":"VariableDeclaration","src":"1588:45:72","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1624:9:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56250,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56248,"name":"address","nodeType":"ElementaryTypeName","src":"1596:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1588:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56257,"nodeType":"VariableDeclaration","src":"1640:67:72","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1696:11:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":56256,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56252,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56255,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56253,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56254,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":56259,"nodeType":"VariableDeclaration","src":"1714:28:72","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1730:12:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56258,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":56261,"nodeType":"VariableDeclaration","src":"1749:20:72","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1764:5:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":56260,"name":"string","nodeType":"ElementaryTypeName","src":"1749:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":56263,"nodeType":"VariableDeclaration","src":"1775:22:72","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1790:7:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":56262,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":56280,"nodeType":"FunctionDefinition","src":"1980:113:72","nodes":[],"body":{"id":56279,"nodeType":"Block","src":"2036:57:72","nodes":[],"statements":[{"expression":{"id":56273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56271,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"2046:5:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56272,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56266,"src":"2054:5:72","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2046:13:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56274,"nodeType":"ExpressionStatement","src":"2046:13:72"},{"expression":{"id":56277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56275,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2069:7:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56276,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"2079:7:72","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2069:17:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56278,"nodeType":"ExpressionStatement","src":"2069:17:72"}]},"documentation":{"id":56264,"nodeType":"StructuredDocumentation","src":"1804:171:72","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56266,"mutability":"mutable","name":"name_","nameLocation":"2006:5:72","nodeType":"VariableDeclaration","scope":56280,"src":"1992:19:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56265,"name":"string","nodeType":"ElementaryTypeName","src":"1992:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56268,"mutability":"mutable","name":"symbol_","nameLocation":"2027:7:72","nodeType":"VariableDeclaration","scope":56280,"src":"2013:21:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56267,"name":"string","nodeType":"ElementaryTypeName","src":"2013:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1991:44:72"},"returnParameters":{"id":56270,"nodeType":"ParameterList","parameters":[],"src":"2036:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56290,"nodeType":"FunctionDefinition","src":"2158:98:72","nodes":[],"body":{"id":56289,"nodeType":"Block","src":"2227:29:72","nodes":[],"statements":[{"expression":{"id":56287,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"2244:5:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":56286,"id":56288,"nodeType":"Return","src":"2237:12:72"}]},"baseFunctions":[56912],"documentation":{"id":56281,"nodeType":"StructuredDocumentation","src":"2099:54:72","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2167:4:72","overrides":{"id":56283,"nodeType":"OverrideSpecifier","overrides":[],"src":"2194:8:72"},"parameters":{"id":56282,"nodeType":"ParameterList","parameters":[],"src":"2171:2:72"},"returnParameters":{"id":56286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56290,"src":"2212:13:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56284,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2211:15:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56300,"nodeType":"FunctionDefinition","src":"2369:102:72","nodes":[],"body":{"id":56299,"nodeType":"Block","src":"2440:31:72","nodes":[],"statements":[{"expression":{"id":56297,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2457:7:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":56296,"id":56298,"nodeType":"Return","src":"2450:14:72"}]},"baseFunctions":[56918],"documentation":{"id":56291,"nodeType":"StructuredDocumentation","src":"2262:102:72","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2378:6:72","overrides":{"id":56293,"nodeType":"OverrideSpecifier","overrides":[],"src":"2407:8:72"},"parameters":{"id":56292,"nodeType":"ParameterList","parameters":[],"src":"2384:2:72"},"returnParameters":{"id":56296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56300,"src":"2425:13:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56294,"name":"string","nodeType":"ElementaryTypeName","src":"2425:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2424:15:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56310,"nodeType":"FunctionDefinition","src":"3104:91:72","nodes":[],"body":{"id":56309,"nodeType":"Block","src":"3169:26:72","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":56307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3186:2:72","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":56306,"id":56308,"nodeType":"Return","src":"3179:9:72"}]},"baseFunctions":[56924],"documentation":{"id":56301,"nodeType":"StructuredDocumentation","src":"2477:622:72","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3113:8:72","overrides":{"id":56303,"nodeType":"OverrideSpecifier","overrides":[],"src":"3144:8:72"},"parameters":{"id":56302,"nodeType":"ParameterList","parameters":[],"src":"3121:2:72"},"returnParameters":{"id":56306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56310,"src":"3162:5:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56304,"name":"uint8","nodeType":"ElementaryTypeName","src":"3162:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3161:7:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56320,"nodeType":"FunctionDefinition","src":"3255:106:72","nodes":[],"body":{"id":56319,"nodeType":"Block","src":"3325:36:72","nodes":[],"statements":[{"expression":{"id":56317,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56259,"src":"3342:12:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56316,"id":56318,"nodeType":"Return","src":"3335:19:72"}]},"baseFunctions":[56849],"documentation":{"id":56311,"nodeType":"StructuredDocumentation","src":"3201:49:72","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3264:11:72","overrides":{"id":56313,"nodeType":"OverrideSpecifier","overrides":[],"src":"3298:8:72"},"parameters":{"id":56312,"nodeType":"ParameterList","parameters":[],"src":"3275:2:72"},"returnParameters":{"id":56316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56320,"src":"3316:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56314,"name":"uint256","nodeType":"ElementaryTypeName","src":"3316:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3315:9:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56334,"nodeType":"FunctionDefinition","src":"3419:125:72","nodes":[],"body":{"id":56333,"nodeType":"Block","src":"3502:42:72","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56329,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"3519:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56331,"indexExpression":{"id":56330,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56323,"src":"3529:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3519:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56328,"id":56332,"nodeType":"Return","src":"3512:25:72"}]},"baseFunctions":[56857],"documentation":{"id":56321,"nodeType":"StructuredDocumentation","src":"3367:47:72","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3428:9:72","overrides":{"id":56325,"nodeType":"OverrideSpecifier","overrides":[],"src":"3475:8:72"},"parameters":{"id":56324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56323,"mutability":"mutable","name":"account","nameLocation":"3446:7:72","nodeType":"VariableDeclaration","scope":56334,"src":"3438:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56322,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3437:17:72"},"returnParameters":{"id":56328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56334,"src":"3493:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3492:9:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56359,"nodeType":"FunctionDefinition","src":"3740:189:72","nodes":[],"body":{"id":56358,"nodeType":"Block","src":"3825:104:72","nodes":[],"statements":[{"assignments":[56346],"declarations":[{"constant":false,"id":56346,"mutability":"mutable","name":"owner","nameLocation":"3843:5:72","nodeType":"VariableDeclaration","scope":56358,"src":"3835:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56345,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56349,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56347,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"3851:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3835:28:72"},{"expression":{"arguments":[{"id":56351,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56346,"src":"3883:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56352,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56337,"src":"3890:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56353,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56339,"src":"3894:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56350,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56582,"src":"3873:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:28:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56355,"nodeType":"ExpressionStatement","src":"3873:28:72"},{"expression":{"hexValue":"74727565","id":56356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3918:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56344,"id":56357,"nodeType":"Return","src":"3911:11:72"}]},"baseFunctions":[56867],"documentation":{"id":56335,"nodeType":"StructuredDocumentation","src":"3550:185:72","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3749:8:72","overrides":{"id":56341,"nodeType":"OverrideSpecifier","overrides":[],"src":"3801:8:72"},"parameters":{"id":56340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56337,"mutability":"mutable","name":"to","nameLocation":"3766:2:72","nodeType":"VariableDeclaration","scope":56359,"src":"3758:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56336,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56339,"mutability":"mutable","name":"amount","nameLocation":"3778:6:72","nodeType":"VariableDeclaration","scope":56359,"src":"3770:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56338,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3757:28:72"},"returnParameters":{"id":56344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56359,"src":"3819:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56342,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56377,"nodeType":"FunctionDefinition","src":"3987:149:72","nodes":[],"body":{"id":56376,"nodeType":"Block","src":"4085:51:72","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":56370,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56257,"src":"4102:11:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56372,"indexExpression":{"id":56371,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"4114:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:18:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56374,"indexExpression":{"id":56373,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56364,"src":"4121:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:27:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56369,"id":56375,"nodeType":"Return","src":"4095:34:72"}]},"baseFunctions":[56877],"documentation":{"id":56360,"nodeType":"StructuredDocumentation","src":"3935:47:72","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3996:9:72","overrides":{"id":56366,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:72"},"parameters":{"id":56365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56362,"mutability":"mutable","name":"owner","nameLocation":"4014:5:72","nodeType":"VariableDeclaration","scope":56377,"src":"4006:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56361,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56364,"mutability":"mutable","name":"spender","nameLocation":"4029:7:72","nodeType":"VariableDeclaration","scope":56377,"src":"4021:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56363,"name":"address","nodeType":"ElementaryTypeName","src":"4021:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:32:72"},"returnParameters":{"id":56369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56377,"src":"4076:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56367,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:9:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56402,"nodeType":"FunctionDefinition","src":"4444:197:72","nodes":[],"body":{"id":56401,"nodeType":"Block","src":"4533:108:72","nodes":[],"statements":[{"assignments":[56389],"declarations":[{"constant":false,"id":56389,"mutability":"mutable","name":"owner","nameLocation":"4551:5:72","nodeType":"VariableDeclaration","scope":56401,"src":"4543:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56388,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56390,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"4559:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4559:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4543:28:72"},{"expression":{"arguments":[{"id":56394,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56389,"src":"4590:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56395,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56380,"src":"4597:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56382,"src":"4606:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56393,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"4581:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56398,"nodeType":"ExpressionStatement","src":"4581:32:72"},{"expression":{"hexValue":"74727565","id":56399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4630:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56387,"id":56400,"nodeType":"Return","src":"4623:11:72"}]},"baseFunctions":[56887],"documentation":{"id":56378,"nodeType":"StructuredDocumentation","src":"4142:297:72","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4453:7:72","overrides":{"id":56384,"nodeType":"OverrideSpecifier","overrides":[],"src":"4509:8:72"},"parameters":{"id":56383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56380,"mutability":"mutable","name":"spender","nameLocation":"4469:7:72","nodeType":"VariableDeclaration","scope":56402,"src":"4461:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56379,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56382,"mutability":"mutable","name":"amount","nameLocation":"4486:6:72","nodeType":"VariableDeclaration","scope":56402,"src":"4478:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56381,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:33:72"},"returnParameters":{"id":56387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56402,"src":"4527:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56385,"name":"bool","nodeType":"ElementaryTypeName","src":"4527:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4526:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56435,"nodeType":"FunctionDefinition","src":"5203:256:72","nodes":[],"body":{"id":56434,"nodeType":"Block","src":"5306:153:72","nodes":[],"statements":[{"assignments":[56416],"declarations":[{"constant":false,"id":56416,"mutability":"mutable","name":"spender","nameLocation":"5324:7:72","nodeType":"VariableDeclaration","scope":56434,"src":"5316:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56415,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56419,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56417,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"5334:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5316:30:72"},{"expression":{"arguments":[{"id":56421,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56405,"src":"5372:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56422,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56416,"src":"5378:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56423,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56409,"src":"5387:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56420,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"5356:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56425,"nodeType":"ExpressionStatement","src":"5356:38:72"},{"expression":{"arguments":[{"id":56427,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56405,"src":"5414:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56428,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56407,"src":"5420:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56409,"src":"5424:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56426,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56582,"src":"5404:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56431,"nodeType":"ExpressionStatement","src":"5404:27:72"},{"expression":{"hexValue":"74727565","id":56432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5448:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56414,"id":56433,"nodeType":"Return","src":"5441:11:72"}]},"baseFunctions":[56899],"documentation":{"id":56403,"nodeType":"StructuredDocumentation","src":"4647:551:72","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5212:12:72","overrides":{"id":56411,"nodeType":"OverrideSpecifier","overrides":[],"src":"5282:8:72"},"parameters":{"id":56410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56405,"mutability":"mutable","name":"from","nameLocation":"5233:4:72","nodeType":"VariableDeclaration","scope":56435,"src":"5225:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56404,"name":"address","nodeType":"ElementaryTypeName","src":"5225:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56407,"mutability":"mutable","name":"to","nameLocation":"5247:2:72","nodeType":"VariableDeclaration","scope":56435,"src":"5239:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56406,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56409,"mutability":"mutable","name":"amount","nameLocation":"5259:6:72","nodeType":"VariableDeclaration","scope":56435,"src":"5251:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56408,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5224:42:72"},"returnParameters":{"id":56414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56435,"src":"5300:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56412,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5299:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56464,"nodeType":"FunctionDefinition","src":"5854:234:72","nodes":[],"body":{"id":56463,"nodeType":"Block","src":"5948:140:72","nodes":[],"statements":[{"assignments":[56446],"declarations":[{"constant":false,"id":56446,"mutability":"mutable","name":"owner","nameLocation":"5966:5:72","nodeType":"VariableDeclaration","scope":56463,"src":"5958:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56445,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56449,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56447,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"5974:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5974:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5958:28:72"},{"expression":{"arguments":[{"id":56451,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56446,"src":"6005:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56452,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56438,"src":"6012:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56454,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56446,"src":"6031:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56455,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56438,"src":"6038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56453,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56377,"src":"6021:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":56457,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56440,"src":"6049:10:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6021:38:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56450,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"5996:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5996:64:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56460,"nodeType":"ExpressionStatement","src":"5996:64:72"},{"expression":{"hexValue":"74727565","id":56461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6077:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56444,"id":56462,"nodeType":"Return","src":"6070:11:72"}]},"documentation":{"id":56436,"nodeType":"StructuredDocumentation","src":"5465:384:72","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5863:17:72","parameters":{"id":56441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56438,"mutability":"mutable","name":"spender","nameLocation":"5889:7:72","nodeType":"VariableDeclaration","scope":56464,"src":"5881:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56437,"name":"address","nodeType":"ElementaryTypeName","src":"5881:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56440,"mutability":"mutable","name":"addedValue","nameLocation":"5906:10:72","nodeType":"VariableDeclaration","scope":56464,"src":"5898:18:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56439,"name":"uint256","nodeType":"ElementaryTypeName","src":"5898:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:37:72"},"returnParameters":{"id":56444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56464,"src":"5942:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56442,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5941:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56505,"nodeType":"FunctionDefinition","src":"6575:427:72","nodes":[],"body":{"id":56504,"nodeType":"Block","src":"6674:328:72","nodes":[],"statements":[{"assignments":[56475],"declarations":[{"constant":false,"id":56475,"mutability":"mutable","name":"owner","nameLocation":"6692:5:72","nodeType":"VariableDeclaration","scope":56504,"src":"6684:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56474,"name":"address","nodeType":"ElementaryTypeName","src":"6684:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56478,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56476,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"6700:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6684:28:72"},{"assignments":[56480],"declarations":[{"constant":false,"id":56480,"mutability":"mutable","name":"currentAllowance","nameLocation":"6730:16:72","nodeType":"VariableDeclaration","scope":56504,"src":"6722:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56479,"name":"uint256","nodeType":"ElementaryTypeName","src":"6722:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56485,"initialValue":{"arguments":[{"id":56482,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56475,"src":"6759:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56483,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56467,"src":"6766:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56481,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56377,"src":"6749:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6722:52:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56487,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56480,"src":"6792:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56488,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56469,"src":"6812:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6792:35:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":56490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6829:39:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":56486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6784:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6784:85:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56492,"nodeType":"ExpressionStatement","src":"6784:85:72"},{"id":56501,"nodeType":"UncheckedBlock","src":"6879:95:72","statements":[{"expression":{"arguments":[{"id":56494,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56475,"src":"6912:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56495,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56467,"src":"6919:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56496,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56480,"src":"6928:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56497,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56469,"src":"6947:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6928:34:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56493,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"6903:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:60:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56500,"nodeType":"ExpressionStatement","src":"6903:60:72"}]},{"expression":{"hexValue":"74727565","id":56502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6991:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56473,"id":56503,"nodeType":"Return","src":"6984:11:72"}]},"documentation":{"id":56465,"nodeType":"StructuredDocumentation","src":"6094:476:72","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6584:17:72","parameters":{"id":56470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56467,"mutability":"mutable","name":"spender","nameLocation":"6610:7:72","nodeType":"VariableDeclaration","scope":56505,"src":"6602:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56466,"name":"address","nodeType":"ElementaryTypeName","src":"6602:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56469,"mutability":"mutable","name":"subtractedValue","nameLocation":"6627:15:72","nodeType":"VariableDeclaration","scope":56505,"src":"6619:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56468,"name":"uint256","nodeType":"ElementaryTypeName","src":"6619:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:42:72"},"returnParameters":{"id":56473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56505,"src":"6668:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56471,"name":"bool","nodeType":"ElementaryTypeName","src":"6668:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6667:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56582,"nodeType":"FunctionDefinition","src":"7456:788:72","nodes":[],"body":{"id":56581,"nodeType":"Block","src":"7534:710:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56516,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7552:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:72","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":56518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56517,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:72","typeDescriptions":{}}},"id":56520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7552:18:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":56522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7572:39:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":56515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7544:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56524,"nodeType":"ExpressionStatement","src":"7544:68:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56526,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"7630:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7644:1:72","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":56528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7636:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56527,"name":"address","nodeType":"ElementaryTypeName","src":"7636:7:72","typeDescriptions":{}}},"id":56530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7630:16:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":56532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7648:37:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":56525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7622:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:64:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56534,"nodeType":"ExpressionStatement","src":"7622:64:72"},{"expression":{"arguments":[{"id":56536,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7718:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56537,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"7724:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56538,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"7728:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56535,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56810,"src":"7697:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56540,"nodeType":"ExpressionStatement","src":"7697:38:72"},{"assignments":[56542],"declarations":[{"constant":false,"id":56542,"mutability":"mutable","name":"fromBalance","nameLocation":"7754:11:72","nodeType":"VariableDeclaration","scope":56581,"src":"7746:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56541,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56546,"initialValue":{"baseExpression":{"id":56543,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"7768:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56545,"indexExpression":{"id":56544,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7778:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7768:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7746:37:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56548,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56542,"src":"7801:11:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56549,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"7816:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":56551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:40:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":56547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7793:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:72:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56553,"nodeType":"ExpressionStatement","src":"7793:72:72"},{"id":56568,"nodeType":"UncheckedBlock","src":"7875:273:72","statements":[{"expression":{"id":56560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56554,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"7899:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56556,"indexExpression":{"id":56555,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7909:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7899:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56557,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56542,"src":"7917:11:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"7931:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7917:20:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:38:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56561,"nodeType":"ExpressionStatement","src":"7899:38:72"},{"expression":{"id":56566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56562,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"8114:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56564,"indexExpression":{"id":56563,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"8124:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8114:13:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56565,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"8131:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:23:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56567,"nodeType":"ExpressionStatement","src":"8114:23:72"}]},{"eventCall":{"arguments":[{"id":56570,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"8172:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56571,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"8178:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56572,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"8182:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56569,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"8163:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:26:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56574,"nodeType":"EmitStatement","src":"8158:31:72"},{"expression":{"arguments":[{"id":56576,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"8220:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56577,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"8226:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"8230:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56575,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56821,"src":"8200:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8200:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56580,"nodeType":"ExpressionStatement","src":"8200:37:72"}]},"documentation":{"id":56506,"nodeType":"StructuredDocumentation","src":"7008:443:72","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7465:9:72","parameters":{"id":56513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56508,"mutability":"mutable","name":"from","nameLocation":"7483:4:72","nodeType":"VariableDeclaration","scope":56582,"src":"7475:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56507,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56510,"mutability":"mutable","name":"to","nameLocation":"7497:2:72","nodeType":"VariableDeclaration","scope":56582,"src":"7489:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56509,"name":"address","nodeType":"ElementaryTypeName","src":"7489:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56512,"mutability":"mutable","name":"amount","nameLocation":"7509:6:72","nodeType":"VariableDeclaration","scope":56582,"src":"7501:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56511,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7474:42:72"},"returnParameters":{"id":56514,"nodeType":"ParameterList","parameters":[],"src":"7534:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56639,"nodeType":"FunctionDefinition","src":"8520:535:72","nodes":[],"body":{"id":56638,"nodeType":"Block","src":"8585:470:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56591,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8603:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8622:1:72","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":56593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56592,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:72","typeDescriptions":{}}},"id":56595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8603:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":56597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8626:33:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":56590,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8595:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:65:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56599,"nodeType":"ExpressionStatement","src":"8595:65:72"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":56603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8700:1:72","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":56602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8692:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56601,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:72","typeDescriptions":{}}},"id":56604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8692:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56605,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8704:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56606,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8713:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56600,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56810,"src":"8671:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:49:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56608,"nodeType":"ExpressionStatement","src":"8671:49:72"},{"expression":{"id":56611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56609,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56259,"src":"8731:12:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56610,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8747:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:22:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56612,"nodeType":"ExpressionStatement","src":"8731:22:72"},{"id":56619,"nodeType":"UncheckedBlock","src":"8763:175:72","statements":[{"expression":{"id":56617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56613,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"8899:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56615,"indexExpression":{"id":56614,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8909:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8899:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56616,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8921:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56618,"nodeType":"ExpressionStatement","src":"8899:28:72"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":56623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:72","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":56622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8961:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56621,"name":"address","nodeType":"ElementaryTypeName","src":"8961:7:72","typeDescriptions":{}}},"id":56624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56625,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8973:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56626,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8982:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56620,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"8952:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56628,"nodeType":"EmitStatement","src":"8947:42:72"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":56632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9028:1:72","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":56631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9020:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56630,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:72","typeDescriptions":{}}},"id":56633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56634,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"9032:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56635,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"9041:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56629,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56821,"src":"9000:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:48:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56637,"nodeType":"ExpressionStatement","src":"9000:48:72"}]},"documentation":{"id":56583,"nodeType":"StructuredDocumentation","src":"8250:265:72","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8529:5:72","parameters":{"id":56588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56585,"mutability":"mutable","name":"account","nameLocation":"8543:7:72","nodeType":"VariableDeclaration","scope":56639,"src":"8535:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56584,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56587,"mutability":"mutable","name":"amount","nameLocation":"8560:6:72","nodeType":"VariableDeclaration","scope":56639,"src":"8552:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56586,"name":"uint256","nodeType":"ElementaryTypeName","src":"8552:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8534:33:72"},"returnParameters":{"id":56589,"nodeType":"ParameterList","parameters":[],"src":"8585:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56711,"nodeType":"FunctionDefinition","src":"9375:659:72","nodes":[],"body":{"id":56710,"nodeType":"Block","src":"9440:594:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56648,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9458:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:72","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":56650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9469:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56649,"name":"address","nodeType":"ElementaryTypeName","src":"9469:7:72","typeDescriptions":{}}},"id":56652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9458:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":56654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9481:35:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":56647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9450:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9450:67:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56656,"nodeType":"ExpressionStatement","src":"9450:67:72"},{"expression":{"arguments":[{"id":56658,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9549:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:72","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":56660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9558:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56659,"name":"address","nodeType":"ElementaryTypeName","src":"9558:7:72","typeDescriptions":{}}},"id":56662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9570:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56657,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56810,"src":"9528:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9528:49:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56665,"nodeType":"ExpressionStatement","src":"9528:49:72"},{"assignments":[56667],"declarations":[{"constant":false,"id":56667,"mutability":"mutable","name":"accountBalance","nameLocation":"9596:14:72","nodeType":"VariableDeclaration","scope":56710,"src":"9588:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56666,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56671,"initialValue":{"baseExpression":{"id":56668,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"9613:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56670,"indexExpression":{"id":56669,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9623:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9613:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9588:43:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56673,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56667,"src":"9649:14:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9667:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:24:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":56676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9675:36:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":56672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9641:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:71:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56678,"nodeType":"ExpressionStatement","src":"9641:71:72"},{"id":56691,"nodeType":"UncheckedBlock","src":"9722:194:72","statements":[{"expression":{"id":56685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56679,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"9746:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56681,"indexExpression":{"id":56680,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9756:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9746:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56682,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56667,"src":"9767:14:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56683,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9784:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:23:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:44:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56686,"nodeType":"ExpressionStatement","src":"9746:44:72"},{"expression":{"id":56689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56687,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56259,"src":"9883:12:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":56688,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9899:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9883:22:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56690,"nodeType":"ExpressionStatement","src":"9883:22:72"}]},{"eventCall":{"arguments":[{"id":56693,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9940:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:72","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":56695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9949:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56694,"name":"address","nodeType":"ElementaryTypeName","src":"9949:7:72","typeDescriptions":{}}},"id":56697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56698,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9961:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56692,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"9931:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9931:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56700,"nodeType":"EmitStatement","src":"9926:42:72"},{"expression":{"arguments":[{"id":56702,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9999:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:72","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":56704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56703,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:72","typeDescriptions":{}}},"id":56706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56707,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"10020:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56701,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56821,"src":"9979:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9979:48:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56709,"nodeType":"ExpressionStatement","src":"9979:48:72"}]},"documentation":{"id":56640,"nodeType":"StructuredDocumentation","src":"9061:309:72","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9384:5:72","parameters":{"id":56645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56642,"mutability":"mutable","name":"account","nameLocation":"9398:7:72","nodeType":"VariableDeclaration","scope":56711,"src":"9390:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56641,"name":"address","nodeType":"ElementaryTypeName","src":"9390:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56644,"mutability":"mutable","name":"amount","nameLocation":"9415:6:72","nodeType":"VariableDeclaration","scope":56711,"src":"9407:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56643,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:33:72"},"returnParameters":{"id":56646,"nodeType":"ParameterList","parameters":[],"src":"9440:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56756,"nodeType":"FunctionDefinition","src":"10457:340:72","nodes":[],"body":{"id":56755,"nodeType":"Block","src":"10540:257:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56722,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"10558:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10575:1:72","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":56724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10567:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56723,"name":"address","nodeType":"ElementaryTypeName","src":"10567:7:72","typeDescriptions":{}}},"id":56726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10558:19:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":56728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10579:38:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":56721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10550:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56730,"nodeType":"ExpressionStatement","src":"10550:68:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56732,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56716,"src":"10636:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10655:1:72","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":56734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10647:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56733,"name":"address","nodeType":"ElementaryTypeName","src":"10647:7:72","typeDescriptions":{}}},"id":56736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":56738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:36:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":56731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10628:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56740,"nodeType":"ExpressionStatement","src":"10628:68:72"},{"expression":{"id":56747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":56741,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56257,"src":"10707:11:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56744,"indexExpression":{"id":56742,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"10719:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10707:18:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56745,"indexExpression":{"id":56743,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56716,"src":"10726:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10707:27:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56746,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56718,"src":"10737:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10707:36:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56748,"nodeType":"ExpressionStatement","src":"10707:36:72"},{"eventCall":{"arguments":[{"id":56750,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"10767:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56751,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56716,"src":"10774:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56752,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56718,"src":"10783:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56749,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56843,"src":"10758:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56754,"nodeType":"EmitStatement","src":"10753:37:72"}]},"documentation":{"id":56712,"nodeType":"StructuredDocumentation","src":"10040:412:72","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10466:8:72","parameters":{"id":56719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56714,"mutability":"mutable","name":"owner","nameLocation":"10483:5:72","nodeType":"VariableDeclaration","scope":56756,"src":"10475:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56713,"name":"address","nodeType":"ElementaryTypeName","src":"10475:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56716,"mutability":"mutable","name":"spender","nameLocation":"10498:7:72","nodeType":"VariableDeclaration","scope":56756,"src":"10490:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56715,"name":"address","nodeType":"ElementaryTypeName","src":"10490:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56718,"mutability":"mutable","name":"amount","nameLocation":"10515:6:72","nodeType":"VariableDeclaration","scope":56756,"src":"10507:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56717,"name":"uint256","nodeType":"ElementaryTypeName","src":"10507:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10474:48:72"},"returnParameters":{"id":56720,"nodeType":"ParameterList","parameters":[],"src":"10540:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56799,"nodeType":"FunctionDefinition","src":"11078:411:72","nodes":[],"body":{"id":56798,"nodeType":"Block","src":"11168:321:72","nodes":[],"statements":[{"assignments":[56767],"declarations":[{"constant":false,"id":56767,"mutability":"mutable","name":"currentAllowance","nameLocation":"11186:16:72","nodeType":"VariableDeclaration","scope":56798,"src":"11178:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56766,"name":"uint256","nodeType":"ElementaryTypeName","src":"11178:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56772,"initialValue":{"arguments":[{"id":56769,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56759,"src":"11215:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56770,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56761,"src":"11222:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56768,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56377,"src":"11205:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11178:52:72"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56773,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"11244:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":56776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11269:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56775,"name":"uint256","nodeType":"ElementaryTypeName","src":"11269:7:72","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":56774,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11264:4:72","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11264:13:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":56778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11278:3:72","memberName":"max","nodeType":"MemberAccess","src":"11264:17:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11244:37:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56797,"nodeType":"IfStatement","src":"11240:243:72","trueBody":{"id":56796,"nodeType":"Block","src":"11283:200:72","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56781,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"11305:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56782,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56763,"src":"11325:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11305:26:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":56784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11333:31:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":56780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11297:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56786,"nodeType":"ExpressionStatement","src":"11297:68:72"},{"id":56795,"nodeType":"UncheckedBlock","src":"11379:94:72","statements":[{"expression":{"arguments":[{"id":56788,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56759,"src":"11416:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56789,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56761,"src":"11423:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56790,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"11432:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56791,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56763,"src":"11451:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11432:25:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56787,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"11407:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56794,"nodeType":"ExpressionStatement","src":"11407:51:72"}]}]}}]},"documentation":{"id":56757,"nodeType":"StructuredDocumentation","src":"10803:270:72","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11087:15:72","parameters":{"id":56764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56759,"mutability":"mutable","name":"owner","nameLocation":"11111:5:72","nodeType":"VariableDeclaration","scope":56799,"src":"11103:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56758,"name":"address","nodeType":"ElementaryTypeName","src":"11103:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56761,"mutability":"mutable","name":"spender","nameLocation":"11126:7:72","nodeType":"VariableDeclaration","scope":56799,"src":"11118:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56760,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56763,"mutability":"mutable","name":"amount","nameLocation":"11143:6:72","nodeType":"VariableDeclaration","scope":56799,"src":"11135:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56762,"name":"uint256","nodeType":"ElementaryTypeName","src":"11135:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11102:48:72"},"returnParameters":{"id":56765,"nodeType":"ParameterList","parameters":[],"src":"11168:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56810,"nodeType":"FunctionDefinition","src":"12073:91:72","nodes":[],"body":{"id":56809,"nodeType":"Block","src":"12162:2:72","nodes":[],"statements":[]},"documentation":{"id":56800,"nodeType":"StructuredDocumentation","src":"11495:573:72","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12082:20:72","parameters":{"id":56807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56802,"mutability":"mutable","name":"from","nameLocation":"12111:4:72","nodeType":"VariableDeclaration","scope":56810,"src":"12103:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56801,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56804,"mutability":"mutable","name":"to","nameLocation":"12125:2:72","nodeType":"VariableDeclaration","scope":56810,"src":"12117:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56803,"name":"address","nodeType":"ElementaryTypeName","src":"12117:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56806,"mutability":"mutable","name":"amount","nameLocation":"12137:6:72","nodeType":"VariableDeclaration","scope":56810,"src":"12129:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56805,"name":"uint256","nodeType":"ElementaryTypeName","src":"12129:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12102:42:72"},"returnParameters":{"id":56808,"nodeType":"ParameterList","parameters":[],"src":"12162:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56821,"nodeType":"FunctionDefinition","src":"12752:90:72","nodes":[],"body":{"id":56820,"nodeType":"Block","src":"12840:2:72","nodes":[],"statements":[]},"documentation":{"id":56811,"nodeType":"StructuredDocumentation","src":"12170:577:72","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12761:19:72","parameters":{"id":56818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56813,"mutability":"mutable","name":"from","nameLocation":"12789:4:72","nodeType":"VariableDeclaration","scope":56821,"src":"12781:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56812,"name":"address","nodeType":"ElementaryTypeName","src":"12781:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56815,"mutability":"mutable","name":"to","nameLocation":"12803:2:72","nodeType":"VariableDeclaration","scope":56821,"src":"12795:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56814,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56817,"mutability":"mutable","name":"amount","nameLocation":"12815:6:72","nodeType":"VariableDeclaration","scope":56821,"src":"12807:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56816,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12780:42:72"},"returnParameters":{"id":56819,"nodeType":"ParameterList","parameters":[],"src":"12840:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":56242,"name":"Context","nameLocations":["1550:7:72"],"nodeType":"IdentifierPath","referencedDeclaration":57742,"src":"1550:7:72"},"id":56243,"nodeType":"InheritanceSpecifier","src":"1550:7:72"},{"baseName":{"id":56244,"name":"IERC20","nameLocations":["1559:6:72"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1559:6:72"},"id":56245,"nodeType":"InheritanceSpecifier","src":"1559:6:72"},{"baseName":{"id":56246,"name":"IERC20Metadata","nameLocations":["1567:14:72"],"nodeType":"IdentifierPath","referencedDeclaration":56925,"src":"1567:14:72"},"id":56247,"nodeType":"InheritanceSpecifier","src":"1567:14:72"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":56241,"nodeType":"StructuredDocumentation","src":"230:1301:72","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[56822,56925,56900,57742],"name":"ERC20","nameLocation":"1541:5:72","scope":56823,"usedErrors":[]}],"license":"MIT"},"id":72} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"}],"stateMutability":"nonpayable"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"subtractedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000c4238038062000c4283398101604081905262000034916200011f565b600362000042838262000218565b50600462000051828262000218565b505050620002e4565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200008257600080fd5b81516001600160401b03808211156200009f576200009f6200005a565b604051601f8301601f19908116603f01168101908282118183101715620000ca57620000ca6200005a565b81604052838152602092508683858801011115620000e757600080fd5b600091505b838210156200010b5785820183015181830184015290820190620000ec565b600093810190920192909252949350505050565b600080604083850312156200013357600080fd5b82516001600160401b03808211156200014b57600080fd5b620001598683870162000070565b935060208501519150808211156200017057600080fd5b506200017f8582860162000070565b9150509250929050565b600181811c908216806200019e57607f821691505b602082108103620001bf57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200021357600081815260208120601f850160051c81016020861015620001ee5750805b601f850160051c820191505b818110156200020f57828155600101620001fa565b5050505b505050565b81516001600160401b038111156200023457620002346200005a565b6200024c8162000245845462000189565b84620001c5565b602080601f8311600181146200028457600084156200026b5750858301515b600019600386901b1c1916600185901b1785556200020f565b600085815260208120601f198616915b82811015620002b55788860151825594840194600190910190840162000294565b5085821015620002d45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61094e80620002f46000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220108e82a0181273308249310431ec73d7c69408178895ba988e5550b1cdffd84164736f6c63430008130033","sourceMap":"1532:11312:72:-:0;;;1980:113;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2046:5;:13;2054:5;2046;:13;:::i;:::-;-1:-1:-1;2069:7:72;:17;2079:7;2069;:17;:::i;:::-;;1980:113;;1532:11312;;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:145;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:145;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:145:o;991:562::-;1090:6;1098;1151:2;1139:9;1130:7;1126:23;1122:32;1119:52;;;1167:1;1164;1157:12;1119:52;1194:16;;-1:-1:-1;;;;;1259:14:145;;;1256:34;;;1286:1;1283;1276:12;1256:34;1309:61;1362:7;1353:6;1342:9;1338:22;1309:61;:::i;:::-;1299:71;;1416:2;1405:9;1401:18;1395:25;1379:41;;1445:2;1435:8;1432:16;1429:36;;;1461:1;1458;1451:12;1429:36;;1484:63;1539:7;1528:8;1517:9;1513:24;1484:63;:::i;:::-;1474:73;;;991:562;;;;;:::o;1558:380::-;1637:1;1633:12;;;;1680;;;1701:61;;1755:4;1747:6;1743:17;1733:27;;1701:61;1808:2;1800:6;1797:14;1777:18;1774:38;1771:161;;1854:10;1849:3;1845:20;1842:1;1835:31;1889:4;1886:1;1879:15;1917:4;1914:1;1907:15;1771:161;;1558:380;;;:::o;2069:545::-;2171:2;2166:3;2163:11;2160:448;;;2207:1;2232:5;2228:2;2221:17;2277:4;2273:2;2263:19;2347:2;2335:10;2331:19;2328:1;2324:27;2318:4;2314:38;2383:4;2371:10;2368:20;2365:47;;;-1:-1:-1;2406:4:145;2365:47;2461:2;2456:3;2452:12;2449:1;2445:20;2439:4;2435:31;2425:41;;2516:82;2534:2;2527:5;2524:13;2516:82;;;2579:17;;;2560:1;2549:13;2516:82;;;2520:3;;;2160:448;2069:545;;;:::o;2790:1352::-;2910:10;;-1:-1:-1;;;;;2932:30:145;;2929:56;;;2965:18;;:::i;:::-;2994:97;3084:6;3044:38;3076:4;3070:11;3044:38;:::i;:::-;3038:4;2994:97;:::i;:::-;3146:4;;3210:2;3199:14;;3227:1;3222:663;;;;3929:1;3946:6;3943:89;;;-1:-1:-1;3998:19:145;;;3992:26;3943:89;-1:-1:-1;;2747:1:145;2743:11;;;2739:24;2735:29;2725:40;2771:1;2767:11;;;2722:57;4045:81;;3192:944;;3222:663;2016:1;2009:14;;;2053:4;2040:18;;-1:-1:-1;;3258:20:145;;;3376:236;3390:7;3387:1;3384:14;3376:236;;;3479:19;;;3473:26;3458:42;;3571:27;;;;3539:1;3527:14;;;;3406:19;;3376:236;;;3380:3;3640:6;3631:7;3628:19;3625:201;;;3701:19;;;3695:26;-1:-1:-1;;3784:1:145;3780:14;;;3796:3;3776:24;3772:37;3768:42;3753:58;3738:74;;3625:201;-1:-1:-1;;;;;3872:1:145;3856:14;;;3852:22;3839:36;;-1:-1:-1;2790:1352:145:o;:::-;1532:11312:72;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80633950935111610081578063a457c2d71161005b578063a457c2d714610187578063a9059cbb1461019a578063dd62ed3e146101ad57600080fd5b8063395093511461014357806370a082311461015657806395d89b411461017f57600080fd5b806318160ddd116100b257806318160ddd1461010f57806323b872dd14610121578063313ce5671461013457600080fd5b806306fdde03146100ce578063095ea7b3146100ec575b600080fd5b6100d66101e6565b6040516100e39190610798565b60405180910390f35b6100ff6100fa366004610802565b610278565b60405190151581526020016100e3565b6002545b6040519081526020016100e3565b6100ff61012f36600461082c565b610292565b604051601281526020016100e3565b6100ff610151366004610802565b6102b6565b610113610164366004610868565b6001600160a01b031660009081526020819052604090205490565b6100d66102f5565b6100ff610195366004610802565b610304565b6100ff6101a8366004610802565b6103b3565b6101136101bb36600461088a565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6060600380546101f5906108bd565b80601f0160208091040260200160405190810160405280929190818152602001828054610221906108bd565b801561026e5780601f106102435761010080835404028352916020019161026e565b820191906000526020600020905b81548152906001019060200180831161025157829003601f168201915b5050505050905090565b6000336102868185856103c1565b60019150505b92915050565b6000336102a0858285610519565b6102ab8585856105ab565b506001949350505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061028690829086906102f09087906108f7565b6103c1565b6060600480546101f5906108bd565b3360008181526001602090815260408083206001600160a01b0387168452909152812054909190838110156103a65760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f00000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b6102ab82868684036103c1565b6000336102868185856105ab565b6001600160a01b03831661043c5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166104b85760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383811660009081526001602090815260408083209386168352929052205460001981146105a557818110156105985760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161039d565b6105a584848484036103c1565b50505050565b6001600160a01b0383166106275760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b0382166106a35760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b038316600090815260208190526040902054818110156107325760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161039d565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36105a5565b600060208083528351808285015260005b818110156107c5578581018301518582016040015282016107a9565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146107fd57600080fd5b919050565b6000806040838503121561081557600080fd5b61081e836107e6565b946020939093013593505050565b60008060006060848603121561084157600080fd5b61084a846107e6565b9250610858602085016107e6565b9150604084013590509250925092565b60006020828403121561087a57600080fd5b610883826107e6565b9392505050565b6000806040838503121561089d57600080fd5b6108a6836107e6565b91506108b4602084016107e6565b90509250929050565b600181811c908216806108d157607f821691505b6020821081036108f157634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561028c57634e487b7160e01b600052601160045260246000fdfea2646970667358221220108e82a0181273308249310431ec73d7c69408178895ba988e5550b1cdffd84164736f6c63430008130033","sourceMap":"1532:11312:72:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4444:197;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:145;;1185:22;1167:41;;1155:2;1140:18;4444:197:72;1027:187:145;3255:106:72;3342:12;;3255:106;;;1365:25:145;;;1353:2;1338:18;3255:106:72;1219:177:145;5203:256:72;;;;;;:::i;:::-;;:::i;3104:91::-;;;3186:2;1876:36:145;;1864:2;1849:18;3104:91:72;1734:184:145;5854:234:72;;;;;;:::i;:::-;;:::i;3419:125::-;;;;;;:::i;:::-;-1:-1:-1;;;;;3519:18:72;3493:7;3519:18;;;;;;;;;;;;3419:125;2369:102;;;:::i;6575:427::-;;;;;;:::i;:::-;;:::i;3740:189::-;;;;;;:::i;:::-;;:::i;3987:149::-;;;;;;:::i;:::-;-1:-1:-1;;;;;4102:18:72;;;4076:7;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;3987:149;2158:98;2212:13;2244:5;2237:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2158:98;:::o;4444:197::-;4527:4;719:10:80;4581:32:72;719:10:80;4597:7:72;4606:6;4581:8;:32::i;:::-;4630:4;4623:11;;;4444:197;;;;;:::o;5203:256::-;5300:4;719:10:80;5356:38:72;5372:4;719:10:80;5387:6:72;5356:15;:38::i;:::-;5404:27;5414:4;5420:2;5424:6;5404:9;:27::i;:::-;-1:-1:-1;5448:4:72;;5203:256;-1:-1:-1;;;;5203:256:72:o;5854:234::-;719:10:80;5942:4:72;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:72;;;;;;;;;;5942:4;;719:10:80;5996:64:72;;719:10:80;;4102:27:72;;6021:38;;6049:10;;6021:38;:::i;:::-;5996:8;:64::i;2369:102::-;2425:13;2457:7;2450:14;;;;;:::i;6575:427::-;719:10:80;6668:4:72;4102:18;;;:11;:18;;;;;;;;-1:-1:-1;;;;;4102:27:72;;;;;;;;;;6668:4;;719:10:80;6812:15:72;6792:16;:35;;6784:85;;;;-1:-1:-1;;;6784:85:72;;3307:2:145;6784:85:72;;;3289:21:145;3346:2;3326:18;;;3319:30;3385:34;3365:18;;;3358:62;3456:7;3436:18;;;3429:35;3481:19;;6784:85:72;;;;;;;;;6903:60;6912:5;6919:7;6947:15;6928:16;:34;6903:8;:60::i;3740:189::-;3819:4;719:10:80;3873:28:72;719:10:80;3890:2:72;3894:6;3873:9;:28::i;10457:340::-;-1:-1:-1;;;;;10558:19:72;;10550:68;;;;-1:-1:-1;;;10550:68:72;;3713:2:145;10550:68:72;;;3695:21:145;3752:2;3732:18;;;3725:30;3791:34;3771:18;;;3764:62;3862:6;3842:18;;;3835:34;3886:19;;10550:68:72;3511:400:145;10550:68:72;-1:-1:-1;;;;;10636:21:72;;10628:68;;;;-1:-1:-1;;;10628:68:72;;4118:2:145;10628:68:72;;;4100:21:145;4157:2;4137:18;;;4130:30;4196:34;4176:18;;;4169:62;4267:4;4247:18;;;4240:32;4289:19;;10628:68:72;3916:398:145;10628:68:72;-1:-1:-1;;;;;10707:18:72;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;10758:32;;1365:25:145;;;10758:32:72;;1338:18:145;10758:32:72;;;;;;;10457:340;;;:::o;11078:411::-;-1:-1:-1;;;;;4102:18:72;;;11178:24;4102:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;-1:-1:-1;;11244:37:72;;11240:243;;11325:6;11305:16;:26;;11297:68;;;;-1:-1:-1;;;11297:68:72;;4521:2:145;11297:68:72;;;4503:21:145;4560:2;4540:18;;;4533:30;4599:31;4579:18;;;4572:59;4648:18;;11297:68:72;4319:353:145;11297:68:72;11407:51;11416:5;11423:7;11451:6;11432:16;:25;11407:8;:51::i;:::-;11168:321;11078:411;;;:::o;7456:788::-;-1:-1:-1;;;;;7552:18:72;;7544:68;;;;-1:-1:-1;;;7544:68:72;;4879:2:145;7544:68:72;;;4861:21:145;4918:2;4898:18;;;4891:30;4957:34;4937:18;;;4930:62;5028:7;5008:18;;;5001:35;5053:19;;7544:68:72;4677:401:145;7544:68:72;-1:-1:-1;;;;;7630:16:72;;7622:64;;;;-1:-1:-1;;;7622:64:72;;5285:2:145;7622:64:72;;;5267:21:145;5324:2;5304:18;;;5297:30;5363:34;5343:18;;;5336:62;5434:5;5414:18;;;5407:33;5457:19;;7622:64:72;5083:399:145;7622:64:72;-1:-1:-1;;;;;7768:15:72;;7746:19;7768:15;;;;;;;;;;;7801:21;;;;7793:72;;;;-1:-1:-1;;;7793:72:72;;5689:2:145;7793:72:72;;;5671:21:145;5728:2;5708:18;;;5701:30;5767:34;5747:18;;;5740:62;5838:8;5818:18;;;5811:36;5864:19;;7793:72:72;5487:402:145;7793:72:72;-1:-1:-1;;;;;7899:15:72;;;:9;:15;;;;;;;;;;;7917:20;;;7899:38;;8114:13;;;;;;;;;;:23;;;;;;8163:26;;1365:25:145;;;8114:13:72;;8163:26;;1338:18:145;8163:26:72;;;;;;;8200:37;12073:91;14:548:145;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:145;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:145:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;1923:186::-;1982:6;2035:2;2023:9;2014:7;2010:23;2006:32;2003:52;;;2051:1;2048;2041:12;2003:52;2074:29;2093:9;2074:29;:::i;:::-;2064:39;1923:186;-1:-1:-1;;;1923:186:145:o;2114:260::-;2182:6;2190;2243:2;2231:9;2222:7;2218:23;2214:32;2211:52;;;2259:1;2256;2249:12;2211:52;2282:29;2301:9;2282:29;:::i;:::-;2272:39;;2330:38;2364:2;2353:9;2349:18;2330:38;:::i;:::-;2320:48;;2114:260;;;;;:::o;2379:437::-;2458:1;2454:12;;;;2501;;;2522:61;;2576:4;2568:6;2564:17;2554:27;;2522:61;2629:2;2621:6;2618:14;2598:18;2595:38;2592:218;;-1:-1:-1;;;2663:1:145;2656:88;2767:4;2764:1;2757:15;2795:4;2792:1;2785:15;2592:218;;2379:437;;;:::o;2821:279::-;2886:9;;;2907:10;;;2904:190;;;-1:-1:-1;;;2947:1:145;2940:88;3051:4;3048:1;3041:15;3079:4;3076:1;3069:15","linkReferences":{}},"methodIdentifiers":{"allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","increaseAllowance(address,uint256)":"39509351","name()":"06fdde03","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"amount\",\"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\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"subtractedValue\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"addedValue\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Implementation of the {IERC20} interface. This implementation is agnostic to the way tokens are created. This means that a supply mechanism has to be added in a derived contract using {_mint}. For a generic mechanism see {ERC20PresetMinterPauser}. TIP: For a detailed writeup see our guide https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How to implement supply mechanisms]. The default value of {decimals} is 18. To change this, you should override this function so it returns a different value. We have followed general OpenZeppelin Contracts guidelines: functions revert instead returning `false` on failure. This behavior is nonetheless conventional and does not conflict with the expectations of ERC20 applications. Additionally, an {Approval} event is emitted on calls to {transferFrom}. This allows applications to reconstruct the allowance for all accounts just by listening to said events. Other implementations of the EIP may not emit these events, as it isn't required by the specification. Finally, the non-standard {decreaseAllowance} and {increaseAllowance} functions have been added to mitigate the well-known issues around setting allowances. See {IERC20-approve}.\",\"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\":\"See {IERC20-allowance}.\"},\"approve(address,uint256)\":{\"details\":\"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address.\"},\"balanceOf(address)\":{\"details\":\"See {IERC20-balanceOf}.\"},\"constructor\":{\"details\":\"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction.\"},\"decimals()\":{\"details\":\"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token, usually a shorter version of the name.\"},\"totalSupply()\":{\"details\":\"See {IERC20-totalSupply}.\"},\"transfer(address,uint256)\":{\"details\":\"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":\"ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"allowance(address,address)":{"details":"See {IERC20-allowance}."},"approve(address,uint256)":{"details":"See {IERC20-approve}. NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on `transferFrom`. This is semantically equivalent to an infinite approval. Requirements: - `spender` cannot be the zero address."},"balanceOf(address)":{"details":"See {IERC20-balanceOf}."},"constructor":{"details":"Sets the values for {name} and {symbol}. All two of these values are immutable: they can only be set once during construction."},"decimals()":{"details":"Returns the number of decimals used to get its user representation. For example, if `decimals` equals `2`, a balance of `505` tokens should be displayed to a user as `5.05` (`505 / 10 ** 2`). Tokens usually opt for a value of 18, imitating the relationship between Ether and Wei. This is the default value returned by this function, unless it's overridden. NOTE: This information is only used for _display_ purposes: it in no way affects any of the arithmetic of the contract, including {IERC20-balanceOf} and {IERC20-transfer}."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address. - `spender` must have allowance for the caller of at least `subtractedValue`."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. This is an alternative to {approve} that can be used as a mitigation for problems described in {IERC20-approve}. Emits an {Approval} event indicating the updated allowance. Requirements: - `spender` cannot be the zero address."},"name()":{"details":"Returns the name of the token."},"symbol()":{"details":"Returns the symbol of the token, usually a shorter version of the name."},"totalSupply()":{"details":"See {IERC20-totalSupply}."},"transfer(address,uint256)":{"details":"See {IERC20-transfer}. Requirements: - `to` cannot be the zero address. - the caller must have a balance of at least `amount`."},"transferFrom(address,address,uint256)":{"details":"See {IERC20-transferFrom}. Emits an {Approval} event indicating the updated allowance. This is not required by the EIP. See the note at the beginning of {ERC20}. NOTE: Does not update the allowance if the current allowance is the maximum `uint256`. Requirements: - `from` and `to` cannot be the zero address. - `from` must have a balance of at least `amount`. - the caller must have allowance for ``from``'s tokens of at least `amount`."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":"ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":56251,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_balances","offset":0,"slot":"0","type":"t_mapping(t_address,t_uint256)"},{"astId":56257,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_allowances","offset":0,"slot":"1","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":56259,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_totalSupply","offset":0,"slot":"2","type":"t_uint256"},{"astId":56261,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_name","offset":0,"slot":"3","type":"t_string_storage"},{"astId":56263,"contract":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol:ERC20","label":"_symbol","offset":0,"slot":"4","type":"t_string_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol","id":56823,"exportedSymbols":{"Context":[57734],"ERC20":[56822],"IERC20":[56900],"IERC20Metadata":[56925]},"nodeType":"SourceUnit","src":"105:12740:72","nodes":[{"id":56237,"nodeType":"PragmaDirective","src":"105:23:72","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56238,"nodeType":"ImportDirective","src":"130:22:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"./IERC20.sol","nameLocation":"-1:-1:-1","scope":56823,"sourceUnit":56901,"symbolAliases":[],"unitAlias":""},{"id":56239,"nodeType":"ImportDirective","src":"153:41:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol","file":"./extensions/IERC20Metadata.sol","nameLocation":"-1:-1:-1","scope":56823,"sourceUnit":56926,"symbolAliases":[],"unitAlias":""},{"id":56240,"nodeType":"ImportDirective","src":"195:33:72","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Context.sol","file":"../../utils/Context.sol","nameLocation":"-1:-1:-1","scope":56823,"sourceUnit":57735,"symbolAliases":[],"unitAlias":""},{"id":56822,"nodeType":"ContractDefinition","src":"1532:11312:72","nodes":[{"id":56251,"nodeType":"VariableDeclaration","src":"1588:45:72","nodes":[],"constant":false,"mutability":"mutable","name":"_balances","nameLocation":"1624:9:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":56250,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56248,"name":"address","nodeType":"ElementaryTypeName","src":"1596:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1588:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56249,"name":"uint256","nodeType":"ElementaryTypeName","src":"1607:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"private"},{"id":56257,"nodeType":"VariableDeclaration","src":"1640:67:72","nodes":[],"constant":false,"mutability":"mutable","name":"_allowances","nameLocation":"1696:11:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":56256,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56252,"name":"address","nodeType":"ElementaryTypeName","src":"1648:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1640:47:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56255,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":56253,"name":"address","nodeType":"ElementaryTypeName","src":"1667:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1659:27:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":56254,"name":"uint256","nodeType":"ElementaryTypeName","src":"1678:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"private"},{"id":56259,"nodeType":"VariableDeclaration","src":"1714:28:72","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1730:12:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56258,"name":"uint256","nodeType":"ElementaryTypeName","src":"1714:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":56261,"nodeType":"VariableDeclaration","src":"1749:20:72","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"1764:5:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":56260,"name":"string","nodeType":"ElementaryTypeName","src":"1749:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":56263,"nodeType":"VariableDeclaration","src":"1775:22:72","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"1790:7:72","scope":56822,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":56262,"name":"string","nodeType":"ElementaryTypeName","src":"1775:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":56280,"nodeType":"FunctionDefinition","src":"1980:113:72","nodes":[],"body":{"id":56279,"nodeType":"Block","src":"2036:57:72","nodes":[],"statements":[{"expression":{"id":56273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56271,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"2046:5:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56272,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56266,"src":"2054:5:72","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2046:13:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56274,"nodeType":"ExpressionStatement","src":"2046:13:72"},{"expression":{"id":56277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56275,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2069:7:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56276,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56268,"src":"2079:7:72","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2069:17:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":56278,"nodeType":"ExpressionStatement","src":"2069:17:72"}]},"documentation":{"id":56264,"nodeType":"StructuredDocumentation","src":"1804:171:72","text":" @dev Sets the values for {name} and {symbol}.\n All two of these values are immutable: they can only be set once during\n construction."},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":56269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56266,"mutability":"mutable","name":"name_","nameLocation":"2006:5:72","nodeType":"VariableDeclaration","scope":56280,"src":"1992:19:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56265,"name":"string","nodeType":"ElementaryTypeName","src":"1992:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":56268,"mutability":"mutable","name":"symbol_","nameLocation":"2027:7:72","nodeType":"VariableDeclaration","scope":56280,"src":"2013:21:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56267,"name":"string","nodeType":"ElementaryTypeName","src":"2013:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1991:44:72"},"returnParameters":{"id":56270,"nodeType":"ParameterList","parameters":[],"src":"2036:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":56290,"nodeType":"FunctionDefinition","src":"2158:98:72","nodes":[],"body":{"id":56289,"nodeType":"Block","src":"2227:29:72","nodes":[],"statements":[{"expression":{"id":56287,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56261,"src":"2244:5:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":56286,"id":56288,"nodeType":"Return","src":"2237:12:72"}]},"baseFunctions":[56912],"documentation":{"id":56281,"nodeType":"StructuredDocumentation","src":"2099:54:72","text":" @dev Returns the name of the token."},"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"2167:4:72","overrides":{"id":56283,"nodeType":"OverrideSpecifier","overrides":[],"src":"2194:8:72"},"parameters":{"id":56282,"nodeType":"ParameterList","parameters":[],"src":"2171:2:72"},"returnParameters":{"id":56286,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56285,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56290,"src":"2212:13:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56284,"name":"string","nodeType":"ElementaryTypeName","src":"2212:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2211:15:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56300,"nodeType":"FunctionDefinition","src":"2369:102:72","nodes":[],"body":{"id":56299,"nodeType":"Block","src":"2440:31:72","nodes":[],"statements":[{"expression":{"id":56297,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56263,"src":"2457:7:72","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":56296,"id":56298,"nodeType":"Return","src":"2450:14:72"}]},"baseFunctions":[56918],"documentation":{"id":56291,"nodeType":"StructuredDocumentation","src":"2262:102:72","text":" @dev Returns the symbol of the token, usually a shorter version of the\n name."},"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"2378:6:72","overrides":{"id":56293,"nodeType":"OverrideSpecifier","overrides":[],"src":"2407:8:72"},"parameters":{"id":56292,"nodeType":"ParameterList","parameters":[],"src":"2384:2:72"},"returnParameters":{"id":56296,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56295,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56300,"src":"2425:13:72","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":56294,"name":"string","nodeType":"ElementaryTypeName","src":"2425:6:72","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2424:15:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56310,"nodeType":"FunctionDefinition","src":"3104:91:72","nodes":[],"body":{"id":56309,"nodeType":"Block","src":"3169:26:72","nodes":[],"statements":[{"expression":{"hexValue":"3138","id":56307,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3186:2:72","typeDescriptions":{"typeIdentifier":"t_rational_18_by_1","typeString":"int_const 18"},"value":"18"},"functionReturnParameters":56306,"id":56308,"nodeType":"Return","src":"3179:9:72"}]},"baseFunctions":[56924],"documentation":{"id":56301,"nodeType":"StructuredDocumentation","src":"2477:622:72","text":" @dev Returns the number of decimals used to get its user representation.\n For example, if `decimals` equals `2`, a balance of `505` tokens should\n be displayed to a user as `5.05` (`505 / 10 ** 2`).\n Tokens usually opt for a value of 18, imitating the relationship between\n Ether and Wei. This is the default value returned by this function, unless\n it's overridden.\n NOTE: This information is only used for _display_ purposes: it in\n no way affects any of the arithmetic of the contract, including\n {IERC20-balanceOf} and {IERC20-transfer}."},"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"3113:8:72","overrides":{"id":56303,"nodeType":"OverrideSpecifier","overrides":[],"src":"3144:8:72"},"parameters":{"id":56302,"nodeType":"ParameterList","parameters":[],"src":"3121:2:72"},"returnParameters":{"id":56306,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56305,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56310,"src":"3162:5:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56304,"name":"uint8","nodeType":"ElementaryTypeName","src":"3162:5:72","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"3161:7:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56320,"nodeType":"FunctionDefinition","src":"3255:106:72","nodes":[],"body":{"id":56319,"nodeType":"Block","src":"3325:36:72","nodes":[],"statements":[{"expression":{"id":56317,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56259,"src":"3342:12:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56316,"id":56318,"nodeType":"Return","src":"3335:19:72"}]},"baseFunctions":[56849],"documentation":{"id":56311,"nodeType":"StructuredDocumentation","src":"3201:49:72","text":" @dev See {IERC20-totalSupply}."},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"3264:11:72","overrides":{"id":56313,"nodeType":"OverrideSpecifier","overrides":[],"src":"3298:8:72"},"parameters":{"id":56312,"nodeType":"ParameterList","parameters":[],"src":"3275:2:72"},"returnParameters":{"id":56316,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56315,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56320,"src":"3316:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56314,"name":"uint256","nodeType":"ElementaryTypeName","src":"3316:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3315:9:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56334,"nodeType":"FunctionDefinition","src":"3419:125:72","nodes":[],"body":{"id":56333,"nodeType":"Block","src":"3502:42:72","nodes":[],"statements":[{"expression":{"baseExpression":{"id":56329,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"3519:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56331,"indexExpression":{"id":56330,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56323,"src":"3529:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3519:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56328,"id":56332,"nodeType":"Return","src":"3512:25:72"}]},"baseFunctions":[56857],"documentation":{"id":56321,"nodeType":"StructuredDocumentation","src":"3367:47:72","text":" @dev See {IERC20-balanceOf}."},"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"3428:9:72","overrides":{"id":56325,"nodeType":"OverrideSpecifier","overrides":[],"src":"3475:8:72"},"parameters":{"id":56324,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56323,"mutability":"mutable","name":"account","nameLocation":"3446:7:72","nodeType":"VariableDeclaration","scope":56334,"src":"3438:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56322,"name":"address","nodeType":"ElementaryTypeName","src":"3438:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3437:17:72"},"returnParameters":{"id":56328,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56327,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56334,"src":"3493:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56326,"name":"uint256","nodeType":"ElementaryTypeName","src":"3493:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3492:9:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56359,"nodeType":"FunctionDefinition","src":"3740:189:72","nodes":[],"body":{"id":56358,"nodeType":"Block","src":"3825:104:72","nodes":[],"statements":[{"assignments":[56346],"declarations":[{"constant":false,"id":56346,"mutability":"mutable","name":"owner","nameLocation":"3843:5:72","nodeType":"VariableDeclaration","scope":56358,"src":"3835:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56345,"name":"address","nodeType":"ElementaryTypeName","src":"3835:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56349,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56347,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"3851:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56348,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3851:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"3835:28:72"},{"expression":{"arguments":[{"id":56351,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56346,"src":"3883:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56352,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56337,"src":"3890:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56353,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56339,"src":"3894:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56350,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56582,"src":"3873:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3873:28:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56355,"nodeType":"ExpressionStatement","src":"3873:28:72"},{"expression":{"hexValue":"74727565","id":56356,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3918:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56344,"id":56357,"nodeType":"Return","src":"3911:11:72"}]},"baseFunctions":[56867],"documentation":{"id":56335,"nodeType":"StructuredDocumentation","src":"3550:185:72","text":" @dev See {IERC20-transfer}.\n Requirements:\n - `to` cannot be the zero address.\n - the caller must have a balance of at least `amount`."},"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3749:8:72","overrides":{"id":56341,"nodeType":"OverrideSpecifier","overrides":[],"src":"3801:8:72"},"parameters":{"id":56340,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56337,"mutability":"mutable","name":"to","nameLocation":"3766:2:72","nodeType":"VariableDeclaration","scope":56359,"src":"3758:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56336,"name":"address","nodeType":"ElementaryTypeName","src":"3758:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56339,"mutability":"mutable","name":"amount","nameLocation":"3778:6:72","nodeType":"VariableDeclaration","scope":56359,"src":"3770:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56338,"name":"uint256","nodeType":"ElementaryTypeName","src":"3770:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3757:28:72"},"returnParameters":{"id":56344,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56343,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56359,"src":"3819:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56342,"name":"bool","nodeType":"ElementaryTypeName","src":"3819:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3818:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56377,"nodeType":"FunctionDefinition","src":"3987:149:72","nodes":[],"body":{"id":56376,"nodeType":"Block","src":"4085:51:72","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":56370,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56257,"src":"4102:11:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56372,"indexExpression":{"id":56371,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56362,"src":"4114:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:18:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56374,"indexExpression":{"id":56373,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56364,"src":"4121:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4102:27:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":56369,"id":56375,"nodeType":"Return","src":"4095:34:72"}]},"baseFunctions":[56877],"documentation":{"id":56360,"nodeType":"StructuredDocumentation","src":"3935:47:72","text":" @dev See {IERC20-allowance}."},"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"3996:9:72","overrides":{"id":56366,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:72"},"parameters":{"id":56365,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56362,"mutability":"mutable","name":"owner","nameLocation":"4014:5:72","nodeType":"VariableDeclaration","scope":56377,"src":"4006:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56361,"name":"address","nodeType":"ElementaryTypeName","src":"4006:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56364,"mutability":"mutable","name":"spender","nameLocation":"4029:7:72","nodeType":"VariableDeclaration","scope":56377,"src":"4021:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56363,"name":"address","nodeType":"ElementaryTypeName","src":"4021:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4005:32:72"},"returnParameters":{"id":56369,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56368,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56377,"src":"4076:7:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56367,"name":"uint256","nodeType":"ElementaryTypeName","src":"4076:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4075:9:72"},"scope":56822,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":56402,"nodeType":"FunctionDefinition","src":"4444:197:72","nodes":[],"body":{"id":56401,"nodeType":"Block","src":"4533:108:72","nodes":[],"statements":[{"assignments":[56389],"declarations":[{"constant":false,"id":56389,"mutability":"mutable","name":"owner","nameLocation":"4551:5:72","nodeType":"VariableDeclaration","scope":56401,"src":"4543:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56388,"name":"address","nodeType":"ElementaryTypeName","src":"4543:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56392,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56390,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"4559:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56391,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4559:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4543:28:72"},{"expression":{"arguments":[{"id":56394,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56389,"src":"4590:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56395,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56380,"src":"4597:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56396,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56382,"src":"4606:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56393,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"4581:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4581:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56398,"nodeType":"ExpressionStatement","src":"4581:32:72"},{"expression":{"hexValue":"74727565","id":56399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4630:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56387,"id":56400,"nodeType":"Return","src":"4623:11:72"}]},"baseFunctions":[56887],"documentation":{"id":56378,"nodeType":"StructuredDocumentation","src":"4142:297:72","text":" @dev See {IERC20-approve}.\n NOTE: If `amount` is the maximum `uint256`, the allowance is not updated on\n `transferFrom`. This is semantically equivalent to an infinite approval.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"4453:7:72","overrides":{"id":56384,"nodeType":"OverrideSpecifier","overrides":[],"src":"4509:8:72"},"parameters":{"id":56383,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56380,"mutability":"mutable","name":"spender","nameLocation":"4469:7:72","nodeType":"VariableDeclaration","scope":56402,"src":"4461:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56379,"name":"address","nodeType":"ElementaryTypeName","src":"4461:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56382,"mutability":"mutable","name":"amount","nameLocation":"4486:6:72","nodeType":"VariableDeclaration","scope":56402,"src":"4478:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56381,"name":"uint256","nodeType":"ElementaryTypeName","src":"4478:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4460:33:72"},"returnParameters":{"id":56387,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56386,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56402,"src":"4527:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56385,"name":"bool","nodeType":"ElementaryTypeName","src":"4527:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"4526:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56435,"nodeType":"FunctionDefinition","src":"5203:256:72","nodes":[],"body":{"id":56434,"nodeType":"Block","src":"5306:153:72","nodes":[],"statements":[{"assignments":[56416],"declarations":[{"constant":false,"id":56416,"mutability":"mutable","name":"spender","nameLocation":"5324:7:72","nodeType":"VariableDeclaration","scope":56434,"src":"5316:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56415,"name":"address","nodeType":"ElementaryTypeName","src":"5316:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56419,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56417,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"5334:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5334:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5316:30:72"},{"expression":{"arguments":[{"id":56421,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56405,"src":"5372:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56422,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56416,"src":"5378:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56423,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56409,"src":"5387:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56420,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56799,"src":"5356:15:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5356:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56425,"nodeType":"ExpressionStatement","src":"5356:38:72"},{"expression":{"arguments":[{"id":56427,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56405,"src":"5414:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56428,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56407,"src":"5420:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56429,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56409,"src":"5424:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56426,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56582,"src":"5404:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56430,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5404:27:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56431,"nodeType":"ExpressionStatement","src":"5404:27:72"},{"expression":{"hexValue":"74727565","id":56432,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"5448:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56414,"id":56433,"nodeType":"Return","src":"5441:11:72"}]},"baseFunctions":[56899],"documentation":{"id":56403,"nodeType":"StructuredDocumentation","src":"4647:551:72","text":" @dev See {IERC20-transferFrom}.\n Emits an {Approval} event indicating the updated allowance. This is not\n required by the EIP. See the note at the beginning of {ERC20}.\n NOTE: Does not update the allowance if the current allowance\n is the maximum `uint256`.\n Requirements:\n - `from` and `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`.\n - the caller must have allowance for ``from``'s tokens of at least\n `amount`."},"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"5212:12:72","overrides":{"id":56411,"nodeType":"OverrideSpecifier","overrides":[],"src":"5282:8:72"},"parameters":{"id":56410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56405,"mutability":"mutable","name":"from","nameLocation":"5233:4:72","nodeType":"VariableDeclaration","scope":56435,"src":"5225:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56404,"name":"address","nodeType":"ElementaryTypeName","src":"5225:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56407,"mutability":"mutable","name":"to","nameLocation":"5247:2:72","nodeType":"VariableDeclaration","scope":56435,"src":"5239:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56406,"name":"address","nodeType":"ElementaryTypeName","src":"5239:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56409,"mutability":"mutable","name":"amount","nameLocation":"5259:6:72","nodeType":"VariableDeclaration","scope":56435,"src":"5251:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56408,"name":"uint256","nodeType":"ElementaryTypeName","src":"5251:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5224:42:72"},"returnParameters":{"id":56414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56435,"src":"5300:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56412,"name":"bool","nodeType":"ElementaryTypeName","src":"5300:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5299:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56464,"nodeType":"FunctionDefinition","src":"5854:234:72","nodes":[],"body":{"id":56463,"nodeType":"Block","src":"5948:140:72","nodes":[],"statements":[{"assignments":[56446],"declarations":[{"constant":false,"id":56446,"mutability":"mutable","name":"owner","nameLocation":"5966:5:72","nodeType":"VariableDeclaration","scope":56463,"src":"5958:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56445,"name":"address","nodeType":"ElementaryTypeName","src":"5958:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56449,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56447,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"5974:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5974:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"5958:28:72"},{"expression":{"arguments":[{"id":56451,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56446,"src":"6005:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56452,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56438,"src":"6012:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56458,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":56454,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56446,"src":"6031:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56455,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56438,"src":"6038:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56453,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56377,"src":"6021:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6021:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":56457,"name":"addedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56440,"src":"6049:10:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6021:38:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56450,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"5996:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5996:64:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56460,"nodeType":"ExpressionStatement","src":"5996:64:72"},{"expression":{"hexValue":"74727565","id":56461,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6077:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56444,"id":56462,"nodeType":"Return","src":"6070:11:72"}]},"documentation":{"id":56436,"nodeType":"StructuredDocumentation","src":"5465:384:72","text":" @dev Atomically increases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address."},"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"5863:17:72","parameters":{"id":56441,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56438,"mutability":"mutable","name":"spender","nameLocation":"5889:7:72","nodeType":"VariableDeclaration","scope":56464,"src":"5881:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56437,"name":"address","nodeType":"ElementaryTypeName","src":"5881:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56440,"mutability":"mutable","name":"addedValue","nameLocation":"5906:10:72","nodeType":"VariableDeclaration","scope":56464,"src":"5898:18:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56439,"name":"uint256","nodeType":"ElementaryTypeName","src":"5898:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5880:37:72"},"returnParameters":{"id":56444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56443,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56464,"src":"5942:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56442,"name":"bool","nodeType":"ElementaryTypeName","src":"5942:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"5941:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56505,"nodeType":"FunctionDefinition","src":"6575:427:72","nodes":[],"body":{"id":56504,"nodeType":"Block","src":"6674:328:72","nodes":[],"statements":[{"assignments":[56475],"declarations":[{"constant":false,"id":56475,"mutability":"mutable","name":"owner","nameLocation":"6692:5:72","nodeType":"VariableDeclaration","scope":56504,"src":"6684:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56474,"name":"address","nodeType":"ElementaryTypeName","src":"6684:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":56478,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":56476,"name":"_msgSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57724,"src":"6700:10:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":56477,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6700:12:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"6684:28:72"},{"assignments":[56480],"declarations":[{"constant":false,"id":56480,"mutability":"mutable","name":"currentAllowance","nameLocation":"6730:16:72","nodeType":"VariableDeclaration","scope":56504,"src":"6722:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56479,"name":"uint256","nodeType":"ElementaryTypeName","src":"6722:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56485,"initialValue":{"arguments":[{"id":56482,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56475,"src":"6759:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56483,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56467,"src":"6766:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56481,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56377,"src":"6749:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56484,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6749:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6722:52:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56489,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56487,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56480,"src":"6792:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56488,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56469,"src":"6812:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6792:35:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":56490,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6829:39:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""},"value":"ERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_f8b476f7d28209d77d4a4ac1fe36b9f8259aa1bb6bddfa6e89de7e51615cf8a8","typeString":"literal_string \"ERC20: decreased allowance below zero\""}],"id":56486,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6784:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56491,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6784:85:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56492,"nodeType":"ExpressionStatement","src":"6784:85:72"},{"id":56501,"nodeType":"UncheckedBlock","src":"6879:95:72","statements":[{"expression":{"arguments":[{"id":56494,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56475,"src":"6912:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56495,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56467,"src":"6919:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56496,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56480,"src":"6928:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56497,"name":"subtractedValue","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56469,"src":"6947:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6928:34:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56493,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"6903:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56499,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6903:60:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56500,"nodeType":"ExpressionStatement","src":"6903:60:72"}]},{"expression":{"hexValue":"74727565","id":56502,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"6991:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":56473,"id":56503,"nodeType":"Return","src":"6984:11:72"}]},"documentation":{"id":56465,"nodeType":"StructuredDocumentation","src":"6094:476:72","text":" @dev Atomically decreases the allowance granted to `spender` by the caller.\n This is an alternative to {approve} that can be used as a mitigation for\n problems described in {IERC20-approve}.\n Emits an {Approval} event indicating the updated allowance.\n Requirements:\n - `spender` cannot be the zero address.\n - `spender` must have allowance for the caller of at least\n `subtractedValue`."},"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"6584:17:72","parameters":{"id":56470,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56467,"mutability":"mutable","name":"spender","nameLocation":"6610:7:72","nodeType":"VariableDeclaration","scope":56505,"src":"6602:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56466,"name":"address","nodeType":"ElementaryTypeName","src":"6602:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56469,"mutability":"mutable","name":"subtractedValue","nameLocation":"6627:15:72","nodeType":"VariableDeclaration","scope":56505,"src":"6619:23:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56468,"name":"uint256","nodeType":"ElementaryTypeName","src":"6619:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6601:42:72"},"returnParameters":{"id":56473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56472,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56505,"src":"6668:4:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":56471,"name":"bool","nodeType":"ElementaryTypeName","src":"6668:4:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6667:6:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":56582,"nodeType":"FunctionDefinition","src":"7456:788:72","nodes":[],"body":{"id":56581,"nodeType":"Block","src":"7534:710:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56521,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56516,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7552:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56519,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7568:1:72","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":56518,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7560:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56517,"name":"address","nodeType":"ElementaryTypeName","src":"7560:7:72","typeDescriptions":{}}},"id":56520,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7560:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7552:18:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e736665722066726f6d20746865207a65726f2061646472657373","id":56522,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7572:39:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""},"value":"ERC20: transfer from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_baecc556b46f4ed0f2b4cb599d60785ac8563dd2dc0a5bf12edea1c39e5e1fea","typeString":"literal_string \"ERC20: transfer from the zero address\""}],"id":56515,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7544:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56523,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7544:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56524,"nodeType":"ExpressionStatement","src":"7544:68:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56531,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56526,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"7630:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7644:1:72","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":56528,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7636:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56527,"name":"address","nodeType":"ElementaryTypeName","src":"7636:7:72","typeDescriptions":{}}},"id":56530,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7636:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"7630:16:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220746f20746865207a65726f2061646472657373","id":56532,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7648:37:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""},"value":"ERC20: transfer to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_0557e210f7a69a685100a7e4e3d0a7024c546085cee28910fd17d0b081d9516f","typeString":"literal_string \"ERC20: transfer to the zero address\""}],"id":56525,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7622:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56533,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7622:64:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56534,"nodeType":"ExpressionStatement","src":"7622:64:72"},{"expression":{"arguments":[{"id":56536,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7718:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56537,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"7724:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56538,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"7728:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56535,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56810,"src":"7697:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7697:38:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56540,"nodeType":"ExpressionStatement","src":"7697:38:72"},{"assignments":[56542],"declarations":[{"constant":false,"id":56542,"mutability":"mutable","name":"fromBalance","nameLocation":"7754:11:72","nodeType":"VariableDeclaration","scope":56581,"src":"7746:19:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56541,"name":"uint256","nodeType":"ElementaryTypeName","src":"7746:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56546,"initialValue":{"baseExpression":{"id":56543,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"7768:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56545,"indexExpression":{"id":56544,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7778:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7768:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"7746:37:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56550,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56548,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56542,"src":"7801:11:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56549,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"7816:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7801:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365","id":56551,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7824:40:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""},"value":"ERC20: transfer amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_4107e8a8b9e94bf8ff83080ddec1c0bffe897ebc2241b89d44f66b3d274088b6","typeString":"literal_string \"ERC20: transfer amount exceeds balance\""}],"id":56547,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7793:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56552,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7793:72:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56553,"nodeType":"ExpressionStatement","src":"7793:72:72"},{"id":56568,"nodeType":"UncheckedBlock","src":"7875:273:72","statements":[{"expression":{"id":56560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56554,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"7899:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56556,"indexExpression":{"id":56555,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"7909:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"7899:15:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56557,"name":"fromBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56542,"src":"7917:11:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56558,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"7931:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7917:20:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7899:38:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56561,"nodeType":"ExpressionStatement","src":"7899:38:72"},{"expression":{"id":56566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56562,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"8114:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56564,"indexExpression":{"id":56563,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"8124:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8114:13:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56565,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"8131:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8114:23:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56567,"nodeType":"ExpressionStatement","src":"8114:23:72"}]},{"eventCall":{"arguments":[{"id":56570,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"8172:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56571,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"8178:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56572,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"8182:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56569,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"8163:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8163:26:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56574,"nodeType":"EmitStatement","src":"8158:31:72"},{"expression":{"arguments":[{"id":56576,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56508,"src":"8220:4:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56577,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56510,"src":"8226:2:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56578,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56512,"src":"8230:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56575,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56821,"src":"8200:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56579,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8200:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56580,"nodeType":"ExpressionStatement","src":"8200:37:72"}]},"documentation":{"id":56506,"nodeType":"StructuredDocumentation","src":"7008:443:72","text":" @dev Moves `amount` of tokens from `from` to `to`.\n This internal function is equivalent to {transfer}, and can be used to\n e.g. implement automatic token fees, slashing mechanisms, etc.\n Emits a {Transfer} event.\n Requirements:\n - `from` cannot be the zero address.\n - `to` cannot be the zero address.\n - `from` must have a balance of at least `amount`."},"implemented":true,"kind":"function","modifiers":[],"name":"_transfer","nameLocation":"7465:9:72","parameters":{"id":56513,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56508,"mutability":"mutable","name":"from","nameLocation":"7483:4:72","nodeType":"VariableDeclaration","scope":56582,"src":"7475:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56507,"name":"address","nodeType":"ElementaryTypeName","src":"7475:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56510,"mutability":"mutable","name":"to","nameLocation":"7497:2:72","nodeType":"VariableDeclaration","scope":56582,"src":"7489:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56509,"name":"address","nodeType":"ElementaryTypeName","src":"7489:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56512,"mutability":"mutable","name":"amount","nameLocation":"7509:6:72","nodeType":"VariableDeclaration","scope":56582,"src":"7501:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56511,"name":"uint256","nodeType":"ElementaryTypeName","src":"7501:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7474:42:72"},"returnParameters":{"id":56514,"nodeType":"ParameterList","parameters":[],"src":"7534:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56639,"nodeType":"FunctionDefinition","src":"8520:535:72","nodes":[],"body":{"id":56638,"nodeType":"Block","src":"8585:470:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56591,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8603:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8622:1:72","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":56593,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8614:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56592,"name":"address","nodeType":"ElementaryTypeName","src":"8614:7:72","typeDescriptions":{}}},"id":56595,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8614:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8603:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206d696e7420746f20746865207a65726f2061646472657373","id":56597,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"8626:33:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""},"value":"ERC20: mint to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_fc0b381caf0a47702017f3c4b358ebe3d3aff6c60ce819a8bf3ef5a95d4f202e","typeString":"literal_string \"ERC20: mint to the zero address\""}],"id":56590,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"8595:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8595:65:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56599,"nodeType":"ExpressionStatement","src":"8595:65:72"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":56603,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8700:1:72","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":56602,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8692:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56601,"name":"address","nodeType":"ElementaryTypeName","src":"8692:7:72","typeDescriptions":{}}},"id":56604,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8692:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56605,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8704:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56606,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8713:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56600,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56810,"src":"8671:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56607,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8671:49:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56608,"nodeType":"ExpressionStatement","src":"8671:49:72"},{"expression":{"id":56611,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56609,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56259,"src":"8731:12:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56610,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8747:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8731:22:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56612,"nodeType":"ExpressionStatement","src":"8731:22:72"},{"id":56619,"nodeType":"UncheckedBlock","src":"8763:175:72","statements":[{"expression":{"id":56617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56613,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"8899:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56615,"indexExpression":{"id":56614,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8909:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"8899:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":56616,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8921:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8899:28:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56618,"nodeType":"ExpressionStatement","src":"8899:28:72"}]},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":56623,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8969:1:72","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":56622,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8961:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56621,"name":"address","nodeType":"ElementaryTypeName","src":"8961:7:72","typeDescriptions":{}}},"id":56624,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8961:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56625,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"8973:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56626,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"8982:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56620,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"8952:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8952:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56628,"nodeType":"EmitStatement","src":"8947:42:72"},{"expression":{"arguments":[{"arguments":[{"hexValue":"30","id":56632,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9028:1:72","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":56631,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9020:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56630,"name":"address","nodeType":"ElementaryTypeName","src":"9020:7:72","typeDescriptions":{}}},"id":56633,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9020:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56634,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56585,"src":"9032:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56635,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56587,"src":"9041:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56629,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56821,"src":"9000:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56636,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9000:48:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56637,"nodeType":"ExpressionStatement","src":"9000:48:72"}]},"documentation":{"id":56583,"nodeType":"StructuredDocumentation","src":"8250:265:72","text":"@dev Creates `amount` tokens and assigns them to `account`, increasing\n the total supply.\n Emits a {Transfer} event with `from` set to the zero address.\n Requirements:\n - `account` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"8529:5:72","parameters":{"id":56588,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56585,"mutability":"mutable","name":"account","nameLocation":"8543:7:72","nodeType":"VariableDeclaration","scope":56639,"src":"8535:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56584,"name":"address","nodeType":"ElementaryTypeName","src":"8535:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56587,"mutability":"mutable","name":"amount","nameLocation":"8560:6:72","nodeType":"VariableDeclaration","scope":56639,"src":"8552:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56586,"name":"uint256","nodeType":"ElementaryTypeName","src":"8552:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8534:33:72"},"returnParameters":{"id":56589,"nodeType":"ParameterList","parameters":[],"src":"8585:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56711,"nodeType":"FunctionDefinition","src":"9375:659:72","nodes":[],"body":{"id":56710,"nodeType":"Block","src":"9440:594:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56648,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9458:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56651,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9477:1:72","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":56650,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9469:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56649,"name":"address","nodeType":"ElementaryTypeName","src":"9469:7:72","typeDescriptions":{}}},"id":56652,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9469:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9458:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e2066726f6d20746865207a65726f2061646472657373","id":56654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9481:35:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""},"value":"ERC20: burn from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_b16788493b576042bb52c50ed56189e0b250db113c7bfb1c3897d25cf9632d7f","typeString":"literal_string \"ERC20: burn from the zero address\""}],"id":56647,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9450:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9450:67:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56656,"nodeType":"ExpressionStatement","src":"9450:67:72"},{"expression":{"arguments":[{"id":56658,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9549:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9566:1:72","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":56660,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9558:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56659,"name":"address","nodeType":"ElementaryTypeName","src":"9558:7:72","typeDescriptions":{}}},"id":56662,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9558:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56663,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9570:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56657,"name":"_beforeTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56810,"src":"9528:20:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9528:49:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56665,"nodeType":"ExpressionStatement","src":"9528:49:72"},{"assignments":[56667],"declarations":[{"constant":false,"id":56667,"mutability":"mutable","name":"accountBalance","nameLocation":"9596:14:72","nodeType":"VariableDeclaration","scope":56710,"src":"9588:22:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56666,"name":"uint256","nodeType":"ElementaryTypeName","src":"9588:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56671,"initialValue":{"baseExpression":{"id":56668,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"9613:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56670,"indexExpression":{"id":56669,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9623:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9613:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9588:43:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56675,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56673,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56667,"src":"9649:14:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56674,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9667:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9649:24:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206275726e20616d6f756e7420657863656564732062616c616e6365","id":56676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"9675:36:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""},"value":"ERC20: burn amount exceeds balance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_149b126e7125232b4200af45303d04fba8b74653b1a295a6a561a528c33fefdd","typeString":"literal_string \"ERC20: burn amount exceeds balance\""}],"id":56672,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"9641:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:71:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56678,"nodeType":"ExpressionStatement","src":"9641:71:72"},{"id":56691,"nodeType":"UncheckedBlock","src":"9722:194:72","statements":[{"expression":{"id":56685,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":56679,"name":"_balances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56251,"src":"9746:9:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56681,"indexExpression":{"id":56680,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9756:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9746:18:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56684,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56682,"name":"accountBalance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56667,"src":"9767:14:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56683,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9784:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9767:23:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9746:44:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56686,"nodeType":"ExpressionStatement","src":"9746:44:72"},{"expression":{"id":56689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":56687,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56259,"src":"9883:12:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":56688,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9899:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9883:22:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56690,"nodeType":"ExpressionStatement","src":"9883:22:72"}]},{"eventCall":{"arguments":[{"id":56693,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9940:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:72","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":56695,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9949:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56694,"name":"address","nodeType":"ElementaryTypeName","src":"9949:7:72","typeDescriptions":{}}},"id":56697,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9949:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56698,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"9961:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56692,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56834,"src":"9931:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56699,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9931:37:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56700,"nodeType":"EmitStatement","src":"9926:42:72"},{"expression":{"arguments":[{"id":56702,"name":"account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56642,"src":"9999:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":56705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10016:1:72","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":56704,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10008:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56703,"name":"address","nodeType":"ElementaryTypeName","src":"10008:7:72","typeDescriptions":{}}},"id":56706,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10008:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56707,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56644,"src":"10020:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56701,"name":"_afterTokenTransfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56821,"src":"9979:19:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56708,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9979:48:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56709,"nodeType":"ExpressionStatement","src":"9979:48:72"}]},"documentation":{"id":56640,"nodeType":"StructuredDocumentation","src":"9061:309:72","text":" @dev Destroys `amount` tokens from `account`, reducing the\n total supply.\n Emits a {Transfer} event with `to` set to the zero address.\n Requirements:\n - `account` cannot be the zero address.\n - `account` must have at least `amount` tokens."},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"9384:5:72","parameters":{"id":56645,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56642,"mutability":"mutable","name":"account","nameLocation":"9398:7:72","nodeType":"VariableDeclaration","scope":56711,"src":"9390:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56641,"name":"address","nodeType":"ElementaryTypeName","src":"9390:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56644,"mutability":"mutable","name":"amount","nameLocation":"9415:6:72","nodeType":"VariableDeclaration","scope":56711,"src":"9407:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56643,"name":"uint256","nodeType":"ElementaryTypeName","src":"9407:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"9389:33:72"},"returnParameters":{"id":56646,"nodeType":"ParameterList","parameters":[],"src":"9440:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56756,"nodeType":"FunctionDefinition","src":"10457:340:72","nodes":[],"body":{"id":56755,"nodeType":"Block","src":"10540:257:72","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56727,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56722,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"10558:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56725,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10575:1:72","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":56724,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10567:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56723,"name":"address","nodeType":"ElementaryTypeName","src":"10567:7:72","typeDescriptions":{}}},"id":56726,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10567:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10558:19:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f76652066726f6d20746865207a65726f2061646472657373","id":56728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10579:38:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""},"value":"ERC20: approve from the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_c953f4879035ed60e766b34720f656aab5c697b141d924c283124ecedb91c208","typeString":"literal_string \"ERC20: approve from the zero address\""}],"id":56721,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10550:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56729,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10550:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56730,"nodeType":"ExpressionStatement","src":"10550:68:72"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":56737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56732,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56716,"src":"10636:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":56735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10655:1:72","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":56734,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10647:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":56733,"name":"address","nodeType":"ElementaryTypeName","src":"10647:7:72","typeDescriptions":{}}},"id":56736,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10647:10:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10636:21:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20617070726f766520746f20746865207a65726f2061646472657373","id":56738,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"10659:36:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""},"value":"ERC20: approve to the zero address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_24883cc5fe64ace9d0df1893501ecb93c77180f0ff69cca79affb3c316dc8029","typeString":"literal_string \"ERC20: approve to the zero address\""}],"id":56731,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"10628:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10628:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56740,"nodeType":"ExpressionStatement","src":"10628:68:72"},{"expression":{"id":56747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":56741,"name":"_allowances","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56257,"src":"10707:11:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":56744,"indexExpression":{"id":56742,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"10719:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10707:18:72","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":56745,"indexExpression":{"id":56743,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56716,"src":"10726:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"10707:27:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":56746,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56718,"src":"10737:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10707:36:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":56748,"nodeType":"ExpressionStatement","src":"10707:36:72"},{"eventCall":{"arguments":[{"id":56750,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56714,"src":"10767:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56751,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56716,"src":"10774:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56752,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56718,"src":"10783:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56749,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56843,"src":"10758:8:72","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10758:32:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56754,"nodeType":"EmitStatement","src":"10753:37:72"}]},"documentation":{"id":56712,"nodeType":"StructuredDocumentation","src":"10040:412:72","text":" @dev Sets `amount` as the allowance of `spender` over the `owner` s tokens.\n This internal function is equivalent to `approve`, and can be used to\n e.g. set automatic allowances for certain subsystems, etc.\n Emits an {Approval} event.\n Requirements:\n - `owner` cannot be the zero address.\n - `spender` cannot be the zero address."},"implemented":true,"kind":"function","modifiers":[],"name":"_approve","nameLocation":"10466:8:72","parameters":{"id":56719,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56714,"mutability":"mutable","name":"owner","nameLocation":"10483:5:72","nodeType":"VariableDeclaration","scope":56756,"src":"10475:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56713,"name":"address","nodeType":"ElementaryTypeName","src":"10475:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56716,"mutability":"mutable","name":"spender","nameLocation":"10498:7:72","nodeType":"VariableDeclaration","scope":56756,"src":"10490:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56715,"name":"address","nodeType":"ElementaryTypeName","src":"10490:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56718,"mutability":"mutable","name":"amount","nameLocation":"10515:6:72","nodeType":"VariableDeclaration","scope":56756,"src":"10507:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56717,"name":"uint256","nodeType":"ElementaryTypeName","src":"10507:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"10474:48:72"},"returnParameters":{"id":56720,"nodeType":"ParameterList","parameters":[],"src":"10540:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56799,"nodeType":"FunctionDefinition","src":"11078:411:72","nodes":[],"body":{"id":56798,"nodeType":"Block","src":"11168:321:72","nodes":[],"statements":[{"assignments":[56767],"declarations":[{"constant":false,"id":56767,"mutability":"mutable","name":"currentAllowance","nameLocation":"11186:16:72","nodeType":"VariableDeclaration","scope":56798,"src":"11178:24:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56766,"name":"uint256","nodeType":"ElementaryTypeName","src":"11178:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":56772,"initialValue":{"arguments":[{"id":56769,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56759,"src":"11215:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56770,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56761,"src":"11222:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":56768,"name":"allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56377,"src":"11205:9:72","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view returns (uint256)"}},"id":56771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11205:25:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11178:52:72"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56773,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"11244:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"arguments":[{"id":56776,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11269:7:72","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":56775,"name":"uint256","nodeType":"ElementaryTypeName","src":"11269:7:72","typeDescriptions":{}}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"}],"id":56774,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"11264:4:72","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":56777,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11264:13:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_uint256","typeString":"type(uint256)"}},"id":56778,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11278:3:72","memberName":"max","nodeType":"MemberAccess","src":"11264:17:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11244:37:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":56797,"nodeType":"IfStatement","src":"11240:243:72","trueBody":{"id":56796,"nodeType":"Block","src":"11283:200:72","statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56783,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56781,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"11305:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":56782,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56763,"src":"11325:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11305:26:72","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a20696e73756666696369656e7420616c6c6f77616e6365","id":56784,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"11333:31:72","typeDescriptions":{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""},"value":"ERC20: insufficient allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_3b6607e091cba9325f958656d2b5e0622ab7dc0eac71a26ac788cb25bc19f4fe","typeString":"literal_string \"ERC20: insufficient allowance\""}],"id":56780,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"11297:7:72","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":56785,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11297:68:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56786,"nodeType":"ExpressionStatement","src":"11297:68:72"},{"id":56795,"nodeType":"UncheckedBlock","src":"11379:94:72","statements":[{"expression":{"arguments":[{"id":56788,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56759,"src":"11416:5:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56789,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56761,"src":"11423:7:72","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":56792,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":56790,"name":"currentAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56767,"src":"11432:16:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":56791,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56763,"src":"11451:6:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11432:25:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":56787,"name":"_approve","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56756,"src":"11407:8:72","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":56793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:51:72","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56794,"nodeType":"ExpressionStatement","src":"11407:51:72"}]}]}}]},"documentation":{"id":56757,"nodeType":"StructuredDocumentation","src":"10803:270:72","text":" @dev Updates `owner` s allowance for `spender` based on spent `amount`.\n Does not update the allowance amount in case of infinite allowance.\n Revert if not enough allowance is available.\n Might emit an {Approval} event."},"implemented":true,"kind":"function","modifiers":[],"name":"_spendAllowance","nameLocation":"11087:15:72","parameters":{"id":56764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56759,"mutability":"mutable","name":"owner","nameLocation":"11111:5:72","nodeType":"VariableDeclaration","scope":56799,"src":"11103:13:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56758,"name":"address","nodeType":"ElementaryTypeName","src":"11103:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56761,"mutability":"mutable","name":"spender","nameLocation":"11126:7:72","nodeType":"VariableDeclaration","scope":56799,"src":"11118:15:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56760,"name":"address","nodeType":"ElementaryTypeName","src":"11118:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56763,"mutability":"mutable","name":"amount","nameLocation":"11143:6:72","nodeType":"VariableDeclaration","scope":56799,"src":"11135:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56762,"name":"uint256","nodeType":"ElementaryTypeName","src":"11135:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"11102:48:72"},"returnParameters":{"id":56765,"nodeType":"ParameterList","parameters":[],"src":"11168:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56810,"nodeType":"FunctionDefinition","src":"12073:91:72","nodes":[],"body":{"id":56809,"nodeType":"Block","src":"12162:2:72","nodes":[],"statements":[]},"documentation":{"id":56800,"nodeType":"StructuredDocumentation","src":"11495:573:72","text":" @dev Hook that is called before any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n will be transferred to `to`.\n - when `from` is zero, `amount` tokens will be minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens will be burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_beforeTokenTransfer","nameLocation":"12082:20:72","parameters":{"id":56807,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56802,"mutability":"mutable","name":"from","nameLocation":"12111:4:72","nodeType":"VariableDeclaration","scope":56810,"src":"12103:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56801,"name":"address","nodeType":"ElementaryTypeName","src":"12103:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56804,"mutability":"mutable","name":"to","nameLocation":"12125:2:72","nodeType":"VariableDeclaration","scope":56810,"src":"12117:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56803,"name":"address","nodeType":"ElementaryTypeName","src":"12117:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56806,"mutability":"mutable","name":"amount","nameLocation":"12137:6:72","nodeType":"VariableDeclaration","scope":56810,"src":"12129:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56805,"name":"uint256","nodeType":"ElementaryTypeName","src":"12129:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12102:42:72"},"returnParameters":{"id":56808,"nodeType":"ParameterList","parameters":[],"src":"12162:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":56821,"nodeType":"FunctionDefinition","src":"12752:90:72","nodes":[],"body":{"id":56820,"nodeType":"Block","src":"12840:2:72","nodes":[],"statements":[]},"documentation":{"id":56811,"nodeType":"StructuredDocumentation","src":"12170:577:72","text":" @dev Hook that is called after any transfer of tokens. This includes\n minting and burning.\n Calling conditions:\n - when `from` and `to` are both non-zero, `amount` of ``from``'s tokens\n has been transferred to `to`.\n - when `from` is zero, `amount` tokens have been minted for `to`.\n - when `to` is zero, `amount` of ``from``'s tokens have been burned.\n - `from` and `to` are never both zero.\n To learn more about hooks, head to xref:ROOT:extending-contracts.adoc#using-hooks[Using Hooks]."},"implemented":true,"kind":"function","modifiers":[],"name":"_afterTokenTransfer","nameLocation":"12761:19:72","parameters":{"id":56818,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56813,"mutability":"mutable","name":"from","nameLocation":"12789:4:72","nodeType":"VariableDeclaration","scope":56821,"src":"12781:12:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56812,"name":"address","nodeType":"ElementaryTypeName","src":"12781:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56815,"mutability":"mutable","name":"to","nameLocation":"12803:2:72","nodeType":"VariableDeclaration","scope":56821,"src":"12795:10:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56814,"name":"address","nodeType":"ElementaryTypeName","src":"12795:7:72","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56817,"mutability":"mutable","name":"amount","nameLocation":"12815:6:72","nodeType":"VariableDeclaration","scope":56821,"src":"12807:14:72","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56816,"name":"uint256","nodeType":"ElementaryTypeName","src":"12807:7:72","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"12780:42:72"},"returnParameters":{"id":56819,"nodeType":"ParameterList","parameters":[],"src":"12840:0:72"},"scope":56822,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":56242,"name":"Context","nameLocations":["1550:7:72"],"nodeType":"IdentifierPath","referencedDeclaration":57734,"src":"1550:7:72"},"id":56243,"nodeType":"InheritanceSpecifier","src":"1550:7:72"},{"baseName":{"id":56244,"name":"IERC20","nameLocations":["1559:6:72"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1559:6:72"},"id":56245,"nodeType":"InheritanceSpecifier","src":"1559:6:72"},{"baseName":{"id":56246,"name":"IERC20Metadata","nameLocations":["1567:14:72"],"nodeType":"IdentifierPath","referencedDeclaration":56925,"src":"1567:14:72"},"id":56247,"nodeType":"InheritanceSpecifier","src":"1567:14:72"}],"canonicalName":"ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":56241,"nodeType":"StructuredDocumentation","src":"230:1301:72","text":" @dev Implementation of the {IERC20} interface.\n This implementation is agnostic to the way tokens are created. This means\n that a supply mechanism has to be added in a derived contract using {_mint}.\n For a generic mechanism see {ERC20PresetMinterPauser}.\n TIP: For a detailed writeup see our guide\n https://forum.openzeppelin.com/t/how-to-implement-erc20-supply-mechanisms/226[How\n to implement supply mechanisms].\n The default value of {decimals} is 18. To change this, you should override\n this function so it returns a different value.\n We have followed general OpenZeppelin Contracts guidelines: functions revert\n instead returning `false` on failure. This behavior is nonetheless\n conventional and does not conflict with the expectations of ERC20\n applications.\n Additionally, an {Approval} event is emitted on calls to {transferFrom}.\n This allows applications to reconstruct the allowance for all accounts just\n by listening to said events. Other implementations of the EIP may not emit\n these events, as it isn't required by the specification.\n Finally, the non-standard {decreaseAllowance} and {increaseAllowance}\n functions have been added to mitigate the well-known issues around setting\n allowances. See {IERC20-approve}."},"fullyImplemented":true,"linearizedBaseContracts":[56822,56925,56900,57734],"name":"ERC20","nameLocation":"1541:5:72","scope":56823,"usedErrors":[]}],"license":"MIT"},"id":72} \ No newline at end of file diff --git a/pkg/contracts/out/FAllo.sol/FAllo.json b/pkg/contracts/out/FAllo.sol/FAllo.json new file mode 100644 index 000000000..adf8325f1 --- /dev/null +++ b/pkg/contracts/out/FAllo.sol/FAllo.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/interfaces/FAllo.sol\":\"FAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"pkg/contracts/src/interfaces/FAllo.sol\":{\"keccak256\":\"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458\",\"dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/interfaces/FAllo.sol":"FAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/FAllo.sol":{"keccak256":"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437","urls":["bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458","dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/interfaces/FAllo.sol","id":80224,"exportedSymbols":{"FAllo":[80223],"IAllo":[2610],"Metadata":[3098]},"nodeType":"SourceUnit","src":"42:636:134","nodes":[{"id":80184,"nodeType":"PragmaDirective","src":"42:24:134","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":80186,"nodeType":"ImportDirective","src":"68:66:134","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":80224,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":80185,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"76:5:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80188,"nodeType":"ImportDirective","src":"135:73:134","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":80224,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":80187,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"143:8:134","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80223,"nodeType":"ContractDefinition","src":"210:467:134","nodes":[{"id":80209,"nodeType":"FunctionDefinition","src":"232:301:134","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"241:28:134","parameters":{"id":80205,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80190,"mutability":"mutable","name":"_profileId","nameLocation":"287:10:134","nodeType":"VariableDeclaration","scope":80209,"src":"279:18:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":80189,"name":"bytes32","nodeType":"ElementaryTypeName","src":"279:7:134","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":80192,"mutability":"mutable","name":"_strategy","nameLocation":"315:9:134","nodeType":"VariableDeclaration","scope":80209,"src":"307:17:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80191,"name":"address","nodeType":"ElementaryTypeName","src":"307:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80194,"mutability":"mutable","name":"_initStrategyData","nameLocation":"347:17:134","nodeType":"VariableDeclaration","scope":80209,"src":"334:30:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":80193,"name":"bytes","nodeType":"ElementaryTypeName","src":"334:5:134","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":80196,"mutability":"mutable","name":"_token","nameLocation":"382:6:134","nodeType":"VariableDeclaration","scope":80209,"src":"374:14:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80195,"name":"address","nodeType":"ElementaryTypeName","src":"374:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80198,"mutability":"mutable","name":"_amount","nameLocation":"406:7:134","nodeType":"VariableDeclaration","scope":80209,"src":"398:15:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80197,"name":"uint256","nodeType":"ElementaryTypeName","src":"398:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80201,"mutability":"mutable","name":"_metadata","nameLocation":"439:9:134","nodeType":"VariableDeclaration","scope":80209,"src":"423:25:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":80200,"nodeType":"UserDefinedTypeName","pathNode":{"id":80199,"name":"Metadata","nameLocations":["423:8:134"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"423:8:134"},"referencedDeclaration":3098,"src":"423:8:134","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":80204,"mutability":"mutable","name":"_managers","nameLocation":"475:9:134","nodeType":"VariableDeclaration","scope":80209,"src":"458:26:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80202,"name":"address","nodeType":"ElementaryTypeName","src":"458:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80203,"nodeType":"ArrayTypeName","src":"458:9:134","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"269:221:134"},"returnParameters":{"id":80208,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80207,"mutability":"mutable","name":"poolId","nameLocation":"525:6:134","nodeType":"VariableDeclaration","scope":80209,"src":"517:14:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80206,"name":"uint256","nodeType":"ElementaryTypeName","src":"517:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"516:16:134"},"scope":80223,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":80214,"nodeType":"FunctionDefinition","src":"539:55:134","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"548:11:134","parameters":{"id":80210,"nodeType":"ParameterList","parameters":[],"src":"559:2:134"},"returnParameters":{"id":80213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80212,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80214,"src":"585:7:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80211,"name":"address","nodeType":"ElementaryTypeName","src":"585:7:134","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"584:9:134"},"scope":80223,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":80222,"nodeType":"FunctionDefinition","src":"599:76:134","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"608:7:134","parameters":{"id":80217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80216,"mutability":"mutable","name":"_poolId","nameLocation":"624:7:134","nodeType":"VariableDeclaration","scope":80222,"src":"616:15:134","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80215,"name":"uint256","nodeType":"ElementaryTypeName","src":"616:7:134","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"615:17:134"},"returnParameters":{"id":80221,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80220,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80222,"src":"656:17:134","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":80219,"nodeType":"UserDefinedTypeName","pathNode":{"id":80218,"name":"IAllo.Pool","nameLocations":["656:5:134","662:4:134"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"656:10:134"},"referencedDeclaration":2319,"src":"656:10:134","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"655:19:134"},"scope":80223,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[80223],"name":"FAllo","nameLocation":"220:5:134","scope":80224,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":134} \ No newline at end of file diff --git a/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json b/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json index d17f6a0d6..9421e7850 100644 --- a/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json +++ b/pkg/contracts/out/GV2ERC20.sol/GV2ERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220dcf4a257b616742cc55a8dc232d24ebfcadd50bfc9da04d6671cf6b34fde953964736f6c63430008130033","sourceMap":"290:2087:125:-:0;;;410:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;493:5;:13;501:5;493;:13;:::i;:::-;-1:-1:-1;516:7:125;:17;526:7;516;:17;:::i;:::-;-1:-1:-1;543:9:125;:21;;-1:-1:-1;;543:21:125;;;;;;;;;;;;-1:-1:-1;290:2087:125;;-1:-1:-1;290:2087:125;14:127:143;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:143;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:143;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:143:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:143;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:143;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:143;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:143;;;4142:26;4093:89;-1:-1:-1;;2897:1:143;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:143;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:143;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:143;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:143:o;:::-;290:2087:125;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220dcf4a257b616742cc55a8dc232d24ebfcadd50bfc9da04d6671cf6b34fde953964736f6c63430008130033","sourceMap":"290:2087:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:143;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:143;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:143;;;1353:2;1338:18;4847:195:13;1219:177:143;1605:189:125;;;;;;:::i;:::-;;:::i;789:98::-;871:9;;789:98;;871:9;;;;1876:36:143;;1864:2;1849:18;789:98:125;1734:184:143;17096:1062:13;;;:::i;1800:184:125:-;;;;;;:::i;:::-;;:::i;893:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;681:102:125;;;:::i;1001:106::-;;;;;;:::i;:::-;;:::i;1990:184::-;;;;;;:::i;:::-;;:::i;1451:148::-;;;;;;:::i;:::-;;:::i;1270:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1113:151:125;;;;;;:::i;:::-;;:::i;577:98::-;631:13;663:5;656:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1605:189:125:-;1702:4;1725:62;1744:17;1756:4;1744:11;:17::i;:::-;1763:15;1775:2;1763:11;:15::i;:::-;1780:6;1725:18;:62::i;:::-;1718:69;1605:189;-1:-1:-1;;;;1605:189:125:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1800:184:125:-;1897:4;1920:57;1944:20;1956:7;1944:11;:20::i;:::-;1966:10;1920:23;:57::i;:::-;1913:64;1800:184;-1:-1:-1;;;1800:184:125:o;893:102::-;959:29;965:15;977:2;965:11;:15::i;:::-;982:5;959;:29::i;:::-;893:102;;:::o;681:::-;737:13;769:7;762:14;;;;;:::i;1001:106::-;1069:31;1075:17;1087:4;1075:11;:17::i;:::-;1094:5;1069;:31::i;1990:184::-;2087:4;2110:57;2134:20;2146:7;2134:11;:20::i;:::-;2156:10;2110:23;:57::i;1451:148::-;1530:4;1553:39;1568:15;1580:2;1568:11;:15::i;:::-;1585:6;1553:14;:39::i;1270:175::-;1373:65;1389:18;1401:5;1389:11;:18::i;:::-;1409:20;1421:7;1409:11;:20::i;:::-;1431:6;1373:15;:65::i;:::-;1270:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1113:151:125:-;1204:53;1214:17;1226:4;1214:11;:17::i;:::-;1233:15;1245:2;1233:11;:15::i;:::-;1250:6;1204:9;:53::i;2180:195::-;2235:14;2352:5;2347:3;2343:15;2340:1;2337:22;2327:32;;2180:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;893:102:125;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;893:102:125;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1270:175:125;;;:::o;14:548:143:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:143:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:143;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:143;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:143:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/script/GV2ERC20.sol\":\"GV2ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/script/GV2ERC20.sol\":{\"keccak256\":\"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb\",\"dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/script/GV2ERC20.sol":"GV2ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/script/GV2ERC20.sol":{"keccak256":"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4","urls":["bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb","dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":72540,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":72542,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":72544,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/script/GV2ERC20.sol","id":72755,"exportedSymbols":{"ERC20":[4491],"GV2ERC20":[72754]},"nodeType":"SourceUnit","src":"42:2336:125","nodes":[{"id":72533,"nodeType":"PragmaDirective","src":"42:24:125","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72535,"nodeType":"ImportDirective","src":"68:50:125","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":72755,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":72534,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72754,"nodeType":"ContractDefinition","src":"290:2087:125","nodes":[{"id":72540,"nodeType":"VariableDeclaration","src":"323:21:125","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"339:5:125","scope":72754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":72539,"name":"string","nodeType":"ElementaryTypeName","src":"323:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":72542,"nodeType":"VariableDeclaration","src":"350:23:125","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"366:7:125","scope":72754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":72541,"name":"string","nodeType":"ElementaryTypeName","src":"350:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":72544,"nodeType":"VariableDeclaration","src":"379:24:125","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"394:9:125","scope":72754,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72543,"name":"uint8","nodeType":"ElementaryTypeName","src":"379:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":72566,"nodeType":"FunctionDefinition","src":"410:161:125","nodes":[],"body":{"id":72565,"nodeType":"Block","src":"483:88:125","nodes":[],"statements":[{"expression":{"id":72555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72553,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72540,"src":"493:5:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72554,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72546,"src":"501:5:125","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"493:13:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":72556,"nodeType":"ExpressionStatement","src":"493:13:125"},{"expression":{"id":72559,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72557,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72542,"src":"516:7:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72558,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72548,"src":"526:7:125","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"516:17:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":72560,"nodeType":"ExpressionStatement","src":"516:17:125"},{"expression":{"id":72563,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72561,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72544,"src":"543:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72562,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72550,"src":"555:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"543:21:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":72564,"nodeType":"ExpressionStatement","src":"543:21:125"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":72551,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72546,"mutability":"mutable","name":"name_","nameLocation":"436:5:125","nodeType":"VariableDeclaration","scope":72566,"src":"422:19:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72545,"name":"string","nodeType":"ElementaryTypeName","src":"422:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":72548,"mutability":"mutable","name":"symbol_","nameLocation":"457:7:125","nodeType":"VariableDeclaration","scope":72566,"src":"443:21:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72547,"name":"string","nodeType":"ElementaryTypeName","src":"443:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":72550,"mutability":"mutable","name":"decimals_","nameLocation":"472:9:125","nodeType":"VariableDeclaration","scope":72566,"src":"466:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72549,"name":"uint8","nodeType":"ElementaryTypeName","src":"466:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"421:61:125"},"returnParameters":{"id":72552,"nodeType":"ParameterList","parameters":[],"src":"483:0:125"},"scope":72754,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":72575,"nodeType":"FunctionDefinition","src":"577:98:125","nodes":[],"body":{"id":72574,"nodeType":"Block","src":"646:29:125","nodes":[],"statements":[{"expression":{"id":72572,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72540,"src":"663:5:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":72571,"id":72573,"nodeType":"Return","src":"656:12:125"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"586:4:125","overrides":{"id":72568,"nodeType":"OverrideSpecifier","overrides":[],"src":"613:8:125"},"parameters":{"id":72567,"nodeType":"ParameterList","parameters":[],"src":"590:2:125"},"returnParameters":{"id":72571,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72570,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72575,"src":"631:13:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72569,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"630:15:125"},"scope":72754,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72584,"nodeType":"FunctionDefinition","src":"681:102:125","nodes":[],"body":{"id":72583,"nodeType":"Block","src":"752:31:125","nodes":[],"statements":[{"expression":{"id":72581,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72542,"src":"769:7:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":72580,"id":72582,"nodeType":"Return","src":"762:14:125"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"690:6:125","overrides":{"id":72577,"nodeType":"OverrideSpecifier","overrides":[],"src":"719:8:125"},"parameters":{"id":72576,"nodeType":"ParameterList","parameters":[],"src":"696:2:125"},"returnParameters":{"id":72580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72579,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72584,"src":"737:13:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72578,"name":"string","nodeType":"ElementaryTypeName","src":"737:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"736:15:125"},"scope":72754,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72593,"nodeType":"FunctionDefinition","src":"789:98:125","nodes":[],"body":{"id":72592,"nodeType":"Block","src":"854:33:125","nodes":[],"statements":[{"expression":{"id":72590,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72544,"src":"871:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":72589,"id":72591,"nodeType":"Return","src":"864:16:125"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"798:8:125","overrides":{"id":72586,"nodeType":"OverrideSpecifier","overrides":[],"src":"829:8:125"},"parameters":{"id":72585,"nodeType":"ParameterList","parameters":[],"src":"806:2:125"},"returnParameters":{"id":72589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72588,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72593,"src":"847:5:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72587,"name":"uint8","nodeType":"ElementaryTypeName","src":"847:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"846:7:125"},"scope":72754,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72608,"nodeType":"FunctionDefinition","src":"893:102:125","nodes":[],"body":{"id":72607,"nodeType":"Block","src":"949:46:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72602,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72595,"src":"977:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72601,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"965:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"965:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72604,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72597,"src":"982:5:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72600,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"959:5:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":72605,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"959:29:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72606,"nodeType":"ExpressionStatement","src":"959:29:125"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"902:4:125","parameters":{"id":72598,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72595,"mutability":"mutable","name":"to","nameLocation":"915:2:125","nodeType":"VariableDeclaration","scope":72608,"src":"907:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72594,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72597,"mutability":"mutable","name":"value","nameLocation":"927:5:125","nodeType":"VariableDeclaration","scope":72608,"src":"919:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72596,"name":"uint256","nodeType":"ElementaryTypeName","src":"919:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"906:27:125"},"returnParameters":{"id":72599,"nodeType":"ParameterList","parameters":[],"src":"949:0:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72623,"nodeType":"FunctionDefinition","src":"1001:106:125","nodes":[],"body":{"id":72622,"nodeType":"Block","src":"1059:48:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72617,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72610,"src":"1087:4:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72616,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1075:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72618,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1075:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72619,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72612,"src":"1094:5:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72615,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1069:5:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":72620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1069:31:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72621,"nodeType":"ExpressionStatement","src":"1069:31:125"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1010:4:125","parameters":{"id":72613,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72610,"mutability":"mutable","name":"from","nameLocation":"1023:4:125","nodeType":"VariableDeclaration","scope":72623,"src":"1015:12:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72609,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72612,"mutability":"mutable","name":"value","nameLocation":"1037:5:125","nodeType":"VariableDeclaration","scope":72623,"src":"1029:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72611,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:29:125"},"returnParameters":{"id":72614,"nodeType":"ParameterList","parameters":[],"src":"1059:0:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72643,"nodeType":"FunctionDefinition","src":"1113:151:125","nodes":[],"body":{"id":72642,"nodeType":"Block","src":"1194:70:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72634,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72625,"src":"1226:4:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72633,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1214:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72637,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72627,"src":"1245:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72636,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1233:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1233:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72639,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72629,"src":"1250:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72632,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1204:9:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":72640,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1204:53:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72641,"nodeType":"ExpressionStatement","src":"1204:53:125"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1122:14:125","parameters":{"id":72630,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72625,"mutability":"mutable","name":"from","nameLocation":"1145:4:125","nodeType":"VariableDeclaration","scope":72643,"src":"1137:12:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72624,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72627,"mutability":"mutable","name":"to","nameLocation":"1159:2:125","nodeType":"VariableDeclaration","scope":72643,"src":"1151:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72626,"name":"address","nodeType":"ElementaryTypeName","src":"1151:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72629,"mutability":"mutable","name":"amount","nameLocation":"1171:6:125","nodeType":"VariableDeclaration","scope":72643,"src":"1163:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72628,"name":"uint256","nodeType":"ElementaryTypeName","src":"1163:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1136:42:125"},"returnParameters":{"id":72631,"nodeType":"ParameterList","parameters":[],"src":"1194:0:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72663,"nodeType":"FunctionDefinition","src":"1270:175:125","nodes":[],"body":{"id":72662,"nodeType":"Block","src":"1363:82:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72654,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72645,"src":"1401:5:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72653,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1389:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1389:18:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72657,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72647,"src":"1421:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72656,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1409:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72659,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72649,"src":"1431:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72652,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1373:15:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":72660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:65:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72661,"nodeType":"ExpressionStatement","src":"1373:65:125"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1279:20:125","parameters":{"id":72650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72645,"mutability":"mutable","name":"owner","nameLocation":"1308:5:125","nodeType":"VariableDeclaration","scope":72663,"src":"1300:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72644,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72647,"mutability":"mutable","name":"spender","nameLocation":"1323:7:125","nodeType":"VariableDeclaration","scope":72663,"src":"1315:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72646,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72649,"mutability":"mutable","name":"amount","nameLocation":"1340:6:125","nodeType":"VariableDeclaration","scope":72663,"src":"1332:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72648,"name":"uint256","nodeType":"ElementaryTypeName","src":"1332:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1299:48:125"},"returnParameters":{"id":72651,"nodeType":"ParameterList","parameters":[],"src":"1363:0:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72682,"nodeType":"FunctionDefinition","src":"1451:148:125","nodes":[],"body":{"id":72681,"nodeType":"Block","src":"1536:63:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72676,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72665,"src":"1580:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72675,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1568:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72677,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72678,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72667,"src":"1585:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72673,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1553:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72754_$","typeString":"type(contract super GV2ERC20)"}},"id":72674,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1559:8:125","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1553:14:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:39:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72672,"id":72680,"nodeType":"Return","src":"1546:46:125"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1460:8:125","overrides":{"id":72669,"nodeType":"OverrideSpecifier","overrides":[],"src":"1512:8:125"},"parameters":{"id":72668,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72665,"mutability":"mutable","name":"to","nameLocation":"1477:2:125","nodeType":"VariableDeclaration","scope":72682,"src":"1469:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72664,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72667,"mutability":"mutable","name":"amount","nameLocation":"1489:6:125","nodeType":"VariableDeclaration","scope":72682,"src":"1481:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72666,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1468:28:125"},"returnParameters":{"id":72672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72671,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72682,"src":"1530:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72670,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1529:6:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72706,"nodeType":"FunctionDefinition","src":"1605:189:125","nodes":[],"body":{"id":72705,"nodeType":"Block","src":"1708:86:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72697,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72684,"src":"1756:4:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72696,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1744:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1744:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72700,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72686,"src":"1775:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72699,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1763:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72701,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1763:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72702,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72688,"src":"1780:6:125","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":72694,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1725:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72754_$","typeString":"type(contract super GV2ERC20)"}},"id":72695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:12:125","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1725:18:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":72703,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:62:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72693,"id":72704,"nodeType":"Return","src":"1718:69:125"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1614:12:125","overrides":{"id":72690,"nodeType":"OverrideSpecifier","overrides":[],"src":"1684:8:125"},"parameters":{"id":72689,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72684,"mutability":"mutable","name":"from","nameLocation":"1635:4:125","nodeType":"VariableDeclaration","scope":72706,"src":"1627:12:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72683,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72686,"mutability":"mutable","name":"to","nameLocation":"1649:2:125","nodeType":"VariableDeclaration","scope":72706,"src":"1641:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72685,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72688,"mutability":"mutable","name":"amount","nameLocation":"1661:6:125","nodeType":"VariableDeclaration","scope":72706,"src":"1653:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72687,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1626:42:125"},"returnParameters":{"id":72693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72706,"src":"1702:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72691,"name":"bool","nodeType":"ElementaryTypeName","src":"1702:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1701:6:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72725,"nodeType":"FunctionDefinition","src":"1800:184:125","nodes":[],"body":{"id":72724,"nodeType":"Block","src":"1903:81:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72719,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72708,"src":"1956:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72718,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"1944:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72720,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72721,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72710,"src":"1966:10:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72716,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1920:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72754_$","typeString":"type(contract super GV2ERC20)"}},"id":72717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1926:17:125","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1920:23:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72722,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:57:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72715,"id":72723,"nodeType":"Return","src":"1913:64:125"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1809:17:125","overrides":{"id":72712,"nodeType":"OverrideSpecifier","overrides":[],"src":"1879:8:125"},"parameters":{"id":72711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72708,"mutability":"mutable","name":"spender","nameLocation":"1835:7:125","nodeType":"VariableDeclaration","scope":72725,"src":"1827:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72707,"name":"address","nodeType":"ElementaryTypeName","src":"1827:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72710,"mutability":"mutable","name":"difference","nameLocation":"1852:10:125","nodeType":"VariableDeclaration","scope":72725,"src":"1844:18:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72709,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:37:125"},"returnParameters":{"id":72715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72714,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72725,"src":"1897:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72713,"name":"bool","nodeType":"ElementaryTypeName","src":"1897:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1896:6:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72744,"nodeType":"FunctionDefinition","src":"1990:184:125","nodes":[],"body":{"id":72743,"nodeType":"Block","src":"2093:81:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72738,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72727,"src":"2146:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72737,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72753,"src":"2134:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72740,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72729,"src":"2156:10:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72735,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2110:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72754_$","typeString":"type(contract super GV2ERC20)"}},"id":72736,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2116:17:125","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2110:23:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:57:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72734,"id":72742,"nodeType":"Return","src":"2103:64:125"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1999:17:125","overrides":{"id":72731,"nodeType":"OverrideSpecifier","overrides":[],"src":"2069:8:125"},"parameters":{"id":72730,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72727,"mutability":"mutable","name":"spender","nameLocation":"2025:7:125","nodeType":"VariableDeclaration","scope":72744,"src":"2017:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72726,"name":"address","nodeType":"ElementaryTypeName","src":"2017:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72729,"mutability":"mutable","name":"difference","nameLocation":"2042:10:125","nodeType":"VariableDeclaration","scope":72744,"src":"2034:18:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72728,"name":"uint256","nodeType":"ElementaryTypeName","src":"2034:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2016:37:125"},"returnParameters":{"id":72734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72733,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72744,"src":"2087:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72732,"name":"bool","nodeType":"ElementaryTypeName","src":"2087:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2086:6:125"},"scope":72754,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72753,"nodeType":"FunctionDefinition","src":"2180:195:125","nodes":[],"body":{"id":72752,"nodeType":"Block","src":"2251:124:125","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2313:56:125","statements":[{"nodeType":"YulAssignment","src":"2327:32:125","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2340:1:125"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2347:3:125","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2352:3:125"},"nodeType":"YulFunctionCall","src":"2352:5:125"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2343:3:125"},"nodeType":"YulFunctionCall","src":"2343:15:125"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2337:2:125"},"nodeType":"YulFunctionCall","src":"2337:22:125"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2327:6:125"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":72746,"isOffset":false,"isSlot":false,"src":"2340:1:125","valueSize":1},{"declaration":72749,"isOffset":false,"isSlot":false,"src":"2327:6:125","valueSize":1}],"id":72751,"nodeType":"InlineAssembly","src":"2304:65:125"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2189:11:125","parameters":{"id":72747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72746,"mutability":"mutable","name":"a","nameLocation":"2209:1:125","nodeType":"VariableDeclaration","scope":72753,"src":"2201:9:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72745,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:11:125"},"returnParameters":{"id":72750,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72749,"mutability":"mutable","name":"result","nameLocation":"2243:6:125","nodeType":"VariableDeclaration","scope":72753,"src":"2235:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72748,"name":"address","nodeType":"ElementaryTypeName","src":"2235:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2234:16:125"},"scope":72754,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":72537,"name":"ERC20","nameLocations":["311:5:125"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"311:5:125"},"id":72538,"nodeType":"InheritanceSpecifier","src":"311:5:125"}],"canonicalName":"GV2ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":72536,"nodeType":"StructuredDocumentation","src":"120:170:125","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[72754,4491],"name":"GV2ERC20","nameLocation":"299:8:125","scope":72755,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":125} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220dcf4a257b616742cc55a8dc232d24ebfcadd50bfc9da04d6671cf6b34fde953964736f6c63430008130033","sourceMap":"290:2087:125:-:0;;;410:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;493:5;:13;501:5;493;:13;:::i;:::-;-1:-1:-1;516:7:125;:17;526:7;516;:17;:::i;:::-;-1:-1:-1;543:9:125;:21;;-1:-1:-1;;543:21:125;;;;;;;;;;;;-1:-1:-1;290:2087:125;;-1:-1:-1;290:2087:125;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:145;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:145;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:145:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:145;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:145;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:145;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:145;;;4142:26;4093:89;-1:-1:-1;;2897:1:145;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:145;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:145;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:145;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:145:o;:::-;290:2087:125;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea2646970667358221220dcf4a257b616742cc55a8dc232d24ebfcadd50bfc9da04d6671cf6b34fde953964736f6c63430008130033","sourceMap":"290:2087:125:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:145;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:145;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:145;;;1353:2;1338:18;4847:195:13;1219:177:145;1605:189:125;;;;;;:::i;:::-;;:::i;789:98::-;871:9;;789:98;;871:9;;;;1876:36:145;;1864:2;1849:18;789:98:125;1734:184:145;17096:1062:13;;;:::i;1800:184:125:-;;;;;;:::i;:::-;;:::i;893:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;681:102:125;;;:::i;1001:106::-;;;;;;:::i;:::-;;:::i;1990:184::-;;;;;;:::i;:::-;;:::i;1451:148::-;;;;;;:::i;:::-;;:::i;1270:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1113:151:125;;;;;;:::i;:::-;;:::i;577:98::-;631:13;663:5;656:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;577:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1605:189:125:-;1702:4;1725:62;1744:17;1756:4;1744:11;:17::i;:::-;1763:15;1775:2;1763:11;:15::i;:::-;1780:6;1725:18;:62::i;:::-;1718:69;1605:189;-1:-1:-1;;;;1605:189:125:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1800:184:125:-;1897:4;1920:57;1944:20;1956:7;1944:11;:20::i;:::-;1966:10;1920:23;:57::i;:::-;1913:64;1800:184;-1:-1:-1;;;1800:184:125:o;893:102::-;959:29;965:15;977:2;965:11;:15::i;:::-;982:5;959;:29::i;:::-;893:102;;:::o;681:::-;737:13;769:7;762:14;;;;;:::i;1001:106::-;1069:31;1075:17;1087:4;1075:11;:17::i;:::-;1094:5;1069;:31::i;1990:184::-;2087:4;2110:57;2134:20;2146:7;2134:11;:20::i;:::-;2156:10;2110:23;:57::i;1451:148::-;1530:4;1553:39;1568:15;1580:2;1568:11;:15::i;:::-;1585:6;1553:14;:39::i;1270:175::-;1373:65;1389:18;1401:5;1389:11;:18::i;:::-;1409:20;1421:7;1409:11;:20::i;:::-;1431:6;1373:15;:65::i;:::-;1270:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1113:151:125:-;1204:53;1214:17;1226:4;1214:11;:17::i;:::-;1233:15;1245:2;1233:11;:15::i;:::-;1250:6;1204:9;:53::i;2180:195::-;2235:14;2352:5;2347:3;2343:15;2340:1;2337:22;2327:32;;2180:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;893:102:125;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;893:102:125;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1270:175:125;;;:::o;14:548:145:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:145:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:145;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:145;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:145:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/script/GV2ERC20.sol\":\"GV2ERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/script/GV2ERC20.sol\":{\"keccak256\":\"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb\",\"dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/script/GV2ERC20.sol":"GV2ERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/script/GV2ERC20.sol":{"keccak256":"0xb5e57f03d152bf6607d98527bfeb5cdf7a2493f89c8c61bd0920ee0e8dddb9f4","urls":["bzz-raw://f0b70e95f96d1dde0e7c85ed9cfde9aea1cd5d08d17d3c854ac546de4f4507cb","dweb:/ipfs/QmSAVcKhdM1n7ArqijF44tNmbRys7x1w2jdWviewFw22hE"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":72532,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":72534,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":72536,"contract":"pkg/contracts/script/GV2ERC20.sol:GV2ERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/script/GV2ERC20.sol","id":72747,"exportedSymbols":{"ERC20":[4491],"GV2ERC20":[72746]},"nodeType":"SourceUnit","src":"42:2336:125","nodes":[{"id":72525,"nodeType":"PragmaDirective","src":"42:24:125","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":72527,"nodeType":"ImportDirective","src":"68:50:125","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":72747,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":72526,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:125","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":72746,"nodeType":"ContractDefinition","src":"290:2087:125","nodes":[{"id":72532,"nodeType":"VariableDeclaration","src":"323:21:125","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"339:5:125","scope":72746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":72531,"name":"string","nodeType":"ElementaryTypeName","src":"323:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":72534,"nodeType":"VariableDeclaration","src":"350:23:125","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"366:7:125","scope":72746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":72533,"name":"string","nodeType":"ElementaryTypeName","src":"350:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":72536,"nodeType":"VariableDeclaration","src":"379:24:125","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"394:9:125","scope":72746,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72535,"name":"uint8","nodeType":"ElementaryTypeName","src":"379:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":72558,"nodeType":"FunctionDefinition","src":"410:161:125","nodes":[],"body":{"id":72557,"nodeType":"Block","src":"483:88:125","nodes":[],"statements":[{"expression":{"id":72547,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72545,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72532,"src":"493:5:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72546,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72538,"src":"501:5:125","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"493:13:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":72548,"nodeType":"ExpressionStatement","src":"493:13:125"},{"expression":{"id":72551,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72549,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72534,"src":"516:7:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72550,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72540,"src":"526:7:125","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"516:17:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":72552,"nodeType":"ExpressionStatement","src":"516:17:125"},{"expression":{"id":72555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":72553,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72536,"src":"543:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":72554,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72542,"src":"555:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"543:21:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":72556,"nodeType":"ExpressionStatement","src":"543:21:125"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":72543,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72538,"mutability":"mutable","name":"name_","nameLocation":"436:5:125","nodeType":"VariableDeclaration","scope":72558,"src":"422:19:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72537,"name":"string","nodeType":"ElementaryTypeName","src":"422:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":72540,"mutability":"mutable","name":"symbol_","nameLocation":"457:7:125","nodeType":"VariableDeclaration","scope":72558,"src":"443:21:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72539,"name":"string","nodeType":"ElementaryTypeName","src":"443:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":72542,"mutability":"mutable","name":"decimals_","nameLocation":"472:9:125","nodeType":"VariableDeclaration","scope":72558,"src":"466:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72541,"name":"uint8","nodeType":"ElementaryTypeName","src":"466:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"421:61:125"},"returnParameters":{"id":72544,"nodeType":"ParameterList","parameters":[],"src":"483:0:125"},"scope":72746,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":72567,"nodeType":"FunctionDefinition","src":"577:98:125","nodes":[],"body":{"id":72566,"nodeType":"Block","src":"646:29:125","nodes":[],"statements":[{"expression":{"id":72564,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72532,"src":"663:5:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":72563,"id":72565,"nodeType":"Return","src":"656:12:125"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"586:4:125","overrides":{"id":72560,"nodeType":"OverrideSpecifier","overrides":[],"src":"613:8:125"},"parameters":{"id":72559,"nodeType":"ParameterList","parameters":[],"src":"590:2:125"},"returnParameters":{"id":72563,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72562,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72567,"src":"631:13:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72561,"name":"string","nodeType":"ElementaryTypeName","src":"631:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"630:15:125"},"scope":72746,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72576,"nodeType":"FunctionDefinition","src":"681:102:125","nodes":[],"body":{"id":72575,"nodeType":"Block","src":"752:31:125","nodes":[],"statements":[{"expression":{"id":72573,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72534,"src":"769:7:125","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":72572,"id":72574,"nodeType":"Return","src":"762:14:125"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"690:6:125","overrides":{"id":72569,"nodeType":"OverrideSpecifier","overrides":[],"src":"719:8:125"},"parameters":{"id":72568,"nodeType":"ParameterList","parameters":[],"src":"696:2:125"},"returnParameters":{"id":72572,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72571,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72576,"src":"737:13:125","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":72570,"name":"string","nodeType":"ElementaryTypeName","src":"737:6:125","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"736:15:125"},"scope":72746,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72585,"nodeType":"FunctionDefinition","src":"789:98:125","nodes":[],"body":{"id":72584,"nodeType":"Block","src":"854:33:125","nodes":[],"statements":[{"expression":{"id":72582,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72536,"src":"871:9:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":72581,"id":72583,"nodeType":"Return","src":"864:16:125"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"798:8:125","overrides":{"id":72578,"nodeType":"OverrideSpecifier","overrides":[],"src":"829:8:125"},"parameters":{"id":72577,"nodeType":"ParameterList","parameters":[],"src":"806:2:125"},"returnParameters":{"id":72581,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72580,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72585,"src":"847:5:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":72579,"name":"uint8","nodeType":"ElementaryTypeName","src":"847:5:125","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"846:7:125"},"scope":72746,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":72600,"nodeType":"FunctionDefinition","src":"893:102:125","nodes":[],"body":{"id":72599,"nodeType":"Block","src":"949:46:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72594,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72587,"src":"977:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72593,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"965:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"965:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72596,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72589,"src":"982:5:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72592,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"959:5:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":72597,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"959:29:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72598,"nodeType":"ExpressionStatement","src":"959:29:125"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"902:4:125","parameters":{"id":72590,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72587,"mutability":"mutable","name":"to","nameLocation":"915:2:125","nodeType":"VariableDeclaration","scope":72600,"src":"907:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72586,"name":"address","nodeType":"ElementaryTypeName","src":"907:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72589,"mutability":"mutable","name":"value","nameLocation":"927:5:125","nodeType":"VariableDeclaration","scope":72600,"src":"919:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72588,"name":"uint256","nodeType":"ElementaryTypeName","src":"919:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"906:27:125"},"returnParameters":{"id":72591,"nodeType":"ParameterList","parameters":[],"src":"949:0:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72615,"nodeType":"FunctionDefinition","src":"1001:106:125","nodes":[],"body":{"id":72614,"nodeType":"Block","src":"1059:48:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72609,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72602,"src":"1087:4:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72608,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1075:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72610,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1075:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72611,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72604,"src":"1094:5:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72607,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1069:5:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":72612,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1069:31:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72613,"nodeType":"ExpressionStatement","src":"1069:31:125"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1010:4:125","parameters":{"id":72605,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72602,"mutability":"mutable","name":"from","nameLocation":"1023:4:125","nodeType":"VariableDeclaration","scope":72615,"src":"1015:12:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72601,"name":"address","nodeType":"ElementaryTypeName","src":"1015:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72604,"mutability":"mutable","name":"value","nameLocation":"1037:5:125","nodeType":"VariableDeclaration","scope":72615,"src":"1029:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72603,"name":"uint256","nodeType":"ElementaryTypeName","src":"1029:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1014:29:125"},"returnParameters":{"id":72606,"nodeType":"ParameterList","parameters":[],"src":"1059:0:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72635,"nodeType":"FunctionDefinition","src":"1113:151:125","nodes":[],"body":{"id":72634,"nodeType":"Block","src":"1194:70:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72626,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72617,"src":"1226:4:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72625,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1214:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72627,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1214:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72629,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72619,"src":"1245:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72628,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1233:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72630,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1233:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72631,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72621,"src":"1250:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72624,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1204:9:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":72632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1204:53:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72633,"nodeType":"ExpressionStatement","src":"1204:53:125"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1122:14:125","parameters":{"id":72622,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72617,"mutability":"mutable","name":"from","nameLocation":"1145:4:125","nodeType":"VariableDeclaration","scope":72635,"src":"1137:12:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72616,"name":"address","nodeType":"ElementaryTypeName","src":"1137:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72619,"mutability":"mutable","name":"to","nameLocation":"1159:2:125","nodeType":"VariableDeclaration","scope":72635,"src":"1151:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72618,"name":"address","nodeType":"ElementaryTypeName","src":"1151:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72621,"mutability":"mutable","name":"amount","nameLocation":"1171:6:125","nodeType":"VariableDeclaration","scope":72635,"src":"1163:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72620,"name":"uint256","nodeType":"ElementaryTypeName","src":"1163:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1136:42:125"},"returnParameters":{"id":72623,"nodeType":"ParameterList","parameters":[],"src":"1194:0:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72655,"nodeType":"FunctionDefinition","src":"1270:175:125","nodes":[],"body":{"id":72654,"nodeType":"Block","src":"1363:82:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72646,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72637,"src":"1401:5:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72645,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1389:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1389:18:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72649,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72639,"src":"1421:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72648,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1409:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72650,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1409:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72651,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72641,"src":"1431:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":72644,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1373:15:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":72652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1373:65:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":72653,"nodeType":"ExpressionStatement","src":"1373:65:125"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1279:20:125","parameters":{"id":72642,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72637,"mutability":"mutable","name":"owner","nameLocation":"1308:5:125","nodeType":"VariableDeclaration","scope":72655,"src":"1300:13:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72636,"name":"address","nodeType":"ElementaryTypeName","src":"1300:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72639,"mutability":"mutable","name":"spender","nameLocation":"1323:7:125","nodeType":"VariableDeclaration","scope":72655,"src":"1315:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72638,"name":"address","nodeType":"ElementaryTypeName","src":"1315:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72641,"mutability":"mutable","name":"amount","nameLocation":"1340:6:125","nodeType":"VariableDeclaration","scope":72655,"src":"1332:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72640,"name":"uint256","nodeType":"ElementaryTypeName","src":"1332:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1299:48:125"},"returnParameters":{"id":72643,"nodeType":"ParameterList","parameters":[],"src":"1363:0:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72674,"nodeType":"FunctionDefinition","src":"1451:148:125","nodes":[],"body":{"id":72673,"nodeType":"Block","src":"1536:63:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72668,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72657,"src":"1580:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72667,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1568:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1568:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72670,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72659,"src":"1585:6:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72665,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1553:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72746_$","typeString":"type(contract super GV2ERC20)"}},"id":72666,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1559:8:125","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1553:14:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1553:39:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72664,"id":72672,"nodeType":"Return","src":"1546:46:125"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1460:8:125","overrides":{"id":72661,"nodeType":"OverrideSpecifier","overrides":[],"src":"1512:8:125"},"parameters":{"id":72660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72657,"mutability":"mutable","name":"to","nameLocation":"1477:2:125","nodeType":"VariableDeclaration","scope":72674,"src":"1469:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72656,"name":"address","nodeType":"ElementaryTypeName","src":"1469:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72659,"mutability":"mutable","name":"amount","nameLocation":"1489:6:125","nodeType":"VariableDeclaration","scope":72674,"src":"1481:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72658,"name":"uint256","nodeType":"ElementaryTypeName","src":"1481:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1468:28:125"},"returnParameters":{"id":72664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72663,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72674,"src":"1530:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72662,"name":"bool","nodeType":"ElementaryTypeName","src":"1530:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1529:6:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72698,"nodeType":"FunctionDefinition","src":"1605:189:125","nodes":[],"body":{"id":72697,"nodeType":"Block","src":"1708:86:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72689,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72676,"src":"1756:4:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72688,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1744:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1744:17:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":72692,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72678,"src":"1775:2:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72691,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1763:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72693,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1763:15:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72694,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72680,"src":"1780:6:125","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":72686,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1725:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72746_$","typeString":"type(contract super GV2ERC20)"}},"id":72687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1731:12:125","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1725:18:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":72695,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1725:62:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72685,"id":72696,"nodeType":"Return","src":"1718:69:125"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1614:12:125","overrides":{"id":72682,"nodeType":"OverrideSpecifier","overrides":[],"src":"1684:8:125"},"parameters":{"id":72681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72676,"mutability":"mutable","name":"from","nameLocation":"1635:4:125","nodeType":"VariableDeclaration","scope":72698,"src":"1627:12:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72675,"name":"address","nodeType":"ElementaryTypeName","src":"1627:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72678,"mutability":"mutable","name":"to","nameLocation":"1649:2:125","nodeType":"VariableDeclaration","scope":72698,"src":"1641:10:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72677,"name":"address","nodeType":"ElementaryTypeName","src":"1641:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72680,"mutability":"mutable","name":"amount","nameLocation":"1661:6:125","nodeType":"VariableDeclaration","scope":72698,"src":"1653:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72679,"name":"uint256","nodeType":"ElementaryTypeName","src":"1653:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1626:42:125"},"returnParameters":{"id":72685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72698,"src":"1702:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72683,"name":"bool","nodeType":"ElementaryTypeName","src":"1702:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1701:6:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72717,"nodeType":"FunctionDefinition","src":"1800:184:125","nodes":[],"body":{"id":72716,"nodeType":"Block","src":"1903:81:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72711,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72700,"src":"1956:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72710,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"1944:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1944:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72713,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72702,"src":"1966:10:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72708,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1920:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72746_$","typeString":"type(contract super GV2ERC20)"}},"id":72709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1926:17:125","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1920:23:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72714,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1920:57:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72707,"id":72715,"nodeType":"Return","src":"1913:64:125"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1809:17:125","overrides":{"id":72704,"nodeType":"OverrideSpecifier","overrides":[],"src":"1879:8:125"},"parameters":{"id":72703,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72700,"mutability":"mutable","name":"spender","nameLocation":"1835:7:125","nodeType":"VariableDeclaration","scope":72717,"src":"1827:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72699,"name":"address","nodeType":"ElementaryTypeName","src":"1827:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72702,"mutability":"mutable","name":"difference","nameLocation":"1852:10:125","nodeType":"VariableDeclaration","scope":72717,"src":"1844:18:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72701,"name":"uint256","nodeType":"ElementaryTypeName","src":"1844:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1826:37:125"},"returnParameters":{"id":72707,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72706,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72717,"src":"1897:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72705,"name":"bool","nodeType":"ElementaryTypeName","src":"1897:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1896:6:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72736,"nodeType":"FunctionDefinition","src":"1990:184:125","nodes":[],"body":{"id":72735,"nodeType":"Block","src":"2093:81:125","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":72730,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72719,"src":"2146:7:125","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":72729,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72745,"src":"2134:11:125","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":72731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2134:20:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":72732,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72721,"src":"2156:10:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":72727,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2110:5:125","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_GV2ERC20_$72746_$","typeString":"type(contract super GV2ERC20)"}},"id":72728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2116:17:125","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2110:23:125","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":72733,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2110:57:125","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":72726,"id":72734,"nodeType":"Return","src":"2103:64:125"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1999:17:125","overrides":{"id":72723,"nodeType":"OverrideSpecifier","overrides":[],"src":"2069:8:125"},"parameters":{"id":72722,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72719,"mutability":"mutable","name":"spender","nameLocation":"2025:7:125","nodeType":"VariableDeclaration","scope":72736,"src":"2017:15:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72718,"name":"address","nodeType":"ElementaryTypeName","src":"2017:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":72721,"mutability":"mutable","name":"difference","nameLocation":"2042:10:125","nodeType":"VariableDeclaration","scope":72736,"src":"2034:18:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":72720,"name":"uint256","nodeType":"ElementaryTypeName","src":"2034:7:125","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2016:37:125"},"returnParameters":{"id":72726,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72725,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":72736,"src":"2087:4:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":72724,"name":"bool","nodeType":"ElementaryTypeName","src":"2087:4:125","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2086:6:125"},"scope":72746,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":72745,"nodeType":"FunctionDefinition","src":"2180:195:125","nodes":[],"body":{"id":72744,"nodeType":"Block","src":"2251:124:125","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2313:56:125","statements":[{"nodeType":"YulAssignment","src":"2327:32:125","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2340:1:125"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2347:3:125","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2352:3:125"},"nodeType":"YulFunctionCall","src":"2352:5:125"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2343:3:125"},"nodeType":"YulFunctionCall","src":"2343:15:125"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2337:2:125"},"nodeType":"YulFunctionCall","src":"2337:22:125"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2327:6:125"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":72738,"isOffset":false,"isSlot":false,"src":"2340:1:125","valueSize":1},{"declaration":72741,"isOffset":false,"isSlot":false,"src":"2327:6:125","valueSize":1}],"id":72743,"nodeType":"InlineAssembly","src":"2304:65:125"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2189:11:125","parameters":{"id":72739,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72738,"mutability":"mutable","name":"a","nameLocation":"2209:1:125","nodeType":"VariableDeclaration","scope":72745,"src":"2201:9:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72737,"name":"address","nodeType":"ElementaryTypeName","src":"2201:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2200:11:125"},"returnParameters":{"id":72742,"nodeType":"ParameterList","parameters":[{"constant":false,"id":72741,"mutability":"mutable","name":"result","nameLocation":"2243:6:125","nodeType":"VariableDeclaration","scope":72745,"src":"2235:14:125","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":72740,"name":"address","nodeType":"ElementaryTypeName","src":"2235:7:125","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2234:16:125"},"scope":72746,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":72529,"name":"ERC20","nameLocations":["311:5:125"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"311:5:125"},"id":72530,"nodeType":"InheritanceSpecifier","src":"311:5:125"}],"canonicalName":"GV2ERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":72528,"nodeType":"StructuredDocumentation","src":"120:170:125","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[72746,4491],"name":"GV2ERC20","nameLocation":"299:8:125","scope":72747,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":125} \ No newline at end of file diff --git a/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json b/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json index 15d29d617..fa310095b 100644 --- a/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json +++ b/pkg/contracts/out/IERC20Permit.sol/IERC20Permit.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all. ==== Security Considerations There are two important considerations concerning the use of `permit`. The first is that a valid permit signature expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be considered as an intention to spend the allowance in any specific way. The second is that because permits have built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be generally recommended is: ```solidity function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public { try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {} doThing(..., value); } function doThing(..., uint256 value) public { token.safeTransferFrom(msg.sender, address(this), value); ... } ``` Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also {SafeERC20-safeTransferFrom}). Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so contracts should have entry points that don't rely on permit.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]. CAUTION: See Security Considerations above."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","id":56962,"exportedSymbols":{"IERC20Permit":[56961]},"nodeType":"SourceUnit","src":"123:3679:75","nodes":[{"id":56927,"nodeType":"PragmaDirective","src":"123:23:75","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56961,"nodeType":"ContractDefinition","src":"2112:1689:75","nodes":[{"id":56946,"nodeType":"FunctionDefinition","src":"2996:183:75","nodes":[],"documentation":{"id":56929,"nodeType":"StructuredDocumentation","src":"2141:850:75","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section].\n CAUTION: See Security Considerations above."},"functionSelector":"d505accf","implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"3005:6:75","parameters":{"id":56944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56931,"mutability":"mutable","name":"owner","nameLocation":"3029:5:75","nodeType":"VariableDeclaration","scope":56946,"src":"3021:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56930,"name":"address","nodeType":"ElementaryTypeName","src":"3021:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56933,"mutability":"mutable","name":"spender","nameLocation":"3052:7:75","nodeType":"VariableDeclaration","scope":56946,"src":"3044:15:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56932,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56935,"mutability":"mutable","name":"value","nameLocation":"3077:5:75","nodeType":"VariableDeclaration","scope":56946,"src":"3069:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56934,"name":"uint256","nodeType":"ElementaryTypeName","src":"3069:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56937,"mutability":"mutable","name":"deadline","nameLocation":"3100:8:75","nodeType":"VariableDeclaration","scope":56946,"src":"3092:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56936,"name":"uint256","nodeType":"ElementaryTypeName","src":"3092:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56939,"mutability":"mutable","name":"v","nameLocation":"3124:1:75","nodeType":"VariableDeclaration","scope":56946,"src":"3118:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56938,"name":"uint8","nodeType":"ElementaryTypeName","src":"3118:5:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":56941,"mutability":"mutable","name":"r","nameLocation":"3143:1:75","nodeType":"VariableDeclaration","scope":56946,"src":"3135:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3135:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56943,"mutability":"mutable","name":"s","nameLocation":"3162:1:75","nodeType":"VariableDeclaration","scope":56946,"src":"3154:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3154:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3011:158:75"},"returnParameters":{"id":56945,"nodeType":"ParameterList","parameters":[],"src":"3178:0:75"},"scope":56961,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56954,"nodeType":"FunctionDefinition","src":"3484:63:75","nodes":[],"documentation":{"id":56947,"nodeType":"StructuredDocumentation","src":"3185:294:75","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"3493:6:75","parameters":{"id":56950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56949,"mutability":"mutable","name":"owner","nameLocation":"3508:5:75","nodeType":"VariableDeclaration","scope":56954,"src":"3500:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56948,"name":"address","nodeType":"ElementaryTypeName","src":"3500:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3499:15:75"},"returnParameters":{"id":56953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56954,"src":"3538:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56951,"name":"uint256","nodeType":"ElementaryTypeName","src":"3538:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3537:9:75"},"scope":56961,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":56960,"nodeType":"FunctionDefinition","src":"3739:60:75","nodes":[],"documentation":{"id":56955,"nodeType":"StructuredDocumentation","src":"3553:128:75","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"3748:16:75","parameters":{"id":56956,"nodeType":"ParameterList","parameters":[],"src":"3764:2:75"},"returnParameters":{"id":56959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56960,"src":"3790:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"3790:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"3789:9:75"},"scope":56961,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":56928,"nodeType":"StructuredDocumentation","src":"148:1963:75","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all.\n ==== Security Considerations\n There are two important considerations concerning the use of `permit`. The first is that a valid permit signature\n expresses an allowance, and it should not be assumed to convey additional meaning. In particular, it should not be\n considered as an intention to spend the allowance in any specific way. The second is that because permits have\n built-in replay protection and can be submitted by anyone, they can be frontrun. A protocol that uses permits should\n take this into consideration and allow a `permit` call to fail. Combining these two aspects, a pattern that may be\n generally recommended is:\n ```solidity\n function doThingWithPermit(..., uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public {\n try token.permit(msg.sender, address(this), value, deadline, v, r, s) {} catch {}\n doThing(..., value);\n }\n function doThing(..., uint256 value) public {\n token.safeTransferFrom(msg.sender, address(this), value);\n ...\n }\n ```\n Observe that: 1) `msg.sender` is used as the owner, leaving no ambiguity as to the signer intent, and 2) the use of\n `try/catch` allows the permit to fail and makes the code tolerant to frontrunning. (See also\n {SafeERC20-safeTransferFrom}).\n Additionally, note that smart contract wallets (such as Argent or Safe) are not able to produce permit signatures, so\n contracts should have entry points that don't rely on permit."},"fullyImplemented":false,"linearizedBaseContracts":[56961],"name":"IERC20Permit","nameLocation":"2122:12:75","scope":56962,"usedErrors":[]}],"license":"MIT"},"id":75} \ No newline at end of file +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in https://eips.ethereum.org/EIPS/eip-2612[EIP-2612]. Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't need to send a transaction, and thus is not required to hold Ether at all.\",\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section].\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":\"IERC20Permit\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value must be included whenever a signature is generated for {permit}. Every successful call to {permit} increases ``owner``'s nonce by one. This prevents a signature from being used multiple times."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over ``owner``'s tokens, given ``owner``'s signed approval. IMPORTANT: The same issues {IERC20-approve} has related to transaction ordering also apply here. Emits an {Approval} event. Requirements: - `spender` cannot be the zero address. - `deadline` must be a timestamp in the future. - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner` over the EIP712-formatted function arguments. - the signature must use ``owner``'s current nonce (see {nonces}). For more information on the signature format, see the https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP section]."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":"IERC20Permit"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","id":56962,"exportedSymbols":{"IERC20Permit":[56961]},"nodeType":"SourceUnit","src":"123:2138:75","nodes":[{"id":56927,"nodeType":"PragmaDirective","src":"123:23:75","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56961,"nodeType":"ContractDefinition","src":"629:1631:75","nodes":[{"id":56946,"nodeType":"FunctionDefinition","src":"1455:183:75","nodes":[],"documentation":{"id":56929,"nodeType":"StructuredDocumentation","src":"658:792:75","text":" @dev Sets `value` as the allowance of `spender` over ``owner``'s tokens,\n given ``owner``'s signed approval.\n IMPORTANT: The same issues {IERC20-approve} has related to transaction\n ordering also apply here.\n Emits an {Approval} event.\n Requirements:\n - `spender` cannot be the zero address.\n - `deadline` must be a timestamp in the future.\n - `v`, `r` and `s` must be a valid `secp256k1` signature from `owner`\n over the EIP712-formatted function arguments.\n - the signature must use ``owner``'s current nonce (see {nonces}).\n For more information on the signature format, see the\n https://eips.ethereum.org/EIPS/eip-2612#specification[relevant EIP\n section]."},"functionSelector":"d505accf","implemented":false,"kind":"function","modifiers":[],"name":"permit","nameLocation":"1464:6:75","parameters":{"id":56944,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56931,"mutability":"mutable","name":"owner","nameLocation":"1488:5:75","nodeType":"VariableDeclaration","scope":56946,"src":"1480:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56930,"name":"address","nodeType":"ElementaryTypeName","src":"1480:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56933,"mutability":"mutable","name":"spender","nameLocation":"1511:7:75","nodeType":"VariableDeclaration","scope":56946,"src":"1503:15:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56932,"name":"address","nodeType":"ElementaryTypeName","src":"1503:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56935,"mutability":"mutable","name":"value","nameLocation":"1536:5:75","nodeType":"VariableDeclaration","scope":56946,"src":"1528:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56934,"name":"uint256","nodeType":"ElementaryTypeName","src":"1528:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56937,"mutability":"mutable","name":"deadline","nameLocation":"1559:8:75","nodeType":"VariableDeclaration","scope":56946,"src":"1551:16:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56936,"name":"uint256","nodeType":"ElementaryTypeName","src":"1551:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":56939,"mutability":"mutable","name":"v","nameLocation":"1583:1:75","nodeType":"VariableDeclaration","scope":56946,"src":"1577:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":56938,"name":"uint8","nodeType":"ElementaryTypeName","src":"1577:5:75","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":56941,"mutability":"mutable","name":"r","nameLocation":"1602:1:75","nodeType":"VariableDeclaration","scope":56946,"src":"1594:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56940,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1594:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":56943,"mutability":"mutable","name":"s","nameLocation":"1621:1:75","nodeType":"VariableDeclaration","scope":56946,"src":"1613:9:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56942,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1613:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"1470:158:75"},"returnParameters":{"id":56945,"nodeType":"ParameterList","parameters":[],"src":"1637:0:75"},"scope":56961,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":56954,"nodeType":"FunctionDefinition","src":"1943:63:75","nodes":[],"documentation":{"id":56947,"nodeType":"StructuredDocumentation","src":"1644:294:75","text":" @dev Returns the current nonce for `owner`. This value must be\n included whenever a signature is generated for {permit}.\n Every successful call to {permit} increases ``owner``'s nonce by one. This\n prevents a signature from being used multiple times."},"functionSelector":"7ecebe00","implemented":false,"kind":"function","modifiers":[],"name":"nonces","nameLocation":"1952:6:75","parameters":{"id":56950,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56949,"mutability":"mutable","name":"owner","nameLocation":"1967:5:75","nodeType":"VariableDeclaration","scope":56954,"src":"1959:13:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56948,"name":"address","nodeType":"ElementaryTypeName","src":"1959:7:75","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1958:15:75"},"returnParameters":{"id":56953,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56952,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56954,"src":"1997:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56951,"name":"uint256","nodeType":"ElementaryTypeName","src":"1997:7:75","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1996:9:75"},"scope":56961,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":56960,"nodeType":"FunctionDefinition","src":"2198:60:75","nodes":[],"documentation":{"id":56955,"nodeType":"StructuredDocumentation","src":"2012:128:75","text":" @dev Returns the domain separator used in the encoding of the signature for {permit}, as defined by {EIP712}."},"functionSelector":"3644e515","implemented":false,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"2207:16:75","parameters":{"id":56956,"nodeType":"ParameterList","parameters":[],"src":"2223:2:75"},"returnParameters":{"id":56959,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56958,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":56960,"src":"2249:7:75","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":56957,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2249:7:75","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2248:9:75"},"scope":56961,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"IERC20Permit","contractDependencies":[],"contractKind":"interface","documentation":{"id":56928,"nodeType":"StructuredDocumentation","src":"148:480:75","text":" @dev Interface of the ERC20 Permit extension allowing approvals to be made via signatures, as defined in\n https://eips.ethereum.org/EIPS/eip-2612[EIP-2612].\n Adds the {permit} method, which can be used to change an account's ERC20 allowance (see {IERC20-allowance}) by\n presenting a message signed by the account. By not relying on {IERC20-approve}, the token holder account doesn't\n need to send a transaction, and thus is not required to hold Ether at all."},"fullyImplemented":false,"linearizedBaseContracts":[56961],"name":"IERC20Permit","nameLocation":"639:12:75","scope":56962,"usedErrors":[]}],"license":"MIT"},"id":75} \ No newline at end of file diff --git a/pkg/contracts/out/ISafe.sol/ISafe.json b/pkg/contracts/out/ISafe.sol/ISafe.json index 2905a7a8d..2ffdfb809 100644 --- a/pkg/contracts/out/ISafe.sol/ISafe.json +++ b/pkg/contracts/out/ISafe.sol/ISafe.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getOwners()":"a0e67e2b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/ISafe.sol\":\"ISafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/ISafe.sol":"ISafe"},"evmVersion":"paris","libraries":{}},"sources":{"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/ISafe.sol","id":75579,"exportedSymbols":{"ISafe":[75578]},"nodeType":"SourceUnit","src":"42:113:127","nodes":[{"id":75571,"nodeType":"PragmaDirective","src":"42:24:127","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75578,"nodeType":"ContractDefinition","src":"68:86:127","nodes":[{"id":75577,"nodeType":"FunctionDefinition","src":"90:62:127","nodes":[],"functionSelector":"a0e67e2b","implemented":false,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"99:9:127","parameters":{"id":75572,"nodeType":"ParameterList","parameters":[],"src":"108:2:127"},"returnParameters":{"id":75576,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75575,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75577,"src":"134:16:127","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75573,"name":"address","nodeType":"ElementaryTypeName","src":"134:7:127","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75574,"nodeType":"ArrayTypeName","src":"134:9:127","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"133:18:127"},"scope":75578,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISafe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[75578],"name":"ISafe","nameLocation":"78:5:127","scope":75579,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":127} \ No newline at end of file +{"abi":[{"type":"function","name":"getOwners","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"getOwners()":"a0e67e2b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/interfaces/ISafe.sol\":\"ISafe\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"view","type":"function","name":"getOwners","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/interfaces/ISafe.sol":"ISafe"},"evmVersion":"paris","libraries":{}},"sources":{"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/interfaces/ISafe.sol","id":80233,"exportedSymbols":{"ISafe":[80232]},"nodeType":"SourceUnit","src":"42:113:135","nodes":[{"id":80225,"nodeType":"PragmaDirective","src":"42:24:135","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":80232,"nodeType":"ContractDefinition","src":"68:86:135","nodes":[{"id":80231,"nodeType":"FunctionDefinition","src":"90:62:135","nodes":[],"functionSelector":"a0e67e2b","implemented":false,"kind":"function","modifiers":[],"name":"getOwners","nameLocation":"99:9:135","parameters":{"id":80226,"nodeType":"ParameterList","parameters":[],"src":"108:2:135"},"returnParameters":{"id":80230,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80229,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80231,"src":"134:16:135","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":80227,"name":"address","nodeType":"ElementaryTypeName","src":"134:7:135","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80228,"nodeType":"ArrayTypeName","src":"134:9:135","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"133:18:135"},"scope":80232,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"ISafe","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[80232],"name":"ISafe","nameLocation":"78:5:135","scope":80233,"usedErrors":[]}],"license":"LGPL-3.0-only"},"id":135} \ No newline at end of file diff --git a/pkg/contracts/out/MockERC20.sol/MockERC20.json b/pkg/contracts/out/MockERC20.sol/MockERC20.json index 4be51f97b..185f178bf 100644 --- a/pkg/contracts/out/MockERC20.sol/MockERC20.json +++ b/pkg/contracts/out/MockERC20.sol/MockERC20.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610eb9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101c5578063a9059cbb146101cd578063d505accf146101e0578063dd62ed3e146101f357600080fd5b80633644e5151461017457806370a082311461017c5780637ecebe00146101a557600080fd5b806318160ddd116100bd57806318160ddd1461013a57806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b3146101025780631624f6c614610125575b600080fd5b6100ec61022c565b6040516100f991906109bf565b60405180910390f35b610115610110366004610a29565b6102be565b60405190151581526020016100f9565b610138610133366004610b07565b61032b565b005b6003545b6040519081526020016100f9565b61011561015a366004610b7b565b6103d4565b60025460405160ff90911681526020016100f9565b61013e6104e9565b61013e61018a366004610bb7565b6001600160a01b031660009081526004602052604090205490565b61013e6101b3366004610bb7565b60086020526000908152604090205481565b6100ec61050f565b6101156101db366004610a29565b61051e565b6101386101ee366004610bd2565b6105b5565b61013e610201366004610c3c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60606000805461023b90610c6f565b80601f016020809104026020016040519081016040528092919081815260200182805461026790610c6f565b80156102b45780601f10610289576101008083540402835291602001916102b4565b820191906000526020600020905b81548152906001019060200180831161029757829003601f168201915b5050505050905090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103199086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103835760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b600061038f8482610cf8565b50600161039c8382610cf8565b506002805460ff191660ff83161790556103b461083d565b6006556103bf610856565b60075550506009805460ff1916600117905550565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146104305761040b81846108f9565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461045390846108f9565b6001600160a01b038087166000908152600460205260408082209390935590861681522054610482908461095c565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104d69087815260200190565b60405180910390a3506001949350505050565b60006006546104f661083d565b1461050857610503610856565b905090565b5060075490565b60606001805461023b90610c6f565b3360009081526004602052604081205461053890836108f9565b33600090815260046020526040808220929092556001600160a01b03851681522054610564908361095c565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103199086815260200190565b428410156106055760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161037a565b600060016106116104e9565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061065f83610dce565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106f39291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107875750876001600160a01b0316816001600160a01b0316145b6107d35760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161037a565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b60006109bb8061084f63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108889190610de7565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108b961083d565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008183101561094b5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161037a565b6109558284610e5d565b9392505050565b6000806109698385610e70565b9050838110156109555760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161037a565b4690565b600060208083528351808285015260005b818110156109ec578581018301518582016040015282016109d0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a2457600080fd5b919050565b60008060408385031215610a3c57600080fd5b610a4583610a0d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a7a57600080fd5b813567ffffffffffffffff80821115610a9557610a95610a53565b604051601f8301601f19908116603f01168101908282118183101715610abd57610abd610a53565b81604052838152866020858801011115610ad657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff81168114610a2457600080fd5b600080600060608486031215610b1c57600080fd5b833567ffffffffffffffff80821115610b3457600080fd5b610b4087838801610a69565b94506020860135915080821115610b5657600080fd5b50610b6386828701610a69565b925050610b7260408501610af6565b90509250925092565b600080600060608486031215610b9057600080fd5b610b9984610a0d565b9250610ba760208501610a0d565b9150604084013590509250925092565b600060208284031215610bc957600080fd5b61095582610a0d565b600080600080600080600060e0888a031215610bed57600080fd5b610bf688610a0d565b9650610c0460208901610a0d565b95506040880135945060608801359350610c2060808901610af6565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610c4f57600080fd5b610c5883610a0d565b9150610c6660208401610a0d565b90509250929050565b600181811c90821680610c8357607f821691505b602082108103610ca357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cf357600081815260208120601f850160051c81016020861015610cd05750805b601f850160051c820191505b81811015610cef57828155600101610cdc565b5050505b505050565b815167ffffffffffffffff811115610d1257610d12610a53565b610d2681610d208454610c6f565b84610ca9565b602080601f831160018114610d5b5760008415610d435750858301515b600019600386901b1c1916600185901b178555610cef565b600085815260208120601f198616915b82811015610d8a57888601518255948401946001909101908401610d6b565b5085821015610da85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610de057610de0610db8565b5060010190565b6000808354610df581610c6f565b60018281168015610e0d5760018114610e2257610e51565b60ff1984168752821515830287019450610e51565b8760005260208060002060005b85811015610e485781548a820152908401908201610e2f565b50505082870194505b50929695505050505050565b8181038181111561032557610325610db8565b8082018082111561032557610325610db856fea2646970667358221220b1ec76292263978d7a4065f4e4b63c398b5a1dc9e4ac8194ecc7c57fdab80d6264736f6c63430008130033","sourceMap":"369:7950:41:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101c5578063a9059cbb146101cd578063d505accf146101e0578063dd62ed3e146101f357600080fd5b80633644e5151461017457806370a082311461017c5780637ecebe00146101a557600080fd5b806318160ddd116100bd57806318160ddd1461013a57806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b3146101025780631624f6c614610125575b600080fd5b6100ec61022c565b6040516100f991906109bf565b60405180910390f35b610115610110366004610a29565b6102be565b60405190151581526020016100f9565b610138610133366004610b07565b61032b565b005b6003545b6040519081526020016100f9565b61011561015a366004610b7b565b6103d4565b60025460405160ff90911681526020016100f9565b61013e6104e9565b61013e61018a366004610bb7565b6001600160a01b031660009081526004602052604090205490565b61013e6101b3366004610bb7565b60086020526000908152604090205481565b6100ec61050f565b6101156101db366004610a29565b61051e565b6101386101ee366004610bd2565b6105b5565b61013e610201366004610c3c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60606000805461023b90610c6f565b80601f016020809104026020016040519081016040528092919081815260200182805461026790610c6f565b80156102b45780601f10610289576101008083540402835291602001916102b4565b820191906000526020600020905b81548152906001019060200180831161029757829003601f168201915b5050505050905090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103199086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103835760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b600061038f8482610cf8565b50600161039c8382610cf8565b506002805460ff191660ff83161790556103b461083d565b6006556103bf610856565b60075550506009805460ff1916600117905550565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146104305761040b81846108f9565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461045390846108f9565b6001600160a01b038087166000908152600460205260408082209390935590861681522054610482908461095c565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104d69087815260200190565b60405180910390a3506001949350505050565b60006006546104f661083d565b1461050857610503610856565b905090565b5060075490565b60606001805461023b90610c6f565b3360009081526004602052604081205461053890836108f9565b33600090815260046020526040808220929092556001600160a01b03851681522054610564908361095c565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103199086815260200190565b428410156106055760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161037a565b600060016106116104e9565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061065f83610dce565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106f39291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107875750876001600160a01b0316816001600160a01b0316145b6107d35760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161037a565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b60006109bb8061084f63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108889190610de7565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108b961083d565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008183101561094b5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161037a565b6109558284610e5d565b9392505050565b6000806109698385610e70565b9050838110156109555760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161037a565b4690565b600060208083528351808285015260005b818110156109ec578581018301518582016040015282016109d0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a2457600080fd5b919050565b60008060408385031215610a3c57600080fd5b610a4583610a0d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a7a57600080fd5b813567ffffffffffffffff80821115610a9557610a95610a53565b604051601f8301601f19908116603f01168101908282118183101715610abd57610abd610a53565b81604052838152866020858801011115610ad657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff81168114610a2457600080fd5b600080600060608486031215610b1c57600080fd5b833567ffffffffffffffff80821115610b3457600080fd5b610b4087838801610a69565b94506020860135915080821115610b5657600080fd5b50610b6386828701610a69565b925050610b7260408501610af6565b90509250925092565b600080600060608486031215610b9057600080fd5b610b9984610a0d565b9250610ba760208501610a0d565b9150604084013590509250925092565b600060208284031215610bc957600080fd5b61095582610a0d565b600080600080600080600060e0888a031215610bed57600080fd5b610bf688610a0d565b9650610c0460208901610a0d565b95506040880135945060608801359350610c2060808901610af6565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610c4f57600080fd5b610c5883610a0d565b9150610c6660208401610a0d565b90509250929050565b600181811c90821680610c8357607f821691505b602082108103610ca357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cf357600081815260208120601f850160051c81016020861015610cd05750805b601f850160051c820191505b81811015610cef57828155600101610cdc565b5050505b505050565b815167ffffffffffffffff811115610d1257610d12610a53565b610d2681610d208454610c6f565b84610ca9565b602080601f831160018114610d5b5760008415610d435750858301515b600019600386901b1c1916600185901b178555610cef565b600085815260208120601f198616915b82811015610d8a57888601518255948401946001909101908401610d6b565b5085821015610da85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610de057610de0610db8565b5060010190565b6000808354610df581610c6f565b60018281168015610e0d5760018114610e2257610e51565b60ff1984168752821515830287019450610e51565b8760005260208060002060005b85811015610e485781548a820152908401908201610e2f565b50505082870194505b50929695505050505050565b8181038181111561032557610325610db8565b8082018082111561032557610325610db856fea2646970667358221220b1ec76292263978d7a4065f4e4b63c398b5a1dc9e4ac8194ecc7c57fdab80d6264736f6c63430008130033","sourceMap":"369:7950:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:143;;1185:22;1167:41;;1155:2;1140:18;3057:221:41;1027:187:143;2504:365:41;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;3057:25:143;;;3045:2;3030:18;1322:100:41;2911:177:143;3578:472:41;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3568:36:143;;3556:2;3541:18;877:92:41;3426:184:143;5427:178:41;;;:::i;1428:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1520:17:41;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1659:17:41;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3156:31:41;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;3057:25:143;;3045:2;3030:18;;2911:177;3212:37:41;;;;;;;;-1:-1:-1;3267:4:41;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;-1:-1:-1;;;2602:44:41;;5508:2:143;2602:44:41;;;5490:21:143;5547:2;5527:18;;;5520:30;5586:21;5566:18;;;5559:49;5625:18;;2602:44:41;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:41;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:41;:21;;-1:-1:-1;;2707:21:41;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:41;:18;;-1:-1:-1;;2844:18:41;2858:4;2844:18;;;-1:-1:-1;2504:365:41:o;3578:472::-;-1:-1:-1;;;;;3709:16:41;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;-1:-1:-1;;3788:22:41;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;-1:-1:-1;;;;;3812:16:41;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;-1:-1:-1;;;;;3899:16:41;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;-1:-1:-1;;;;;3875:16:41;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;-1:-1:-1;;;;;3934:14:41;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;3057:25:143;;3045:2;3030:18;;2911:177;3995:26:41;;;;;;;;-1:-1:-1;4039:4:41;;3578:472;-1:-1:-1;;;;3578:472:41:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:41;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;-1:-1:-1;;;;;3472:14:41;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;-1:-1:-1;;;;;3450:14:41;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;3057:25:143;;3045:2;3030:18;;2911:177;4239:1182:41;4416:15;4404:8;:27;;4396:63;;;;-1:-1:-1;;;4396:63:41;;8060:2:143;4396:63:41;;;8042:21:143;8099:2;8079:18;;;8072:30;8138:25;8118:18;;;8111:53;8181:18;;4396:63:41;7858:347:143;4396:63:41;4470:24;4497:717;4617:18;:16;:18::i;:::-;-1:-1:-1;;;;;5026:13:41;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:41;;;;;;8826:25:143;;;;-1:-1:-1;;;;;8948:15:143;;;8928:18;;;8921:43;9000:15;;;;8980:18;;;8973:43;9032:18;;;9025:34;9075:19;;;9068:35;9119:19;;;9112:35;;;8798:19;;4692:413:41;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;9428:66:143;9416:79;;9520:1;9511:11;;9504:27;;;;9556:2;9547:12;;9540:28;9593:2;9584:12;;9158:444;4547:598:41;;;;-1:-1:-1;;4547:598:41;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;9834:25:143;9907:4;9895:17;;9875:18;;;9868:45;9929:18;;;9922:34;;;9972:18;;;9965:34;;;9806:19;;4497:717:41;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:41;;-1:-1:-1;;4497:717:41;;;-1:-1:-1;;;;;;;5233:30:41;;;;;;:59;;;5287:5;-1:-1:-1;;;;;5267:25:41;:16;-1:-1:-1;;;;;5267:25:41;;5233:59;5225:86;;;;-1:-1:-1;;;5225:86:41;;10212:2:143;5225:86:41;;;10194:21:143;10251:2;10231:18;;;10224:30;10290:16;10270:18;;;10263:44;10324:18;;5225:86:41;10010:338:143;5225:86:41;-1:-1:-1;;;;;5322:28:41;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;3057:25:143;;;5322:37:41;;5383:31;;;;;3030:18:143;5383:31:41;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11461:25:143;;;;11502:18;;11495:34;;;;11545:18;;;11538:34;11588:18;;;11581:34;5979:4:41;11631:19:143;;;11624:84;11433:19;;5725:273:41;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;-1:-1:-1;;;7116:47:41;;11921:2:143;7116:47:41;;;11903:21:143;11960:2;11940:18;;;11933:30;11999;11979:18;;;11972:58;12047:18;;7116:47:41;11719:352:143;7116:47:41;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:41:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;-1:-1:-1;;;6964:43:41;;12541:2:143;6964:43:41;;;12523:21:143;12580:2;12560:18;;;12553:30;12619:26;12599:18;;;12592:54;12663:18;;6964:43:41;12339:348:143;7735:276:41;7918:9;;7735:276::o;14:548:143:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:143;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:143:o;1219:184::-;-1:-1:-1;;;1268:1:143;1261:88;1368:4;1365:1;1358:15;1392:4;1389:1;1382:15;1408:719;1451:5;1504:3;1497:4;1489:6;1485:17;1481:27;1471:55;;1522:1;1519;1512:12;1471:55;1558:6;1545:20;1584:18;1621:2;1617;1614:10;1611:36;;;1627:18;;:::i;:::-;1702:2;1696:9;1670:2;1756:13;;-1:-1:-1;;1752:22:143;;;1776:2;1748:31;1744:40;1732:53;;;1800:18;;;1820:22;;;1797:46;1794:72;;;1846:18;;:::i;:::-;1886:10;1882:2;1875:22;1921:2;1913:6;1906:18;1967:3;1960:4;1955:2;1947:6;1943:15;1939:26;1936:35;1933:55;;;1984:1;1981;1974:12;1933:55;2048:2;2041:4;2033:6;2029:17;2022:4;2014:6;2010:17;1997:54;2095:1;2088:4;2083:2;2075:6;2071:15;2067:26;2060:37;2115:6;2106:15;;;;;;1408:719;;;;:::o;2132:156::-;2198:20;;2258:4;2247:16;;2237:27;;2227:55;;2278:1;2275;2268:12;2293:613;2388:6;2396;2404;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;2513:9;2500:23;2542:18;2583:2;2575:6;2572:14;2569:34;;;2599:1;2596;2589:12;2569:34;2622:50;2664:7;2655:6;2644:9;2640:22;2622:50;:::i;:::-;2612:60;;2725:2;2714:9;2710:18;2697:32;2681:48;;2754:2;2744:8;2741:16;2738:36;;;2770:1;2767;2760:12;2738:36;;2793:52;2837:7;2826:8;2815:9;2811:24;2793:52;:::i;:::-;2783:62;;;2864:36;2896:2;2885:9;2881:18;2864:36;:::i;:::-;2854:46;;2293:613;;;;;:::o;3093:328::-;3170:6;3178;3186;3239:2;3227:9;3218:7;3214:23;3210:32;3207:52;;;3255:1;3252;3245:12;3207:52;3278:29;3297:9;3278:29;:::i;:::-;3268:39;;3326:38;3360:2;3349:9;3345:18;3326:38;:::i;:::-;3316:48;;3411:2;3400:9;3396:18;3383:32;3373:42;;3093:328;;;;;:::o;3797:186::-;3856:6;3909:2;3897:9;3888:7;3884:23;3880:32;3877:52;;;3925:1;3922;3915:12;3877:52;3948:29;3967:9;3948:29;:::i;3988:606::-;4099:6;4107;4115;4123;4131;4139;4147;4200:3;4188:9;4179:7;4175:23;4171:33;4168:53;;;4217:1;4214;4207:12;4168:53;4240:29;4259:9;4240:29;:::i;:::-;4230:39;;4288:38;4322:2;4311:9;4307:18;4288:38;:::i;:::-;4278:48;;4373:2;4362:9;4358:18;4345:32;4335:42;;4424:2;4413:9;4409:18;4396:32;4386:42;;4447:37;4479:3;4468:9;4464:19;4447:37;:::i;:::-;4437:47;;4531:3;4520:9;4516:19;4503:33;4493:43;;4583:3;4572:9;4568:19;4555:33;4545:43;;3988:606;;;;;;;;;;:::o;4599:260::-;4667:6;4675;4728:2;4716:9;4707:7;4703:23;4699:32;4696:52;;;4744:1;4741;4734:12;4696:52;4767:29;4786:9;4767:29;:::i;:::-;4757:39;;4815:38;4849:2;4838:9;4834:18;4815:38;:::i;:::-;4805:48;;4599:260;;;;;:::o;4864:437::-;4943:1;4939:12;;;;4986;;;5007:61;;5061:4;5053:6;5049:17;5039:27;;5007:61;5114:2;5106:6;5103:14;5083:18;5080:38;5077:218;;-1:-1:-1;;;5148:1:143;5141:88;5252:4;5249:1;5242:15;5280:4;5277:1;5270:15;5077:218;;4864:437;;;:::o;5780:545::-;5882:2;5877:3;5874:11;5871:448;;;5918:1;5943:5;5939:2;5932:17;5988:4;5984:2;5974:19;6058:2;6046:10;6042:19;6039:1;6035:27;6029:4;6025:38;6094:4;6082:10;6079:20;6076:47;;;-1:-1:-1;6117:4:143;6076:47;6172:2;6167:3;6163:12;6160:1;6156:20;6150:4;6146:31;6136:41;;6227:82;6245:2;6238:5;6235:13;6227:82;;;6290:17;;;6271:1;6260:13;6227:82;;;6231:3;;;5871:448;5780:545;;;:::o;6501:1352::-;6627:3;6621:10;6654:18;6646:6;6643:30;6640:56;;;6676:18;;:::i;:::-;6705:97;6795:6;6755:38;6787:4;6781:11;6755:38;:::i;:::-;6749:4;6705:97;:::i;:::-;6857:4;;6921:2;6910:14;;6938:1;6933:663;;;;7640:1;7657:6;7654:89;;;-1:-1:-1;7709:19:143;;;7703:26;7654:89;-1:-1:-1;;6458:1:143;6454:11;;;6450:24;6446:29;6436:40;6482:1;6478:11;;;6433:57;7756:81;;6903:944;;6933:663;5727:1;5720:14;;;5764:4;5751:18;;-1:-1:-1;;6969:20:143;;;7087:236;7101:7;7098:1;7095:14;7087:236;;;7190:19;;;7184:26;7169:42;;7282:27;;;;7250:1;7238:14;;;;7117:19;;7087:236;;;7091:3;7351:6;7342:7;7339:19;7336:201;;;7412:19;;;7406:26;-1:-1:-1;;7495:1:143;7491:14;;;7507:3;7487:24;7483:37;7479:42;7464:58;7449:74;;7336:201;-1:-1:-1;;;;;7583:1:143;7567:14;;;7563:22;7550:36;;-1:-1:-1;6501:1352:143:o;8210:184::-;-1:-1:-1;;;8259:1:143;8252:88;8359:4;8356:1;8349:15;8383:4;8380:1;8373:15;8399:135;8438:3;8459:17;;;8456:43;;8479:18;;:::i;:::-;-1:-1:-1;8526:1:143;8515:13;;8399:135::o;10353:844::-;10483:3;10512:1;10545:6;10539:13;10575:36;10601:9;10575:36;:::i;:::-;10630:1;10647:18;;;10674:133;;;;10821:1;10816:356;;;;10640:532;;10674:133;-1:-1:-1;;10707:24:143;;10695:37;;10780:14;;10773:22;10761:35;;10752:45;;;-1:-1:-1;10674:133:143;;10816:356;10847:6;10844:1;10837:17;10877:4;10922:2;10919:1;10909:16;10947:1;10961:165;10975:6;10972:1;10969:13;10961:165;;;11053:14;;11040:11;;;11033:35;11096:16;;;;10990:10;;10961:165;;;10965:3;;;11155:6;11150:3;11146:16;11139:23;;10640:532;-1:-1:-1;11188:3:143;;10353:844;-1:-1:-1;;;;;;10353:844:143:o;12076:128::-;12143:9;;;12164:11;;;12161:37;;;12178:18;;:::i;12209:125::-;12274:9;;;12295:10;;;12292:36;;;12308:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":38137,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":38139,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":38141,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"},{"astId":38170,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_totalSupply","offset":0,"slot":"3","type":"t_uint256"},{"astId":38174,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_balanceOf","offset":0,"slot":"4","type":"t_mapping(t_address,t_uint256)"},{"astId":38180,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_allowance","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":38221,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"INITIAL_CHAIN_ID","offset":0,"slot":"6","type":"t_uint256"},{"astId":38223,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"INITIAL_DOMAIN_SEPARATOR","offset":0,"slot":"7","type":"t_bytes32"},{"astId":38227,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"nonces","offset":0,"slot":"8","type":"t_mapping(t_address,t_uint256)"},{"astId":38230,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"initialized","offset":0,"slot":"9","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","id":38706,"exportedSymbols":{"IERC20":[37781],"MockERC20":[38705]},"nodeType":"SourceUnit","src":"32:8288:41","nodes":[{"id":38130,"nodeType":"PragmaDirective","src":"32:31:41","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":38132,"nodeType":"ImportDirective","src":"65:48:41","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC20.sol","file":"../interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":38706,"sourceUnit":37782,"symbolAliases":[{"foreign":{"id":38131,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37781,"src":"73:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38705,"nodeType":"ContractDefinition","src":"369:7950:41","nodes":[{"id":38137,"nodeType":"VariableDeclaration","src":"588:21:41","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"604:5:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":38136,"name":"string","nodeType":"ElementaryTypeName","src":"588:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":38139,"nodeType":"VariableDeclaration","src":"616:23:41","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"632:7:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":38138,"name":"string","nodeType":"ElementaryTypeName","src":"616:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":38141,"nodeType":"VariableDeclaration","src":"646:24:41","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"661:9:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38140,"name":"uint8","nodeType":"ElementaryTypeName","src":"646:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":38150,"nodeType":"FunctionDefinition","src":"677:92:41","nodes":[],"body":{"id":38149,"nodeType":"Block","src":"740:29:41","nodes":[],"statements":[{"expression":{"id":38147,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38137,"src":"757:5:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":38146,"id":38148,"nodeType":"Return","src":"750:12:41"}]},"baseFunctions":[37768],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"686:4:41","overrides":{"id":38143,"nodeType":"OverrideSpecifier","overrides":[],"src":"707:8:41"},"parameters":{"id":38142,"nodeType":"ParameterList","parameters":[],"src":"690:2:41"},"returnParameters":{"id":38146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38150,"src":"725:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38144,"name":"string","nodeType":"ElementaryTypeName","src":"725:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:15:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38159,"nodeType":"FunctionDefinition","src":"775:96:41","nodes":[],"body":{"id":38158,"nodeType":"Block","src":"840:31:41","nodes":[],"statements":[{"expression":{"id":38156,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38139,"src":"857:7:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":38155,"id":38157,"nodeType":"Return","src":"850:14:41"}]},"baseFunctions":[37774],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"784:6:41","overrides":{"id":38152,"nodeType":"OverrideSpecifier","overrides":[],"src":"807:8:41"},"parameters":{"id":38151,"nodeType":"ParameterList","parameters":[],"src":"790:2:41"},"returnParameters":{"id":38155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38159,"src":"825:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38153,"name":"string","nodeType":"ElementaryTypeName","src":"825:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"824:15:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38168,"nodeType":"FunctionDefinition","src":"877:92:41","nodes":[],"body":{"id":38167,"nodeType":"Block","src":"936:33:41","nodes":[],"statements":[{"expression":{"id":38165,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38141,"src":"953:9:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":38164,"id":38166,"nodeType":"Return","src":"946:16:41"}]},"baseFunctions":[37780],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"886:8:41","overrides":{"id":38161,"nodeType":"OverrideSpecifier","overrides":[],"src":"911:8:41"},"parameters":{"id":38160,"nodeType":"ParameterList","parameters":[],"src":"894:2:41"},"returnParameters":{"id":38164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38168,"src":"929:5:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38162,"name":"uint8","nodeType":"ElementaryTypeName","src":"929:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"928:7:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38170,"nodeType":"VariableDeclaration","src":"1158:29:41","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1175:12:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":38174,"nodeType":"VariableDeclaration","src":"1194:47:41","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1231:10:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":38173,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38171,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1194:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1213:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":38180,"nodeType":"VariableDeclaration","src":"1248:67:41","nodes":[],"constant":false,"mutability":"mutable","name":"_allowance","nameLocation":"1305:10:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":38179,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38175,"name":"address","nodeType":"ElementaryTypeName","src":"1256:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1248:47:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38178,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38176,"name":"address","nodeType":"ElementaryTypeName","src":"1275:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1267:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38177,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"id":38189,"nodeType":"FunctionDefinition","src":"1322:100:41","nodes":[],"body":{"id":38188,"nodeType":"Block","src":"1386:36:41","nodes":[],"statements":[{"expression":{"id":38186,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"1403:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38185,"id":38187,"nodeType":"Return","src":"1396:19:41"}]},"baseFunctions":[37712],"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1331:11:41","overrides":{"id":38182,"nodeType":"OverrideSpecifier","overrides":[],"src":"1359:8:41"},"parameters":{"id":38181,"nodeType":"ParameterList","parameters":[],"src":"1342:2:41"},"returnParameters":{"id":38185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38189,"src":"1377:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38183,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1376:9:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38202,"nodeType":"FunctionDefinition","src":"1428:116:41","nodes":[],"body":{"id":38201,"nodeType":"Block","src":"1503:41:41","nodes":[],"statements":[{"expression":{"baseExpression":{"id":38197,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"1520:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38199,"indexExpression":{"id":38198,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38191,"src":"1531:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1520:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38196,"id":38200,"nodeType":"Return","src":"1513:24:41"}]},"baseFunctions":[37720],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1437:9:41","overrides":{"id":38193,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:41"},"parameters":{"id":38192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38191,"mutability":"mutable","name":"owner","nameLocation":"1455:5:41","nodeType":"VariableDeclaration","scope":38202,"src":"1447:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38190,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1446:15:41"},"returnParameters":{"id":38196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38202,"src":"1494:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38219,"nodeType":"FunctionDefinition","src":"1550:142:41","nodes":[],"body":{"id":38218,"nodeType":"Block","src":"1642:50:41","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":38212,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"1659:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38214,"indexExpression":{"id":38213,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"1670:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1659:17:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38216,"indexExpression":{"id":38215,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38206,"src":"1677:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1659:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38211,"id":38217,"nodeType":"Return","src":"1652:33:41"}]},"baseFunctions":[37740],"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1559:9:41","overrides":{"id":38208,"nodeType":"OverrideSpecifier","overrides":[],"src":"1615:8:41"},"parameters":{"id":38207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38204,"mutability":"mutable","name":"owner","nameLocation":"1577:5:41","nodeType":"VariableDeclaration","scope":38219,"src":"1569:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38203,"name":"address","nodeType":"ElementaryTypeName","src":"1569:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38206,"mutability":"mutable","name":"spender","nameLocation":"1592:7:41","nodeType":"VariableDeclaration","scope":38219,"src":"1584:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38205,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1568:32:41"},"returnParameters":{"id":38211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38219,"src":"1633:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1632:9:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38221,"nodeType":"VariableDeclaration","src":"1882:33:41","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_CHAIN_ID","nameLocation":"1899:16:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1882:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":38223,"nodeType":"VariableDeclaration","src":"1922:41:41","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1939:24:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":38227,"nodeType":"VariableDeclaration","src":"1970:41:41","nodes":[],"constant":false,"functionSelector":"7ecebe00","mutability":"mutable","name":"nonces","nameLocation":"2005:6:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":38226,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38224,"name":"address","nodeType":"ElementaryTypeName","src":"1978:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1970:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38225,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":38230,"nodeType":"VariableDeclaration","src":"2271:24:41","nodes":[],"constant":false,"documentation":{"id":38228,"nodeType":"StructuredDocumentation","src":"2199:67:41","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2284:11:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38229,"name":"bool","nodeType":"ElementaryTypeName","src":"2271:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":38273,"nodeType":"FunctionDefinition","src":"2504:365:41","nodes":[],"body":{"id":38272,"nodeType":"Block","src":"2592:277:41","nodes":[],"statements":[{"expression":{"arguments":[{"id":38242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2610:12:41","subExpression":{"id":38241,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38230,"src":"2611:11:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":38243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2624:21:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""},"value":"ALREADY_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""}],"id":38240,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2602:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2602:44:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38245,"nodeType":"ExpressionStatement","src":"2602:44:41"},{"expression":{"id":38248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38246,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38137,"src":"2657:5:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38247,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38233,"src":"2665:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2657:13:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":38249,"nodeType":"ExpressionStatement","src":"2657:13:41"},{"expression":{"id":38252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38250,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38139,"src":"2680:7:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38251,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38235,"src":"2690:7:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2680:17:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":38253,"nodeType":"ExpressionStatement","src":"2680:17:41"},{"expression":{"id":38256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38254,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38141,"src":"2707:9:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38255,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38237,"src":"2719:9:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2707:21:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":38257,"nodeType":"ExpressionStatement","src":"2707:21:41"},{"expression":{"id":38261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38258,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38221,"src":"2739:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":38259,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38704,"src":"2758:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2758:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2739:33:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38262,"nodeType":"ExpressionStatement","src":"2739:33:41"},{"expression":{"id":38266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38263,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38223,"src":"2782:24:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":38264,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38549,"src":"2809:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":38265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2809:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2782:51:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":38267,"nodeType":"ExpressionStatement","src":"2782:51:41"},{"expression":{"id":38270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38268,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38230,"src":"2844:11:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":38269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2858:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2844:18:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38271,"nodeType":"ExpressionStatement","src":"2844:18:41"}]},"documentation":{"id":38231,"nodeType":"StructuredDocumentation","src":"2302:197:41","text":"@dev To hide constructor warnings across solc versions due to different constructor visibility requirements and\n syntaxes, we add an initialization function that can be called only once."},"functionSelector":"1624f6c6","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2513:10:41","parameters":{"id":38238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38233,"mutability":"mutable","name":"name_","nameLocation":"2538:5:41","nodeType":"VariableDeclaration","scope":38273,"src":"2524:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38232,"name":"string","nodeType":"ElementaryTypeName","src":"2524:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":38235,"mutability":"mutable","name":"symbol_","nameLocation":"2559:7:41","nodeType":"VariableDeclaration","scope":38273,"src":"2545:21:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38234,"name":"string","nodeType":"ElementaryTypeName","src":"2545:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":38237,"mutability":"mutable","name":"decimals_","nameLocation":"2574:9:41","nodeType":"VariableDeclaration","scope":38273,"src":"2568:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38236,"name":"uint8","nodeType":"ElementaryTypeName","src":"2568:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2523:61:41"},"returnParameters":{"id":38239,"nodeType":"ParameterList","parameters":[],"src":"2592:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":38302,"nodeType":"FunctionDefinition","src":"3057:221:41","nodes":[],"body":{"id":38301,"nodeType":"Block","src":"3146:132:41","nodes":[],"statements":[{"expression":{"id":38290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38283,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"3156:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38287,"indexExpression":{"expression":{"id":38284,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3167:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3171:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3167:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3156:22:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38288,"indexExpression":{"id":38286,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38275,"src":"3179:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3156:31:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38289,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"3190:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3156:40:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38291,"nodeType":"ExpressionStatement","src":"3156:40:41"},{"eventCall":{"arguments":[{"expression":{"id":38293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3221:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3225:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3221:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38295,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38275,"src":"3233:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"3242:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38292,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37706,"src":"3212:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:37:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38298,"nodeType":"EmitStatement","src":"3207:42:41"},{"expression":{"hexValue":"74727565","id":38299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3267:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":38282,"id":38300,"nodeType":"Return","src":"3260:11:41"}]},"baseFunctions":[37750],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3066:7:41","overrides":{"id":38279,"nodeType":"OverrideSpecifier","overrides":[],"src":"3122:8:41"},"parameters":{"id":38278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38275,"mutability":"mutable","name":"spender","nameLocation":"3082:7:41","nodeType":"VariableDeclaration","scope":38302,"src":"3074:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38274,"name":"address","nodeType":"ElementaryTypeName","src":"3074:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38277,"mutability":"mutable","name":"amount","nameLocation":"3099:6:41","nodeType":"VariableDeclaration","scope":38302,"src":"3091:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38276,"name":"uint256","nodeType":"ElementaryTypeName","src":"3091:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3073:33:41"},"returnParameters":{"id":38282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38302,"src":"3140:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38280,"name":"bool","nodeType":"ElementaryTypeName","src":"3140:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3139:6:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38346,"nodeType":"FunctionDefinition","src":"3284:288:41","nodes":[],"body":{"id":38345,"nodeType":"Block","src":"3369:203:41","nodes":[],"statements":[{"expression":{"id":38323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38312,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3379:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38315,"indexExpression":{"expression":{"id":38313,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3390:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3390:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3379:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38317,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3409:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38320,"indexExpression":{"expression":{"id":38318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3420:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3424:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3420:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3409:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38321,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"3433:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38316,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"3404:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3379:61:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38324,"nodeType":"ExpressionStatement","src":"3379:61:41"},{"expression":{"id":38334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38325,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3450:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38327,"indexExpression":{"id":38326,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"3461:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3450:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38329,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3472:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38331,"indexExpression":{"id":38330,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"3483:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3472:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38332,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"3488:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38328,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"3467:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3450:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38335,"nodeType":"ExpressionStatement","src":"3450:45:41"},{"eventCall":{"arguments":[{"expression":{"id":38337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3520:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3524:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3520:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38339,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"3532:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38340,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"3536:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38336,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"3511:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3511:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38342,"nodeType":"EmitStatement","src":"3506:37:41"},{"expression":{"hexValue":"74727565","id":38343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3561:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":38311,"id":38344,"nodeType":"Return","src":"3554:11:41"}]},"baseFunctions":[37730],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3293:8:41","overrides":{"id":38308,"nodeType":"OverrideSpecifier","overrides":[],"src":"3345:8:41"},"parameters":{"id":38307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38304,"mutability":"mutable","name":"to","nameLocation":"3310:2:41","nodeType":"VariableDeclaration","scope":38346,"src":"3302:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38303,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38306,"mutability":"mutable","name":"amount","nameLocation":"3322:6:41","nodeType":"VariableDeclaration","scope":38346,"src":"3314:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38305,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3301:28:41"},"returnParameters":{"id":38311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38346,"src":"3363:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38309,"name":"bool","nodeType":"ElementaryTypeName","src":"3363:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3362:6:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38418,"nodeType":"FunctionDefinition","src":"3578:472:41","nodes":[],"body":{"id":38417,"nodeType":"Block","src":"3681:369:41","nodes":[],"statements":[{"assignments":[38359],"declarations":[{"constant":false,"id":38359,"mutability":"mutable","name":"allowed","nameLocation":"3699:7:41","nodeType":"VariableDeclaration","scope":38417,"src":"3691:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38358,"name":"uint256","nodeType":"ElementaryTypeName","src":"3691:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38366,"initialValue":{"baseExpression":{"baseExpression":{"id":38360,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"3709:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38362,"indexExpression":{"id":38361,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3720:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3709:16:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38365,"indexExpression":{"expression":{"id":38363,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3726:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3730:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3726:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3709:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3691:46:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38367,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"3788:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":38372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3799:11:41","subExpression":{"arguments":[{"hexValue":"30","id":38370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3808:1:41","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":38369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3800:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38368,"name":"uint256","nodeType":"ElementaryTypeName","src":"3800:7:41","typeDescriptions":{}}},"id":38371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3788:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38386,"nodeType":"IfStatement","src":"3784:80:41","trueBody":{"expression":{"id":38384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38374,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"3812:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38378,"indexExpression":{"id":38375,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3823:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3812:16:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38379,"indexExpression":{"expression":{"id":38376,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3829:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3833:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3829:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3812:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38381,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"3848:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38382,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"3857:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38380,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"3843:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3812:52:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38385,"nodeType":"ExpressionStatement","src":"3812:52:41"}},{"expression":{"id":38396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38387,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3875:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38389,"indexExpression":{"id":38388,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3886:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3875:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38391,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3899:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38393,"indexExpression":{"id":38392,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3910:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3899:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"3917:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38390,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"3894:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3875:49:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38397,"nodeType":"ExpressionStatement","src":"3875:49:41"},{"expression":{"id":38407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38398,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3934:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38400,"indexExpression":{"id":38399,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38350,"src":"3945:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3934:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38402,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3956:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38404,"indexExpression":{"id":38403,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38350,"src":"3967:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3956:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38405,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"3972:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38401,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"3951:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38408,"nodeType":"ExpressionStatement","src":"3934:45:41"},{"eventCall":{"arguments":[{"id":38410,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"4004:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38411,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38350,"src":"4010:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38412,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"4014:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38409,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"3995:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38414,"nodeType":"EmitStatement","src":"3990:31:41"},{"expression":{"hexValue":"74727565","id":38415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4039:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":38357,"id":38416,"nodeType":"Return","src":"4032:11:41"}]},"baseFunctions":[37762],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3587:12:41","overrides":{"id":38354,"nodeType":"OverrideSpecifier","overrides":[],"src":"3657:8:41"},"parameters":{"id":38353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38348,"mutability":"mutable","name":"from","nameLocation":"3608:4:41","nodeType":"VariableDeclaration","scope":38418,"src":"3600:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38347,"name":"address","nodeType":"ElementaryTypeName","src":"3600:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38350,"mutability":"mutable","name":"to","nameLocation":"3622:2:41","nodeType":"VariableDeclaration","scope":38418,"src":"3614:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38349,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38352,"mutability":"mutable","name":"amount","nameLocation":"3634:6:41","nodeType":"VariableDeclaration","scope":38418,"src":"3626:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38351,"name":"uint256","nodeType":"ElementaryTypeName","src":"3626:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3599:42:41"},"returnParameters":{"id":38357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38418,"src":"3675:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38355,"name":"bool","nodeType":"ElementaryTypeName","src":"3675:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3674:6:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38504,"nodeType":"FunctionDefinition","src":"4239:1182:41","nodes":[],"body":{"id":38503,"nodeType":"Block","src":"4386:1035:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38436,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38426,"src":"4404:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":38437,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4416:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4422:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"4416:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4404:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":38440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4433:25:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":38435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4396:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4396:63:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38442,"nodeType":"ExpressionStatement","src":"4396:63:41"},{"assignments":[38444],"declarations":[{"constant":false,"id":38444,"mutability":"mutable","name":"recoveredAddress","nameLocation":"4478:16:41","nodeType":"VariableDeclaration","scope":38503,"src":"4470:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38443,"name":"address","nodeType":"ElementaryTypeName","src":"4470:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38474,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":38449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4585:10:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":38450,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38519,"src":"4617:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":38451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":38456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4775:84:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":38455,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4732:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4732:157:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":38458,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"4919:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38459,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38422,"src":"4954:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38460,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38424,"src":"4991:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5026:15:41","subExpression":{"baseExpression":{"id":38461,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38227,"src":"5026:6:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38463,"indexExpression":{"id":38462,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"5033:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5026:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38465,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38426,"src":"5071:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4692:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4696:6:41","memberName":"encode","nodeType":"MemberAccess","src":"4692:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4692:413:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":38452,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4657:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:470:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":38447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4547:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4551:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"4547:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:598:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":38446,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4520:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:639:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":38470,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38428,"src":"5173:1:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":38471,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38430,"src":"5188:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":38472,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38432,"src":"5203:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":38445,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"4497:9:41","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":38473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:717:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4470:744:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":38485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38476,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38444,"src":"5233:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":38479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5261:1:41","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":38478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5253:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38477,"name":"address","nodeType":"ElementaryTypeName","src":"5253:7:41","typeDescriptions":{}}},"id":38480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5233:30:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38482,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38444,"src":"5267:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":38483,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"5287:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5267:25:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5233:59:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":38486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5294:16:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":38475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5225:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5225:86:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38488,"nodeType":"ExpressionStatement","src":"5225:86:41"},{"expression":{"id":38495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38489,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"5322:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38492,"indexExpression":{"id":38490,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38444,"src":"5333:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5322:28:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38493,"indexExpression":{"id":38491,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38422,"src":"5351:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5322:37:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38494,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38424,"src":"5362:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5322:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38496,"nodeType":"ExpressionStatement","src":"5322:45:41"},{"eventCall":{"arguments":[{"id":38498,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"5392:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38499,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38422,"src":"5399:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38424,"src":"5408:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38497,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37706,"src":"5383:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5383:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38502,"nodeType":"EmitStatement","src":"5378:36:41"}]},"functionSelector":"d505accf","implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"4248:6:41","parameters":{"id":38433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38420,"mutability":"mutable","name":"owner","nameLocation":"4263:5:41","nodeType":"VariableDeclaration","scope":38504,"src":"4255:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38419,"name":"address","nodeType":"ElementaryTypeName","src":"4255:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38422,"mutability":"mutable","name":"spender","nameLocation":"4278:7:41","nodeType":"VariableDeclaration","scope":38504,"src":"4270:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38421,"name":"address","nodeType":"ElementaryTypeName","src":"4270:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38424,"mutability":"mutable","name":"value","nameLocation":"4295:5:41","nodeType":"VariableDeclaration","scope":38504,"src":"4287:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38423,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38426,"mutability":"mutable","name":"deadline","nameLocation":"4310:8:41","nodeType":"VariableDeclaration","scope":38504,"src":"4302:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4302:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38428,"mutability":"mutable","name":"v","nameLocation":"4326:1:41","nodeType":"VariableDeclaration","scope":38504,"src":"4320:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38427,"name":"uint8","nodeType":"ElementaryTypeName","src":"4320:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":38430,"mutability":"mutable","name":"r","nameLocation":"4337:1:41","nodeType":"VariableDeclaration","scope":38504,"src":"4329:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4329:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38432,"mutability":"mutable","name":"s","nameLocation":"4348:1:41","nodeType":"VariableDeclaration","scope":38504,"src":"4340:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4340:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4254:96:41"},"returnParameters":{"id":38434,"nodeType":"ParameterList","parameters":[],"src":"4386:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38519,"nodeType":"FunctionDefinition","src":"5427:178:41","nodes":[],"body":{"id":38518,"nodeType":"Block","src":"5493:112:41","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":38509,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38704,"src":"5510:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5510:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":38511,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38221,"src":"5528:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5510:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":38514,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38549,"src":"5574:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":38515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5574:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":38516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5510:88:41","trueExpression":{"id":38513,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38223,"src":"5547:24:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":38508,"id":38517,"nodeType":"Return","src":"5503:95:41"}]},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"5436:16:41","parameters":{"id":38505,"nodeType":"ParameterList","parameters":[],"src":"5452:2:41"},"returnParameters":{"id":38508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38519,"src":"5484:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5484:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5483:9:41"},"scope":38705,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":38549,"nodeType":"FunctionDefinition","src":"5611:404:41","nodes":[],"body":{"id":38548,"nodeType":"Block","src":"5685:330:41","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":38528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5763:84:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":38527,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5753:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:95:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":38533,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38137,"src":"5882:5:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":38532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5876:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":38531,"name":"bytes","nodeType":"ElementaryTypeName","src":"5876:5:41","typeDescriptions":{}}},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5876:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":38530,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5866:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5866:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":38537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5917:3:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":38536,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5907:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":38539,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38704,"src":"5939:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5939:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":38543,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5979:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}],"id":38542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5971:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38541,"name":"address","nodeType":"ElementaryTypeName","src":"5971:7:41","typeDescriptions":{}}},"id":38544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5971:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5725:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5729:6:41","memberName":"encode","nodeType":"MemberAccess","src":"5725:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5725:273:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":38524,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5702:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5702:306:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":38523,"id":38547,"nodeType":"Return","src":"5695:313:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"5620:22:41","parameters":{"id":38520,"nodeType":"ParameterList","parameters":[],"src":"5642:2:41"},"returnParameters":{"id":38523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38549,"src":"5676:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5676:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5675:9:41"},"scope":38705,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":38584,"nodeType":"FunctionDefinition","src":"6209:221:41","nodes":[],"body":{"id":38583,"nodeType":"Block","src":"6269:161:41","nodes":[],"statements":[{"expression":{"id":38561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38556,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6279:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38558,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6299:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38559,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38553,"src":"6313:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38557,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"6294:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6279:41:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38562,"nodeType":"ExpressionStatement","src":"6279:41:41"},{"expression":{"id":38572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38563,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6330:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38565,"indexExpression":{"id":38564,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"6341:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6330:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38567,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6352:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38569,"indexExpression":{"id":38568,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"6363:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38553,"src":"6368:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38566,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"6347:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6347:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6330:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38573,"nodeType":"ExpressionStatement","src":"6330:45:41"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":38577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6408:1:41","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":38576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6400:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38575,"name":"address","nodeType":"ElementaryTypeName","src":"6400:7:41","typeDescriptions":{}}},"id":38578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6400:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38579,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"6412:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38553,"src":"6416:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38574,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"6391:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6391:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38582,"nodeType":"EmitStatement","src":"6386:37:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6218:5:41","parameters":{"id":38554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38551,"mutability":"mutable","name":"to","nameLocation":"6232:2:41","nodeType":"VariableDeclaration","scope":38584,"src":"6224:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38550,"name":"address","nodeType":"ElementaryTypeName","src":"6224:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38553,"mutability":"mutable","name":"amount","nameLocation":"6244:6:41","nodeType":"VariableDeclaration","scope":38584,"src":"6236:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38552,"name":"uint256","nodeType":"ElementaryTypeName","src":"6236:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6223:28:41"},"returnParameters":{"id":38555,"nodeType":"ParameterList","parameters":[],"src":"6269:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":38619,"nodeType":"FunctionDefinition","src":"6436:229:41","nodes":[],"body":{"id":38618,"nodeType":"Block","src":"6498:167:41","nodes":[],"statements":[{"expression":{"id":38600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38591,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6508:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38593,"indexExpression":{"id":38592,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38586,"src":"6519:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6508:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38595,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6532:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38597,"indexExpression":{"id":38596,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38586,"src":"6543:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6532:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38598,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"6550:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38594,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"6527:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6527:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6508:49:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38601,"nodeType":"ExpressionStatement","src":"6508:49:41"},{"expression":{"id":38607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38602,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6567:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38604,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6587:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38605,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"6601:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38603,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"6582:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6567:41:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38608,"nodeType":"ExpressionStatement","src":"6567:41:41"},{"eventCall":{"arguments":[{"id":38610,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38586,"src":"6633:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":38613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6647:1:41","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":38612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6639:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38611,"name":"address","nodeType":"ElementaryTypeName","src":"6639:7:41","typeDescriptions":{}}},"id":38614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6639:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38615,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"6651:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38609,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"6624:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6624:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38617,"nodeType":"EmitStatement","src":"6619:39:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6445:5:41","parameters":{"id":38589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38586,"mutability":"mutable","name":"from","nameLocation":"6459:4:41","nodeType":"VariableDeclaration","scope":38619,"src":"6451:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38585,"name":"address","nodeType":"ElementaryTypeName","src":"6451:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38588,"mutability":"mutable","name":"amount","nameLocation":"6473:6:41","nodeType":"VariableDeclaration","scope":38619,"src":"6465:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38587,"name":"uint256","nodeType":"ElementaryTypeName","src":"6465:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6450:30:41"},"returnParameters":{"id":38590,"nodeType":"ParameterList","parameters":[],"src":"6498:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":38644,"nodeType":"FunctionDefinition","src":"6859:173:41","nodes":[],"body":{"id":38643,"nodeType":"Block","src":"6927:105:41","nodes":[],"statements":[{"assignments":[38629],"declarations":[{"constant":false,"id":38629,"mutability":"mutable","name":"c","nameLocation":"6945:1:41","nodeType":"VariableDeclaration","scope":38643,"src":"6937:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38628,"name":"uint256","nodeType":"ElementaryTypeName","src":"6937:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38630,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38621,"src":"6949:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":38631,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38623,"src":"6953:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6949:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6937:17:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38635,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38629,"src":"6972:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":38636,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38621,"src":"6977:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6972:6:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206164646974696f6e206f766572666c6f77","id":38638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6980:26:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_74f676cd2e283c0e66b6d0717943544332197bd372b775cf0e7a53907f5c5d11","typeString":"literal_string \"ERC20: addition overflow\""},"value":"ERC20: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74f676cd2e283c0e66b6d0717943544332197bd372b775cf0e7a53907f5c5d11","typeString":"literal_string \"ERC20: addition overflow\""}],"id":38634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6964:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6964:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38640,"nodeType":"ExpressionStatement","src":"6964:43:41"},{"expression":{"id":38641,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38629,"src":"7024:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38627,"id":38642,"nodeType":"Return","src":"7017:8:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"6868:4:41","parameters":{"id":38624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38621,"mutability":"mutable","name":"a","nameLocation":"6881:1:41","nodeType":"VariableDeclaration","scope":38644,"src":"6873:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38620,"name":"uint256","nodeType":"ElementaryTypeName","src":"6873:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38623,"mutability":"mutable","name":"b","nameLocation":"6892:1:41","nodeType":"VariableDeclaration","scope":38644,"src":"6884:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38622,"name":"uint256","nodeType":"ElementaryTypeName","src":"6884:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6872:22:41"},"returnParameters":{"id":38627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38644,"src":"6918:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38625,"name":"uint256","nodeType":"ElementaryTypeName","src":"6918:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6917:9:41"},"scope":38705,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38665,"nodeType":"FunctionDefinition","src":"7038:154:41","nodes":[],"body":{"id":38664,"nodeType":"Block","src":"7106:86:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38654,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38646,"src":"7124:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":38655,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38648,"src":"7129:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7124:6:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207375627472616374696f6e20756e646572666c6f77","id":38657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7132:30:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_51030fc2fc57ce7527c9e329debac907fc652c2c136d851e4f42cbce1710c274","typeString":"literal_string \"ERC20: subtraction underflow\""},"value":"ERC20: subtraction underflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51030fc2fc57ce7527c9e329debac907fc652c2c136d851e4f42cbce1710c274","typeString":"literal_string \"ERC20: subtraction underflow\""}],"id":38653,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7116:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7116:47:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38659,"nodeType":"ExpressionStatement","src":"7116:47:41"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38660,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38646,"src":"7180:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38661,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38648,"src":"7184:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7180:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38652,"id":38663,"nodeType":"Return","src":"7173:12:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sub","nameLocation":"7047:4:41","parameters":{"id":38649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38646,"mutability":"mutable","name":"a","nameLocation":"7060:1:41","nodeType":"VariableDeclaration","scope":38665,"src":"7052:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38645,"name":"uint256","nodeType":"ElementaryTypeName","src":"7052:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38648,"mutability":"mutable","name":"b","nameLocation":"7071:1:41","nodeType":"VariableDeclaration","scope":38665,"src":"7063:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38647,"name":"uint256","nodeType":"ElementaryTypeName","src":"7063:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7051:22:41"},"returnParameters":{"id":38652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38665,"src":"7097:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38650,"name":"uint256","nodeType":"ElementaryTypeName","src":"7097:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7096:9:41"},"scope":38705,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38677,"nodeType":"FunctionDefinition","src":"7735:276:41","nodes":[],"body":{"id":38676,"nodeType":"Block","src":"7798:213:41","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7893:44:41","statements":[{"nodeType":"YulAssignment","src":"7907:20:41","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"7918:7:41"},"nodeType":"YulFunctionCall","src":"7918:9:41"},"variableNames":[{"name":"chainId","nodeType":"YulIdentifier","src":"7907:7:41"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":38668,"isOffset":false,"isSlot":false,"src":"7907:7:41","valueSize":1}],"id":38670,"nodeType":"InlineAssembly","src":"7884:53:41"},{"expression":{"arguments":[{"id":38673,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7955:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}],"id":38672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7947:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38671,"name":"address","nodeType":"ElementaryTypeName","src":"7947:7:41","typeDescriptions":{}}},"id":38674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7947:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38675,"nodeType":"ExpressionStatement","src":"7947:13:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_viewChainId","nameLocation":"7744:12:41","parameters":{"id":38666,"nodeType":"ParameterList","parameters":[],"src":"7756:2:41"},"returnParameters":{"id":38669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38668,"mutability":"mutable","name":"chainId","nameLocation":"7789:7:41","nodeType":"VariableDeclaration","scope":38677,"src":"7781:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38667,"name":"uint256","nodeType":"ElementaryTypeName","src":"7781:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7780:17:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":38704,"nodeType":"FunctionDefinition","src":"8017:300:41","nodes":[],"body":{"id":38703,"nodeType":"Block","src":"8080:237:41","nodes":[],"statements":[{"assignments":[38687],"declarations":[{"constant":false,"id":38687,"mutability":"mutable","name":"fnIn","nameLocation":"8133:4:41","nodeType":"VariableDeclaration","scope":38703,"src":"8090:47:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"typeName":{"id":38686,"nodeType":"FunctionTypeName","parameterTypes":{"id":38682,"nodeType":"ParameterList","parameters":[],"src":"8098:2:41"},"returnParameterTypes":{"id":38685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38686,"src":"8124:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38683,"name":"uint256","nodeType":"ElementaryTypeName","src":"8124:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8123:9:41"},"src":"8090:47:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":38689,"initialValue":{"id":38688,"name":"_viewChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38677,"src":"8140:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8090:62:41"},{"assignments":[38695],"declarations":[{"constant":false,"id":38695,"mutability":"mutable","name":"pureChainId","nameLocation":"8205:11:41","nodeType":"VariableDeclaration","scope":38703,"src":"8162:54:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"typeName":{"id":38694,"nodeType":"FunctionTypeName","parameterTypes":{"id":38690,"nodeType":"ParameterList","parameters":[],"src":"8170:2:41"},"returnParameterTypes":{"id":38693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38694,"src":"8196:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38691,"name":"uint256","nodeType":"ElementaryTypeName","src":"8196:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8195:9:41"},"src":"8162:54:41","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":38696,"nodeType":"VariableDeclarationStatement","src":"8162:54:41"},{"AST":{"nodeType":"YulBlock","src":"8235:43:41","statements":[{"nodeType":"YulAssignment","src":"8249:19:41","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"8264:4:41"},"variableNames":[{"name":"pureChainId","nodeType":"YulIdentifier","src":"8249:11:41"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":38687,"isOffset":false,"isSlot":false,"src":"8264:4:41","valueSize":1},{"declaration":38695,"isOffset":false,"isSlot":false,"src":"8249:11:41","valueSize":1}],"id":38697,"nodeType":"InlineAssembly","src":"8226:52:41"},{"expression":{"id":38701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38698,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38680,"src":"8287:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":38699,"name":"pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38695,"src":"8297:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8297:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8287:23:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38702,"nodeType":"ExpressionStatement","src":"8287:23:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pureChainId","nameLocation":"8026:12:41","parameters":{"id":38678,"nodeType":"ParameterList","parameters":[],"src":"8038:2:41"},"returnParameters":{"id":38681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38680,"mutability":"mutable","name":"chainId","nameLocation":"8071:7:41","nodeType":"VariableDeclaration","scope":38704,"src":"8063:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38679,"name":"uint256","nodeType":"ElementaryTypeName","src":"8063:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8062:17:41"},"scope":38705,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":38134,"name":"IERC20","nameLocations":["391:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":37781,"src":"391:6:41"},"id":38135,"nodeType":"InheritanceSpecifier","src":"391:6:41"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":38133,"nodeType":"StructuredDocumentation","src":"115:254:41","text":"@notice This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\n @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol"},"fullyImplemented":true,"linearizedBaseContracts":[38705,37781],"name":"MockERC20","nameLocation":"378:9:41","scope":38706,"usedErrors":[]}],"license":"MIT"},"id":41} \ No newline at end of file +{"abi":[{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"value","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50610eb9806100206000396000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101c5578063a9059cbb146101cd578063d505accf146101e0578063dd62ed3e146101f357600080fd5b80633644e5151461017457806370a082311461017c5780637ecebe00146101a557600080fd5b806318160ddd116100bd57806318160ddd1461013a57806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b3146101025780631624f6c614610125575b600080fd5b6100ec61022c565b6040516100f991906109bf565b60405180910390f35b610115610110366004610a29565b6102be565b60405190151581526020016100f9565b610138610133366004610b07565b61032b565b005b6003545b6040519081526020016100f9565b61011561015a366004610b7b565b6103d4565b60025460405160ff90911681526020016100f9565b61013e6104e9565b61013e61018a366004610bb7565b6001600160a01b031660009081526004602052604090205490565b61013e6101b3366004610bb7565b60086020526000908152604090205481565b6100ec61050f565b6101156101db366004610a29565b61051e565b6101386101ee366004610bd2565b6105b5565b61013e610201366004610c3c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60606000805461023b90610c6f565b80601f016020809104026020016040519081016040528092919081815260200182805461026790610c6f565b80156102b45780601f10610289576101008083540402835291602001916102b4565b820191906000526020600020905b81548152906001019060200180831161029757829003601f168201915b5050505050905090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103199086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103835760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b600061038f8482610cf8565b50600161039c8382610cf8565b506002805460ff191660ff83161790556103b461083d565b6006556103bf610856565b60075550506009805460ff1916600117905550565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146104305761040b81846108f9565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461045390846108f9565b6001600160a01b038087166000908152600460205260408082209390935590861681522054610482908461095c565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104d69087815260200190565b60405180910390a3506001949350505050565b60006006546104f661083d565b1461050857610503610856565b905090565b5060075490565b60606001805461023b90610c6f565b3360009081526004602052604081205461053890836108f9565b33600090815260046020526040808220929092556001600160a01b03851681522054610564908361095c565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103199086815260200190565b428410156106055760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161037a565b600060016106116104e9565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061065f83610dce565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106f39291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107875750876001600160a01b0316816001600160a01b0316145b6107d35760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161037a565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b60006109bb8061084f63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108889190610de7565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108b961083d565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008183101561094b5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161037a565b6109558284610e5d565b9392505050565b6000806109698385610e70565b9050838110156109555760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161037a565b4690565b600060208083528351808285015260005b818110156109ec578581018301518582016040015282016109d0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a2457600080fd5b919050565b60008060408385031215610a3c57600080fd5b610a4583610a0d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a7a57600080fd5b813567ffffffffffffffff80821115610a9557610a95610a53565b604051601f8301601f19908116603f01168101908282118183101715610abd57610abd610a53565b81604052838152866020858801011115610ad657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff81168114610a2457600080fd5b600080600060608486031215610b1c57600080fd5b833567ffffffffffffffff80821115610b3457600080fd5b610b4087838801610a69565b94506020860135915080821115610b5657600080fd5b50610b6386828701610a69565b925050610b7260408501610af6565b90509250925092565b600080600060608486031215610b9057600080fd5b610b9984610a0d565b9250610ba760208501610a0d565b9150604084013590509250925092565b600060208284031215610bc957600080fd5b61095582610a0d565b600080600080600080600060e0888a031215610bed57600080fd5b610bf688610a0d565b9650610c0460208901610a0d565b95506040880135945060608801359350610c2060808901610af6565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610c4f57600080fd5b610c5883610a0d565b9150610c6660208401610a0d565b90509250929050565b600181811c90821680610c8357607f821691505b602082108103610ca357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cf357600081815260208120601f850160051c81016020861015610cd05750805b601f850160051c820191505b81811015610cef57828155600101610cdc565b5050505b505050565b815167ffffffffffffffff811115610d1257610d12610a53565b610d2681610d208454610c6f565b84610ca9565b602080601f831160018114610d5b5760008415610d435750858301515b600019600386901b1c1916600185901b178555610cef565b600085815260208120601f198616915b82811015610d8a57888601518255948401946001909101908401610d6b565b5085821015610da85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610de057610de0610db8565b5060010190565b6000808354610df581610c6f565b60018281168015610e0d5760018114610e2257610e51565b60ff1984168752821515830287019450610e51565b8760005260208060002060005b85811015610e485781548a820152908401908201610e2f565b50505082870194505b50929695505050505050565b8181038181111561032557610325610db8565b8082018082111561032557610325610db856fea2646970667358221220b1ec76292263978d7a4065f4e4b63c398b5a1dc9e4ac8194ecc7c57fdab80d6264736f6c63430008130033","sourceMap":"369:7950:41:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100df5760003560e01c80633644e5151161008c57806395d89b411161006657806395d89b41146101c5578063a9059cbb146101cd578063d505accf146101e0578063dd62ed3e146101f357600080fd5b80633644e5151461017457806370a082311461017c5780637ecebe00146101a557600080fd5b806318160ddd116100bd57806318160ddd1461013a57806323b872dd1461014c578063313ce5671461015f57600080fd5b806306fdde03146100e4578063095ea7b3146101025780631624f6c614610125575b600080fd5b6100ec61022c565b6040516100f991906109bf565b60405180910390f35b610115610110366004610a29565b6102be565b60405190151581526020016100f9565b610138610133366004610b07565b61032b565b005b6003545b6040519081526020016100f9565b61011561015a366004610b7b565b6103d4565b60025460405160ff90911681526020016100f9565b61013e6104e9565b61013e61018a366004610bb7565b6001600160a01b031660009081526004602052604090205490565b61013e6101b3366004610bb7565b60086020526000908152604090205481565b6100ec61050f565b6101156101db366004610a29565b61051e565b6101386101ee366004610bd2565b6105b5565b61013e610201366004610c3c565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b60606000805461023b90610c6f565b80601f016020809104026020016040519081016040528092919081815260200182805461026790610c6f565b80156102b45780601f10610289576101008083540402835291602001916102b4565b820191906000526020600020905b81548152906001019060200180831161029757829003601f168201915b5050505050905090565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103199086815260200190565b60405180910390a35060015b92915050565b60095460ff16156103835760405162461bcd60e51b815260206004820152601360248201527f414c52454144595f494e495449414c495a45440000000000000000000000000060448201526064015b60405180910390fd5b600061038f8482610cf8565b50600161039c8382610cf8565b506002805460ff191660ff83161790556103b461083d565b6006556103bf610856565b60075550506009805460ff1916600117905550565b6001600160a01b038316600090815260056020908152604080832033845290915281205460001981146104305761040b81846108f9565b6001600160a01b03861660009081526005602090815260408083203384529091529020555b6001600160a01b03851660009081526004602052604090205461045390846108f9565b6001600160a01b038087166000908152600460205260408082209390935590861681522054610482908461095c565b6001600160a01b0380861660008181526004602052604090819020939093559151908716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906104d69087815260200190565b60405180910390a3506001949350505050565b60006006546104f661083d565b1461050857610503610856565b905090565b5060075490565b60606001805461023b90610c6f565b3360009081526004602052604081205461053890836108f9565b33600090815260046020526040808220929092556001600160a01b03851681522054610564908361095c565b6001600160a01b0384166000818152600460205260409081902092909255905133907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906103199086815260200190565b428410156106055760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f45585049524544000000000000000000604482015260640161037a565b600060016106116104e9565b6001600160a01b038a16600090815260086020526040812080547f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9928d928d928d9290919061065f83610dce565b909155506040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810188905260e001604051602081830303815290604052805190602001206040516020016106f39291907f190100000000000000000000000000000000000000000000000000000000000081526002810192909252602282015260420190565b60408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa158015610751573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906107875750876001600160a01b0316816001600160a01b0316145b6107d35760405162461bcd60e51b815260206004820152600e60248201527f494e56414c49445f5349474e4552000000000000000000000000000000000000604482015260640161037a565b6001600160a01b0381811660009081526005602090815260408083208b8516808552908352928190208a90555189815291928b16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a35050505050505050565b60006109bb8061084f63ffffffff8216565b9250505090565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60006040516108889190610de7565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc66108b961083d565b604080516020810195909552840192909252606083015260808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60008183101561094b5760405162461bcd60e51b815260206004820152601c60248201527f45524332303a207375627472616374696f6e20756e646572666c6f7700000000604482015260640161037a565b6109558284610e5d565b9392505050565b6000806109698385610e70565b9050838110156109555760405162461bcd60e51b815260206004820152601860248201527f45524332303a206164646974696f6e206f766572666c6f770000000000000000604482015260640161037a565b4690565b600060208083528351808285015260005b818110156109ec578581018301518582016040015282016109d0565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610a2457600080fd5b919050565b60008060408385031215610a3c57600080fd5b610a4583610a0d565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112610a7a57600080fd5b813567ffffffffffffffff80821115610a9557610a95610a53565b604051601f8301601f19908116603f01168101908282118183101715610abd57610abd610a53565b81604052838152866020858801011115610ad657600080fd5b836020870160208301376000602085830101528094505050505092915050565b803560ff81168114610a2457600080fd5b600080600060608486031215610b1c57600080fd5b833567ffffffffffffffff80821115610b3457600080fd5b610b4087838801610a69565b94506020860135915080821115610b5657600080fd5b50610b6386828701610a69565b925050610b7260408501610af6565b90509250925092565b600080600060608486031215610b9057600080fd5b610b9984610a0d565b9250610ba760208501610a0d565b9150604084013590509250925092565b600060208284031215610bc957600080fd5b61095582610a0d565b600080600080600080600060e0888a031215610bed57600080fd5b610bf688610a0d565b9650610c0460208901610a0d565b95506040880135945060608801359350610c2060808901610af6565b925060a0880135915060c0880135905092959891949750929550565b60008060408385031215610c4f57600080fd5b610c5883610a0d565b9150610c6660208401610a0d565b90509250929050565b600181811c90821680610c8357607f821691505b602082108103610ca357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610cf357600081815260208120601f850160051c81016020861015610cd05750805b601f850160051c820191505b81811015610cef57828155600101610cdc565b5050505b505050565b815167ffffffffffffffff811115610d1257610d12610a53565b610d2681610d208454610c6f565b84610ca9565b602080601f831160018114610d5b5760008415610d435750858301515b600019600386901b1c1916600185901b178555610cef565b600085815260208120601f198616915b82811015610d8a57888601518255948401946001909101908401610d6b565b5085821015610da85787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201610de057610de0610db8565b5060010190565b6000808354610df581610c6f565b60018281168015610e0d5760018114610e2257610e51565b60ff1984168752821515830287019450610e51565b8760005260208060002060005b85811015610e485781548a820152908401908201610e2f565b50505082870194505b50929695505050505050565b8181038181111561032557610325610db8565b8082018082111561032557610325610db856fea2646970667358221220b1ec76292263978d7a4065f4e4b63c398b5a1dc9e4ac8194ecc7c57fdab80d6264736f6c63430008130033","sourceMap":"369:7950:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3057:221;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:145;;1185:22;1167:41;;1155:2;1140:18;3057:221:41;1027:187:145;2504:365:41;;;;;;:::i;:::-;;:::i;:::-;;1322:100;1403:12;;1322:100;;;3057:25:145;;;3045:2;3030:18;1322:100:41;2911:177:145;3578:472:41;;;;;;:::i;:::-;;:::i;877:92::-;953:9;;877:92;;953:9;;;;3568:36:145;;3556:2;3541:18;877:92:41;3426:184:145;5427:178:41;;;:::i;1428:116::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1520:17:41;1494:7;1520:17;;;:10;:17;;;;;;;1428:116;1970:41;;;;;;:::i;:::-;;;;;;;;;;;;;;775:96;;;:::i;3284:288::-;;;;;;:::i;:::-;;:::i;4239:1182::-;;;;;;:::i;:::-;;:::i;1550:142::-;;;;;;:::i;:::-;-1:-1:-1;;;;;1659:17:41;;;1633:7;1659:17;;;:10;:17;;;;;;;;:26;;;;;;;;;;;;;1550:142;677:92;725:13;757:5;750:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;677:92;:::o;3057:221::-;3167:10;3140:4;3156:22;;;:10;:22;;;;;;;;-1:-1:-1;;;;;3156:31:41;;;;;;;;;;:40;;;3212:37;3140:4;;3156:31;;3212:37;;;;3190:6;3057:25:145;;3045:2;3030:18;;2911:177;3212:37:41;;;;;;;;-1:-1:-1;3267:4:41;3057:221;;;;;:::o;2504:365::-;2611:11;;;;2610:12;2602:44;;;;-1:-1:-1;;;2602:44:41;;5508:2:145;2602:44:41;;;5490:21:145;5547:2;5527:18;;;5520:30;5586:21;5566:18;;;5559:49;5625:18;;2602:44:41;;;;;;;;;2657:5;:13;2665:5;2657;:13;:::i;:::-;-1:-1:-1;2680:7:41;:17;2690:7;2680;:17;:::i;:::-;-1:-1:-1;2707:9:41;:21;;-1:-1:-1;;2707:21:41;;;;;;;2758:14;:12;:14::i;:::-;2739:16;:33;2809:24;:22;:24::i;:::-;2782;:51;-1:-1:-1;;2844:11:41;:18;;-1:-1:-1;;2844:18:41;2858:4;2844:18;;;-1:-1:-1;2504:365:41:o;3578:472::-;-1:-1:-1;;;;;3709:16:41;;3675:4;3709:16;;;:10;:16;;;;;;;;3726:10;3709:28;;;;;;;;-1:-1:-1;;3788:22:41;;3784:80;;3843:21;3848:7;3857:6;3843:4;:21::i;:::-;-1:-1:-1;;;;;3812:16:41;;;;;;:10;:16;;;;;;;;3829:10;3812:28;;;;;;;:52;3784:80;-1:-1:-1;;;;;3899:16:41;;;;;;:10;:16;;;;;;3894:30;;3917:6;3894:4;:30::i;:::-;-1:-1:-1;;;;;3875:16:41;;;;;;;:10;:16;;;;;;:49;;;;3956:14;;;;;;;3951:28;;3972:6;3951:4;:28::i;:::-;-1:-1:-1;;;;;3934:14:41;;;;;;;:10;:14;;;;;;;:45;;;;3995:26;;;;;;;;;;4014:6;3057:25:145;;3045:2;3030:18;;2911:177;3995:26:41;;;;;;;;-1:-1:-1;4039:4:41;;3578:472;-1:-1:-1;;;;3578:472:41:o;5427:178::-;5484:7;5528:16;;5510:14;:12;:14::i;:::-;:34;:88;;5574:24;:22;:24::i;:::-;5503:95;;5427:178;:::o;5510:88::-;-1:-1:-1;5547:24:41;;;5427:178::o;775:96::-;825:13;857:7;850:14;;;;;:::i;3284:288::-;3420:10;3363:4;3409:22;;;:10;:22;;;;;;3404:36;;3433:6;3404:4;:36::i;:::-;3390:10;3379:22;;;;:10;:22;;;;;;:61;;;;-1:-1:-1;;;;;3472:14:41;;;;;;3467:28;;3488:6;3467:4;:28::i;:::-;-1:-1:-1;;;;;3450:14:41;;;;;;:10;:14;;;;;;;:45;;;;3511:32;;3520:10;;3511:32;;;;3536:6;3057:25:145;;3045:2;3030:18;;2911:177;4239:1182:41;4416:15;4404:8;:27;;4396:63;;;;-1:-1:-1;;;4396:63:41;;8060:2:145;4396:63:41;;;8042:21:145;8099:2;8079:18;;;8072:30;8138:25;8118:18;;;8111:53;8181:18;;4396:63:41;7858:347:145;4396:63:41;4470:24;4497:717;4617:18;:16;:18::i;:::-;-1:-1:-1;;;;;5026:13:41;;;;;;:6;:13;;;;;:15;;4732:157;;4919:5;;4954:7;;4991:5;;5026:15;;:13;:15;;;:::i;:::-;;;;-1:-1:-1;4692:413:41;;;;;;8826:25:145;;;;-1:-1:-1;;;;;8948:15:145;;;8928:18;;;8921:43;9000:15;;;;8980:18;;;8973:43;9032:18;;;9025:34;9075:19;;;9068:35;9119:19;;;9112:35;;;8798:19;;4692:413:41;;;;;;;;;;;;4657:470;;;;;;4547:598;;;;;;;;9428:66:145;9416:79;;9520:1;9511:11;;9504:27;;;;9556:2;9547:12;;9540:28;9593:2;9584:12;;9158:444;4547:598:41;;;;-1:-1:-1;;4547:598:41;;;;;;;;;4520:639;;4547:598;4520:639;;;;4497:717;;;;;;;;;9834:25:145;9907:4;9895:17;;9875:18;;;9868:45;9929:18;;;9922:34;;;9972:18;;;9965:34;;;9806:19;;4497:717:41;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;4497:717:41;;-1:-1:-1;;4497:717:41;;;-1:-1:-1;;;;;;;5233:30:41;;;;;;:59;;;5287:5;-1:-1:-1;;;;;5267:25:41;:16;-1:-1:-1;;;;;5267:25:41;;5233:59;5225:86;;;;-1:-1:-1;;;5225:86:41;;10212:2:145;5225:86:41;;;10194:21:145;10251:2;10231:18;;;10224:30;10290:16;10270:18;;;10263:44;10324:18;;5225:86:41;10010:338:145;5225:86:41;-1:-1:-1;;;;;5322:28:41;;;;;;;:10;:28;;;;;;;;:37;;;;;;;;;;;;;:45;;;5383:31;3057:25:145;;;5322:37:41;;5383:31;;;;;3030:18:145;5383:31:41;;;;;;;4386:1035;4239:1182;;;;;;;:::o;8017:300::-;8063:15;8140:12;;8297:13;;;;:::i;:::-;8287:23;;8080:237;;8017:300;:::o;5611:404::-;5676:7;5753:95;5882:5;5866:23;;;;;;:::i;:::-;;;;;;;;5907:14;5939;:12;:14::i;:::-;5725:273;;;;;;11461:25:145;;;;11502:18;;11495:34;;;;11545:18;;;11538:34;11588:18;;;11581:34;5979:4:41;11631:19:145;;;11624:84;11433:19;;5725:273:41;;;;;;;;;;;;5702:306;;;;;;5695:313;;5611:404;:::o;7038:154::-;7097:7;7129:1;7124;:6;;7116:47;;;;-1:-1:-1;;;7116:47:41;;11921:2:145;7116:47:41;;;11903:21:145;11960:2;11940:18;;;11933:30;11999;11979:18;;;11972:58;12047:18;;7116:47:41;11719:352:145;7116:47:41;7180:5;7184:1;7180;:5;:::i;:::-;7173:12;7038:154;-1:-1:-1;;;7038:154:41:o;6859:173::-;6918:7;;6949:5;6953:1;6949;:5;:::i;:::-;6937:17;;6977:1;6972;:6;;6964:43;;;;-1:-1:-1;;;6964:43:41;;12541:2:145;6964:43:41;;;12523:21:145;12580:2;12560:18;;;12553:30;12619:26;12599:18;;;12592:54;12663:18;;6964:43:41;12339:348:145;7735:276:41;7918:9;;7735:276::o;14:548:145:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;-1:-1:-1;;;;;684:54:145;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:145:o;1219:184::-;-1:-1:-1;;;1268:1:145;1261:88;1368:4;1365:1;1358:15;1392:4;1389:1;1382:15;1408:719;1451:5;1504:3;1497:4;1489:6;1485:17;1481:27;1471:55;;1522:1;1519;1512:12;1471:55;1558:6;1545:20;1584:18;1621:2;1617;1614:10;1611:36;;;1627:18;;:::i;:::-;1702:2;1696:9;1670:2;1756:13;;-1:-1:-1;;1752:22:145;;;1776:2;1748:31;1744:40;1732:53;;;1800:18;;;1820:22;;;1797:46;1794:72;;;1846:18;;:::i;:::-;1886:10;1882:2;1875:22;1921:2;1913:6;1906:18;1967:3;1960:4;1955:2;1947:6;1943:15;1939:26;1936:35;1933:55;;;1984:1;1981;1974:12;1933:55;2048:2;2041:4;2033:6;2029:17;2022:4;2014:6;2010:17;1997:54;2095:1;2088:4;2083:2;2075:6;2071:15;2067:26;2060:37;2115:6;2106:15;;;;;;1408:719;;;;:::o;2132:156::-;2198:20;;2258:4;2247:16;;2237:27;;2227:55;;2278:1;2275;2268:12;2293:613;2388:6;2396;2404;2457:2;2445:9;2436:7;2432:23;2428:32;2425:52;;;2473:1;2470;2463:12;2425:52;2513:9;2500:23;2542:18;2583:2;2575:6;2572:14;2569:34;;;2599:1;2596;2589:12;2569:34;2622:50;2664:7;2655:6;2644:9;2640:22;2622:50;:::i;:::-;2612:60;;2725:2;2714:9;2710:18;2697:32;2681:48;;2754:2;2744:8;2741:16;2738:36;;;2770:1;2767;2760:12;2738:36;;2793:52;2837:7;2826:8;2815:9;2811:24;2793:52;:::i;:::-;2783:62;;;2864:36;2896:2;2885:9;2881:18;2864:36;:::i;:::-;2854:46;;2293:613;;;;;:::o;3093:328::-;3170:6;3178;3186;3239:2;3227:9;3218:7;3214:23;3210:32;3207:52;;;3255:1;3252;3245:12;3207:52;3278:29;3297:9;3278:29;:::i;:::-;3268:39;;3326:38;3360:2;3349:9;3345:18;3326:38;:::i;:::-;3316:48;;3411:2;3400:9;3396:18;3383:32;3373:42;;3093:328;;;;;:::o;3797:186::-;3856:6;3909:2;3897:9;3888:7;3884:23;3880:32;3877:52;;;3925:1;3922;3915:12;3877:52;3948:29;3967:9;3948:29;:::i;3988:606::-;4099:6;4107;4115;4123;4131;4139;4147;4200:3;4188:9;4179:7;4175:23;4171:33;4168:53;;;4217:1;4214;4207:12;4168:53;4240:29;4259:9;4240:29;:::i;:::-;4230:39;;4288:38;4322:2;4311:9;4307:18;4288:38;:::i;:::-;4278:48;;4373:2;4362:9;4358:18;4345:32;4335:42;;4424:2;4413:9;4409:18;4396:32;4386:42;;4447:37;4479:3;4468:9;4464:19;4447:37;:::i;:::-;4437:47;;4531:3;4520:9;4516:19;4503:33;4493:43;;4583:3;4572:9;4568:19;4555:33;4545:43;;3988:606;;;;;;;;;;:::o;4599:260::-;4667:6;4675;4728:2;4716:9;4707:7;4703:23;4699:32;4696:52;;;4744:1;4741;4734:12;4696:52;4767:29;4786:9;4767:29;:::i;:::-;4757:39;;4815:38;4849:2;4838:9;4834:18;4815:38;:::i;:::-;4805:48;;4599:260;;;;;:::o;4864:437::-;4943:1;4939:12;;;;4986;;;5007:61;;5061:4;5053:6;5049:17;5039:27;;5007:61;5114:2;5106:6;5103:14;5083:18;5080:38;5077:218;;-1:-1:-1;;;5148:1:145;5141:88;5252:4;5249:1;5242:15;5280:4;5277:1;5270:15;5077:218;;4864:437;;;:::o;5780:545::-;5882:2;5877:3;5874:11;5871:448;;;5918:1;5943:5;5939:2;5932:17;5988:4;5984:2;5974:19;6058:2;6046:10;6042:19;6039:1;6035:27;6029:4;6025:38;6094:4;6082:10;6079:20;6076:47;;;-1:-1:-1;6117:4:145;6076:47;6172:2;6167:3;6163:12;6160:1;6156:20;6150:4;6146:31;6136:41;;6227:82;6245:2;6238:5;6235:13;6227:82;;;6290:17;;;6271:1;6260:13;6227:82;;;6231:3;;;5871:448;5780:545;;;:::o;6501:1352::-;6627:3;6621:10;6654:18;6646:6;6643:30;6640:56;;;6676:18;;:::i;:::-;6705:97;6795:6;6755:38;6787:4;6781:11;6755:38;:::i;:::-;6749:4;6705:97;:::i;:::-;6857:4;;6921:2;6910:14;;6938:1;6933:663;;;;7640:1;7657:6;7654:89;;;-1:-1:-1;7709:19:145;;;7703:26;7654:89;-1:-1:-1;;6458:1:145;6454:11;;;6450:24;6446:29;6436:40;6482:1;6478:11;;;6433:57;7756:81;;6903:944;;6933:663;5727:1;5720:14;;;5764:4;5751:18;;-1:-1:-1;;6969:20:145;;;7087:236;7101:7;7098:1;7095:14;7087:236;;;7190:19;;;7184:26;7169:42;;7282:27;;;;7250:1;7238:14;;;;7117:19;;7087:236;;;7091:3;7351:6;7342:7;7339:19;7336:201;;;7412:19;;;7406:26;-1:-1:-1;;7495:1:145;7491:14;;;7507:3;7487:24;7483:37;7479:42;7464:58;7449:74;;7336:201;-1:-1:-1;;;;;7583:1:145;7567:14;;;7563:22;7550:36;;-1:-1:-1;6501:1352:145:o;8210:184::-;-1:-1:-1;;;8259:1:145;8252:88;8359:4;8356:1;8349:15;8383:4;8380:1;8373:15;8399:135;8438:3;8459:17;;;8456:43;;8479:18;;:::i;:::-;-1:-1:-1;8526:1:145;8515:13;;8399:135::o;10353:844::-;10483:3;10512:1;10545:6;10539:13;10575:36;10601:9;10575:36;:::i;:::-;10630:1;10647:18;;;10674:133;;;;10821:1;10816:356;;;;10640:532;;10674:133;-1:-1:-1;;10707:24:145;;10695:37;;10780:14;;10773:22;10761:35;;10752:45;;;-1:-1:-1;10674:133:145;;10816:356;10847:6;10844:1;10837:17;10877:4;10922:2;10919:1;10909:16;10947:1;10961:165;10975:6;10972:1;10969:13;10961:165;;;11053:14;;11040:11;;;11033:35;11096:16;;;;10990:10;;10961:165;;;10965:3;;;11155:6;11150:3;11146:16;11139:23;;10640:532;-1:-1:-1;11188:3:145;;10353:844;-1:-1:-1;;;;;;10353:844:145:o;12076:128::-;12143:9;;;12164:11;;;12161:37;;;12178:18;;:::i;12209:125::-;12274:9;;;12295:10;;;12292:36;;;12308:18;;:::i","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","decimals()":"313ce567","initialize(string,string,uint8)":"1624f6c6","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"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\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"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\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol\",\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when the allowance of a `spender` for an `owner` is set, where `value` is the new allowance.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `value` tokens are moved from one account (`from`) to another (`to`).\"}},\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729\"},\"initialize(string,string,uint8)\":{\"details\":\"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once.\"}},\"stateVariables\":{\"initialized\":{\"details\":\"A bool to track whether the contract has been initialized.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"allowance(address,address)\":{\"notice\":\"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`\"},\"approve(address,uint256)\":{\"notice\":\"Sets `amount` as the allowance of `spender` over the caller's tokens.\"},\"decimals()\":{\"notice\":\"Returns the decimals places of the token.\"},\"name()\":{\"notice\":\"Returns the name of the token.\"},\"symbol()\":{\"notice\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"notice\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"notice\":\"Moves `amount` tokens from the caller's account to `to`.\"},\"transferFrom(address,address,uint256)\":{\"notice\":\"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance.\"}},\"notice\":\"This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/forge-std/src/mocks/MockERC20.sol\":\"MockERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"value","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"Be aware of front-running risks: https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729"},"initialize(string,string,uint8)":{"details":"To hide constructor warnings across solc versions due to different constructor visibility requirements and syntaxes, we add an initialization function that can be called only once."}},"version":1},"userdoc":{"kind":"user","methods":{"allowance(address,address)":{"notice":"Returns the remaining number of tokens that `spender` is allowed to spend on behalf of `owner`"},"approve(address,uint256)":{"notice":"Sets `amount` as the allowance of `spender` over the caller's tokens."},"decimals()":{"notice":"Returns the decimals places of the token."},"name()":{"notice":"Returns the name of the token."},"symbol()":{"notice":"Returns the symbol of the token."},"totalSupply()":{"notice":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"notice":"Moves `amount` tokens from the caller's account to `to`."},"transferFrom(address,address,uint256)":{"notice":"Moves `amount` tokens from `from` to `to` using the allowance mechanism. `amount` is then deducted from the caller's allowance."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/forge-std/src/mocks/MockERC20.sol":"MockERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":38137,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":38139,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":38141,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"},{"astId":38170,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_totalSupply","offset":0,"slot":"3","type":"t_uint256"},{"astId":38174,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_balanceOf","offset":0,"slot":"4","type":"t_mapping(t_address,t_uint256)"},{"astId":38180,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"_allowance","offset":0,"slot":"5","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":38221,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"INITIAL_CHAIN_ID","offset":0,"slot":"6","type":"t_uint256"},{"astId":38223,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"INITIAL_DOMAIN_SEPARATOR","offset":0,"slot":"7","type":"t_bytes32"},{"astId":38227,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"nonces","offset":0,"slot":"8","type":"t_mapping(t_address,t_uint256)"},{"astId":38230,"contract":"lib/forge-std/src/mocks/MockERC20.sol:MockERC20","label":"initialized","offset":0,"slot":"9","type":"t_bool"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/forge-std/src/mocks/MockERC20.sol","id":38706,"exportedSymbols":{"IERC20":[37781],"MockERC20":[38705]},"nodeType":"SourceUnit","src":"32:8288:41","nodes":[{"id":38130,"nodeType":"PragmaDirective","src":"32:31:41","nodes":[],"literals":["solidity",">=","0.6",".2","<","0.9",".0"]},{"id":38132,"nodeType":"ImportDirective","src":"65:48:41","nodes":[],"absolutePath":"lib/forge-std/src/interfaces/IERC20.sol","file":"../interfaces/IERC20.sol","nameLocation":"-1:-1:-1","scope":38706,"sourceUnit":37782,"symbolAliases":[{"foreign":{"id":38131,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37781,"src":"73:6:41","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":38705,"nodeType":"ContractDefinition","src":"369:7950:41","nodes":[{"id":38137,"nodeType":"VariableDeclaration","src":"588:21:41","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"604:5:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":38136,"name":"string","nodeType":"ElementaryTypeName","src":"588:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":38139,"nodeType":"VariableDeclaration","src":"616:23:41","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"632:7:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":38138,"name":"string","nodeType":"ElementaryTypeName","src":"616:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":38141,"nodeType":"VariableDeclaration","src":"646:24:41","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"661:9:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38140,"name":"uint8","nodeType":"ElementaryTypeName","src":"646:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":38150,"nodeType":"FunctionDefinition","src":"677:92:41","nodes":[],"body":{"id":38149,"nodeType":"Block","src":"740:29:41","nodes":[],"statements":[{"expression":{"id":38147,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38137,"src":"757:5:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":38146,"id":38148,"nodeType":"Return","src":"750:12:41"}]},"baseFunctions":[37768],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"686:4:41","overrides":{"id":38143,"nodeType":"OverrideSpecifier","overrides":[],"src":"707:8:41"},"parameters":{"id":38142,"nodeType":"ParameterList","parameters":[],"src":"690:2:41"},"returnParameters":{"id":38146,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38145,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38150,"src":"725:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38144,"name":"string","nodeType":"ElementaryTypeName","src":"725:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"724:15:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38159,"nodeType":"FunctionDefinition","src":"775:96:41","nodes":[],"body":{"id":38158,"nodeType":"Block","src":"840:31:41","nodes":[],"statements":[{"expression":{"id":38156,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38139,"src":"857:7:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":38155,"id":38157,"nodeType":"Return","src":"850:14:41"}]},"baseFunctions":[37774],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"784:6:41","overrides":{"id":38152,"nodeType":"OverrideSpecifier","overrides":[],"src":"807:8:41"},"parameters":{"id":38151,"nodeType":"ParameterList","parameters":[],"src":"790:2:41"},"returnParameters":{"id":38155,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38154,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38159,"src":"825:13:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38153,"name":"string","nodeType":"ElementaryTypeName","src":"825:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"824:15:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38168,"nodeType":"FunctionDefinition","src":"877:92:41","nodes":[],"body":{"id":38167,"nodeType":"Block","src":"936:33:41","nodes":[],"statements":[{"expression":{"id":38165,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38141,"src":"953:9:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":38164,"id":38166,"nodeType":"Return","src":"946:16:41"}]},"baseFunctions":[37780],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"886:8:41","overrides":{"id":38161,"nodeType":"OverrideSpecifier","overrides":[],"src":"911:8:41"},"parameters":{"id":38160,"nodeType":"ParameterList","parameters":[],"src":"894:2:41"},"returnParameters":{"id":38164,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38163,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38168,"src":"929:5:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38162,"name":"uint8","nodeType":"ElementaryTypeName","src":"929:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"928:7:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38170,"nodeType":"VariableDeclaration","src":"1158:29:41","nodes":[],"constant":false,"mutability":"mutable","name":"_totalSupply","nameLocation":"1175:12:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38169,"name":"uint256","nodeType":"ElementaryTypeName","src":"1158:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":38174,"nodeType":"VariableDeclaration","src":"1194:47:41","nodes":[],"constant":false,"mutability":"mutable","name":"_balanceOf","nameLocation":"1231:10:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":38173,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38171,"name":"address","nodeType":"ElementaryTypeName","src":"1202:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1194:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38172,"name":"uint256","nodeType":"ElementaryTypeName","src":"1213:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"internal"},{"id":38180,"nodeType":"VariableDeclaration","src":"1248:67:41","nodes":[],"constant":false,"mutability":"mutable","name":"_allowance","nameLocation":"1305:10:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":38179,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38175,"name":"address","nodeType":"ElementaryTypeName","src":"1256:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1248:47:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38178,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38176,"name":"address","nodeType":"ElementaryTypeName","src":"1275:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1267:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38177,"name":"uint256","nodeType":"ElementaryTypeName","src":"1286:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"internal"},{"id":38189,"nodeType":"FunctionDefinition","src":"1322:100:41","nodes":[],"body":{"id":38188,"nodeType":"Block","src":"1386:36:41","nodes":[],"statements":[{"expression":{"id":38186,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"1403:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38185,"id":38187,"nodeType":"Return","src":"1396:19:41"}]},"baseFunctions":[37712],"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"1331:11:41","overrides":{"id":38182,"nodeType":"OverrideSpecifier","overrides":[],"src":"1359:8:41"},"parameters":{"id":38181,"nodeType":"ParameterList","parameters":[],"src":"1342:2:41"},"returnParameters":{"id":38185,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38184,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38189,"src":"1377:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38183,"name":"uint256","nodeType":"ElementaryTypeName","src":"1377:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1376:9:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38202,"nodeType":"FunctionDefinition","src":"1428:116:41","nodes":[],"body":{"id":38201,"nodeType":"Block","src":"1503:41:41","nodes":[],"statements":[{"expression":{"baseExpression":{"id":38197,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"1520:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38199,"indexExpression":{"id":38198,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38191,"src":"1531:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1520:17:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38196,"id":38200,"nodeType":"Return","src":"1513:24:41"}]},"baseFunctions":[37720],"functionSelector":"70a08231","implemented":true,"kind":"function","modifiers":[],"name":"balanceOf","nameLocation":"1437:9:41","overrides":{"id":38193,"nodeType":"OverrideSpecifier","overrides":[],"src":"1476:8:41"},"parameters":{"id":38192,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38191,"mutability":"mutable","name":"owner","nameLocation":"1455:5:41","nodeType":"VariableDeclaration","scope":38202,"src":"1447:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38190,"name":"address","nodeType":"ElementaryTypeName","src":"1447:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1446:15:41"},"returnParameters":{"id":38196,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38195,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38202,"src":"1494:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38194,"name":"uint256","nodeType":"ElementaryTypeName","src":"1494:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1493:9:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38219,"nodeType":"FunctionDefinition","src":"1550:142:41","nodes":[],"body":{"id":38218,"nodeType":"Block","src":"1642:50:41","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":38212,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"1659:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38214,"indexExpression":{"id":38213,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38204,"src":"1670:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1659:17:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38216,"indexExpression":{"id":38215,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38206,"src":"1677:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1659:26:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38211,"id":38217,"nodeType":"Return","src":"1652:33:41"}]},"baseFunctions":[37740],"functionSelector":"dd62ed3e","implemented":true,"kind":"function","modifiers":[],"name":"allowance","nameLocation":"1559:9:41","overrides":{"id":38208,"nodeType":"OverrideSpecifier","overrides":[],"src":"1615:8:41"},"parameters":{"id":38207,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38204,"mutability":"mutable","name":"owner","nameLocation":"1577:5:41","nodeType":"VariableDeclaration","scope":38219,"src":"1569:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38203,"name":"address","nodeType":"ElementaryTypeName","src":"1569:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38206,"mutability":"mutable","name":"spender","nameLocation":"1592:7:41","nodeType":"VariableDeclaration","scope":38219,"src":"1584:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38205,"name":"address","nodeType":"ElementaryTypeName","src":"1584:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1568:32:41"},"returnParameters":{"id":38211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38210,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38219,"src":"1633:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38209,"name":"uint256","nodeType":"ElementaryTypeName","src":"1633:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1632:9:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":38221,"nodeType":"VariableDeclaration","src":"1882:33:41","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_CHAIN_ID","nameLocation":"1899:16:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38220,"name":"uint256","nodeType":"ElementaryTypeName","src":"1882:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"id":38223,"nodeType":"VariableDeclaration","src":"1922:41:41","nodes":[],"constant":false,"mutability":"mutable","name":"INITIAL_DOMAIN_SEPARATOR","nameLocation":"1939:24:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38222,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1922:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":38227,"nodeType":"VariableDeclaration","src":"1970:41:41","nodes":[],"constant":false,"functionSelector":"7ecebe00","mutability":"mutable","name":"nonces","nameLocation":"2005:6:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"typeName":{"id":38226,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":38224,"name":"address","nodeType":"ElementaryTypeName","src":"1978:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"1970:27:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":38225,"name":"uint256","nodeType":"ElementaryTypeName","src":"1989:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}},"visibility":"public"},{"id":38230,"nodeType":"VariableDeclaration","src":"2271:24:41","nodes":[],"constant":false,"documentation":{"id":38228,"nodeType":"StructuredDocumentation","src":"2199:67:41","text":"@dev A bool to track whether the contract has been initialized."},"mutability":"mutable","name":"initialized","nameLocation":"2284:11:41","scope":38705,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38229,"name":"bool","nodeType":"ElementaryTypeName","src":"2271:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"private"},{"id":38273,"nodeType":"FunctionDefinition","src":"2504:365:41","nodes":[],"body":{"id":38272,"nodeType":"Block","src":"2592:277:41","nodes":[],"statements":[{"expression":{"arguments":[{"id":38242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"2610:12:41","subExpression":{"id":38241,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38230,"src":"2611:11:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"414c52454144595f494e495449414c495a4544","id":38243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2624:21:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""},"value":"ALREADY_INITIALIZED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_241395e6b20092ec3fd5dfc22ea70fc2615c08854b7fd10fb3028d965cf738f3","typeString":"literal_string \"ALREADY_INITIALIZED\""}],"id":38240,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2602:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2602:44:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38245,"nodeType":"ExpressionStatement","src":"2602:44:41"},{"expression":{"id":38248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38246,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38137,"src":"2657:5:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38247,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38233,"src":"2665:5:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2657:13:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":38249,"nodeType":"ExpressionStatement","src":"2657:13:41"},{"expression":{"id":38252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38250,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38139,"src":"2680:7:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38251,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38235,"src":"2690:7:41","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"2680:17:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":38253,"nodeType":"ExpressionStatement","src":"2680:17:41"},{"expression":{"id":38256,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38254,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38141,"src":"2707:9:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38255,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38237,"src":"2719:9:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"2707:21:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":38257,"nodeType":"ExpressionStatement","src":"2707:21:41"},{"expression":{"id":38261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38258,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38221,"src":"2739:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":38259,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38704,"src":"2758:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2758:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2739:33:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38262,"nodeType":"ExpressionStatement","src":"2739:33:41"},{"expression":{"id":38266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38263,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38223,"src":"2782:24:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":38264,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38549,"src":"2809:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":38265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2809:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"2782:51:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":38267,"nodeType":"ExpressionStatement","src":"2782:51:41"},{"expression":{"id":38270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38268,"name":"initialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38230,"src":"2844:11:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":38269,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2858:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2844:18:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38271,"nodeType":"ExpressionStatement","src":"2844:18:41"}]},"documentation":{"id":38231,"nodeType":"StructuredDocumentation","src":"2302:197:41","text":"@dev To hide constructor warnings across solc versions due to different constructor visibility requirements and\n syntaxes, we add an initialization function that can be called only once."},"functionSelector":"1624f6c6","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"2513:10:41","parameters":{"id":38238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38233,"mutability":"mutable","name":"name_","nameLocation":"2538:5:41","nodeType":"VariableDeclaration","scope":38273,"src":"2524:19:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38232,"name":"string","nodeType":"ElementaryTypeName","src":"2524:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":38235,"mutability":"mutable","name":"symbol_","nameLocation":"2559:7:41","nodeType":"VariableDeclaration","scope":38273,"src":"2545:21:41","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":38234,"name":"string","nodeType":"ElementaryTypeName","src":"2545:6:41","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":38237,"mutability":"mutable","name":"decimals_","nameLocation":"2574:9:41","nodeType":"VariableDeclaration","scope":38273,"src":"2568:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38236,"name":"uint8","nodeType":"ElementaryTypeName","src":"2568:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"2523:61:41"},"returnParameters":{"id":38239,"nodeType":"ParameterList","parameters":[],"src":"2592:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":38302,"nodeType":"FunctionDefinition","src":"3057:221:41","nodes":[],"body":{"id":38301,"nodeType":"Block","src":"3146:132:41","nodes":[],"statements":[{"expression":{"id":38290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38283,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"3156:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38287,"indexExpression":{"expression":{"id":38284,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3167:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3171:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3167:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3156:22:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38288,"indexExpression":{"id":38286,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38275,"src":"3179:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3156:31:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38289,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"3190:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3156:40:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38291,"nodeType":"ExpressionStatement","src":"3156:40:41"},{"eventCall":{"arguments":[{"expression":{"id":38293,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3221:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38294,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3225:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3221:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38295,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38275,"src":"3233:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38296,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38277,"src":"3242:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38292,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37706,"src":"3212:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:37:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38298,"nodeType":"EmitStatement","src":"3207:42:41"},{"expression":{"hexValue":"74727565","id":38299,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3267:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":38282,"id":38300,"nodeType":"Return","src":"3260:11:41"}]},"baseFunctions":[37750],"functionSelector":"095ea7b3","implemented":true,"kind":"function","modifiers":[],"name":"approve","nameLocation":"3066:7:41","overrides":{"id":38279,"nodeType":"OverrideSpecifier","overrides":[],"src":"3122:8:41"},"parameters":{"id":38278,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38275,"mutability":"mutable","name":"spender","nameLocation":"3082:7:41","nodeType":"VariableDeclaration","scope":38302,"src":"3074:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38274,"name":"address","nodeType":"ElementaryTypeName","src":"3074:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38277,"mutability":"mutable","name":"amount","nameLocation":"3099:6:41","nodeType":"VariableDeclaration","scope":38302,"src":"3091:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38276,"name":"uint256","nodeType":"ElementaryTypeName","src":"3091:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3073:33:41"},"returnParameters":{"id":38282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38302,"src":"3140:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38280,"name":"bool","nodeType":"ElementaryTypeName","src":"3140:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3139:6:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38346,"nodeType":"FunctionDefinition","src":"3284:288:41","nodes":[],"body":{"id":38345,"nodeType":"Block","src":"3369:203:41","nodes":[],"statements":[{"expression":{"id":38323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38312,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3379:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38315,"indexExpression":{"expression":{"id":38313,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3390:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3390:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3379:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38317,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3409:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38320,"indexExpression":{"expression":{"id":38318,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3420:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3424:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3420:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3409:22:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38321,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"3433:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38316,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"3404:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3404:36:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3379:61:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38324,"nodeType":"ExpressionStatement","src":"3379:61:41"},{"expression":{"id":38334,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38325,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3450:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38327,"indexExpression":{"id":38326,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"3461:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3450:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38329,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3472:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38331,"indexExpression":{"id":38330,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"3483:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3472:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38332,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"3488:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38328,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"3467:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3467:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3450:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38335,"nodeType":"ExpressionStatement","src":"3450:45:41"},{"eventCall":{"arguments":[{"expression":{"id":38337,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3520:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3524:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3520:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38339,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38304,"src":"3532:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38340,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38306,"src":"3536:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38336,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"3511:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3511:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38342,"nodeType":"EmitStatement","src":"3506:37:41"},{"expression":{"hexValue":"74727565","id":38343,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"3561:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":38311,"id":38344,"nodeType":"Return","src":"3554:11:41"}]},"baseFunctions":[37730],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"3293:8:41","overrides":{"id":38308,"nodeType":"OverrideSpecifier","overrides":[],"src":"3345:8:41"},"parameters":{"id":38307,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38304,"mutability":"mutable","name":"to","nameLocation":"3310:2:41","nodeType":"VariableDeclaration","scope":38346,"src":"3302:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38303,"name":"address","nodeType":"ElementaryTypeName","src":"3302:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38306,"mutability":"mutable","name":"amount","nameLocation":"3322:6:41","nodeType":"VariableDeclaration","scope":38346,"src":"3314:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38305,"name":"uint256","nodeType":"ElementaryTypeName","src":"3314:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3301:28:41"},"returnParameters":{"id":38311,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38310,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38346,"src":"3363:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38309,"name":"bool","nodeType":"ElementaryTypeName","src":"3363:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3362:6:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38418,"nodeType":"FunctionDefinition","src":"3578:472:41","nodes":[],"body":{"id":38417,"nodeType":"Block","src":"3681:369:41","nodes":[],"statements":[{"assignments":[38359],"declarations":[{"constant":false,"id":38359,"mutability":"mutable","name":"allowed","nameLocation":"3699:7:41","nodeType":"VariableDeclaration","scope":38417,"src":"3691:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38358,"name":"uint256","nodeType":"ElementaryTypeName","src":"3691:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38366,"initialValue":{"baseExpression":{"baseExpression":{"id":38360,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"3709:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38362,"indexExpression":{"id":38361,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3720:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3709:16:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38365,"indexExpression":{"expression":{"id":38363,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3726:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3730:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3726:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3709:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3691:46:41"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38367,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"3788:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":38372,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"~","prefix":true,"src":"3799:11:41","subExpression":{"arguments":[{"hexValue":"30","id":38370,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3808:1:41","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":38369,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3800:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":38368,"name":"uint256","nodeType":"ElementaryTypeName","src":"3800:7:41","typeDescriptions":{}}},"id":38371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3788:22:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":38386,"nodeType":"IfStatement","src":"3784:80:41","trueBody":{"expression":{"id":38384,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38374,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"3812:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38378,"indexExpression":{"id":38375,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3823:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3812:16:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38379,"indexExpression":{"expression":{"id":38376,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3829:3:41","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":38377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3833:6:41","memberName":"sender","nodeType":"MemberAccess","src":"3829:10:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3812:28:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38381,"name":"allowed","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38359,"src":"3848:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38382,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"3857:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38380,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"3843:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:21:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3812:52:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38385,"nodeType":"ExpressionStatement","src":"3812:52:41"}},{"expression":{"id":38396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38387,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3875:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38389,"indexExpression":{"id":38388,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3886:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3875:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38391,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3899:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38393,"indexExpression":{"id":38392,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"3910:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3899:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38394,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"3917:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38390,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"3894:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38395,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3875:49:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38397,"nodeType":"ExpressionStatement","src":"3875:49:41"},{"expression":{"id":38407,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38398,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3934:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38400,"indexExpression":{"id":38399,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38350,"src":"3945:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3934:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38402,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"3956:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38404,"indexExpression":{"id":38403,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38350,"src":"3967:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3956:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38405,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"3972:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38401,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"3951:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38406,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3951:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3934:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38408,"nodeType":"ExpressionStatement","src":"3934:45:41"},{"eventCall":{"arguments":[{"id":38410,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38348,"src":"4004:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38411,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38350,"src":"4010:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38412,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38352,"src":"4014:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38409,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"3995:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3995:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38414,"nodeType":"EmitStatement","src":"3990:31:41"},{"expression":{"hexValue":"74727565","id":38415,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"4039:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"functionReturnParameters":38357,"id":38416,"nodeType":"Return","src":"4032:11:41"}]},"baseFunctions":[37762],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"3587:12:41","overrides":{"id":38354,"nodeType":"OverrideSpecifier","overrides":[],"src":"3657:8:41"},"parameters":{"id":38353,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38348,"mutability":"mutable","name":"from","nameLocation":"3608:4:41","nodeType":"VariableDeclaration","scope":38418,"src":"3600:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38347,"name":"address","nodeType":"ElementaryTypeName","src":"3600:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38350,"mutability":"mutable","name":"to","nameLocation":"3622:2:41","nodeType":"VariableDeclaration","scope":38418,"src":"3614:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38349,"name":"address","nodeType":"ElementaryTypeName","src":"3614:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38352,"mutability":"mutable","name":"amount","nameLocation":"3634:6:41","nodeType":"VariableDeclaration","scope":38418,"src":"3626:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38351,"name":"uint256","nodeType":"ElementaryTypeName","src":"3626:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3599:42:41"},"returnParameters":{"id":38357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38356,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38418,"src":"3675:4:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":38355,"name":"bool","nodeType":"ElementaryTypeName","src":"3675:4:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3674:6:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38504,"nodeType":"FunctionDefinition","src":"4239:1182:41","nodes":[],"body":{"id":38503,"nodeType":"Block","src":"4386:1035:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38439,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38436,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38426,"src":"4404:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"expression":{"id":38437,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"4416:5:41","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":38438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4422:9:41","memberName":"timestamp","nodeType":"MemberAccess","src":"4416:15:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4404:27:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5045524d49545f444541444c494e455f45585049524544","id":38440,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4433:25:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""},"value":"PERMIT_DEADLINE_EXPIRED"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_dd18cfd81b4c1281b56302a044e7f751a261543590362c41d86af048f8ed4b3e","typeString":"literal_string \"PERMIT_DEADLINE_EXPIRED\""}],"id":38435,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4396:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4396:63:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38442,"nodeType":"ExpressionStatement","src":"4396:63:41"},{"assignments":[38444],"declarations":[{"constant":false,"id":38444,"mutability":"mutable","name":"recoveredAddress","nameLocation":"4478:16:41","nodeType":"VariableDeclaration","scope":38503,"src":"4470:24:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38443,"name":"address","nodeType":"ElementaryTypeName","src":"4470:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":38474,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"1901","id":38449,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4585:10:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},"value":"\u0019\u0001"},{"arguments":[],"expression":{"argumentTypes":[],"id":38450,"name":"DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38519,"src":"4617:16:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":38451,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:18:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"arguments":[{"hexValue":"5065726d69742861646472657373206f776e65722c61646472657373207370656e6465722c75696e743235362076616c75652c75696e74323536206e6f6e63652c75696e7432353620646561646c696e6529","id":38456,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4775:84:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""},"value":"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9","typeString":"literal_string \"Permit(address owner,address spender,uint256 value,uint256 nonce,uint256 deadline)\""}],"id":38455,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4732:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38457,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4732:157:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":38458,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"4919:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38459,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38422,"src":"4954:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38460,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38424,"src":"4991:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38464,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5026:15:41","subExpression":{"baseExpression":{"id":38461,"name":"nonces","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38227,"src":"5026:6:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38463,"indexExpression":{"id":38462,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"5033:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5026:13:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38465,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38426,"src":"5071:8:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":38453,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4692:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38454,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4696:6:41","memberName":"encode","nodeType":"MemberAccess","src":"4692:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38466,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4692:413:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":38452,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4657:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38467,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4657:470:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_301a50b291d33ce1e8e9064e3f6a6c51d902ec22892b50d58abf6357c6a45541","typeString":"literal_string hex\"1901\""},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":38447,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4547:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38448,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4551:12:41","memberName":"encodePacked","nodeType":"MemberAccess","src":"4547:16:41","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38468,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4547:598:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":38446,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4520:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4520:639:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":38470,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38428,"src":"5173:1:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":38471,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38430,"src":"5188:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":38472,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38432,"src":"5203:1:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":38445,"name":"ecrecover","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-6,"src":"4497:9:41","typeDescriptions":{"typeIdentifier":"t_function_ecrecover_pure$_t_bytes32_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$_t_address_$","typeString":"function (bytes32,uint8,bytes32,bytes32) pure returns (address)"}},"id":38473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4497:717:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"4470:744:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":38485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38481,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38476,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38444,"src":"5233:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":38479,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5261:1:41","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":38478,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5253:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38477,"name":"address","nodeType":"ElementaryTypeName","src":"5253:7:41","typeDescriptions":{}}},"id":38480,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5253:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5233:30:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":38484,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38482,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38444,"src":"5267:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":38483,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"5287:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"5267:25:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5233:59:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"494e56414c49445f5349474e4552","id":38486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5294:16:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""},"value":"INVALID_SIGNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ba2319f5fa9f0c8e55f0d6899910b7354e6f643d1d349de47190066d85e68a1c","typeString":"literal_string \"INVALID_SIGNER\""}],"id":38475,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5225:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38487,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5225:86:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38488,"nodeType":"ExpressionStatement","src":"5225:86:41"},{"expression":{"id":38495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":38489,"name":"_allowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38180,"src":"5322:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":38492,"indexExpression":{"id":38490,"name":"recoveredAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38444,"src":"5333:16:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5322:28:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38493,"indexExpression":{"id":38491,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38422,"src":"5351:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"5322:37:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":38494,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38424,"src":"5362:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5322:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38496,"nodeType":"ExpressionStatement","src":"5322:45:41"},{"eventCall":{"arguments":[{"id":38498,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38420,"src":"5392:5:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38499,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38422,"src":"5399:7:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38500,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38424,"src":"5408:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38497,"name":"Approval","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37706,"src":"5383:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5383:31:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38502,"nodeType":"EmitStatement","src":"5378:36:41"}]},"functionSelector":"d505accf","implemented":true,"kind":"function","modifiers":[],"name":"permit","nameLocation":"4248:6:41","parameters":{"id":38433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38420,"mutability":"mutable","name":"owner","nameLocation":"4263:5:41","nodeType":"VariableDeclaration","scope":38504,"src":"4255:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38419,"name":"address","nodeType":"ElementaryTypeName","src":"4255:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38422,"mutability":"mutable","name":"spender","nameLocation":"4278:7:41","nodeType":"VariableDeclaration","scope":38504,"src":"4270:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38421,"name":"address","nodeType":"ElementaryTypeName","src":"4270:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38424,"mutability":"mutable","name":"value","nameLocation":"4295:5:41","nodeType":"VariableDeclaration","scope":38504,"src":"4287:13:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38423,"name":"uint256","nodeType":"ElementaryTypeName","src":"4287:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38426,"mutability":"mutable","name":"deadline","nameLocation":"4310:8:41","nodeType":"VariableDeclaration","scope":38504,"src":"4302:16:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38425,"name":"uint256","nodeType":"ElementaryTypeName","src":"4302:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38428,"mutability":"mutable","name":"v","nameLocation":"4326:1:41","nodeType":"VariableDeclaration","scope":38504,"src":"4320:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":38427,"name":"uint8","nodeType":"ElementaryTypeName","src":"4320:5:41","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":38430,"mutability":"mutable","name":"r","nameLocation":"4337:1:41","nodeType":"VariableDeclaration","scope":38504,"src":"4329:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38429,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4329:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":38432,"mutability":"mutable","name":"s","nameLocation":"4348:1:41","nodeType":"VariableDeclaration","scope":38504,"src":"4340:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38431,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4340:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4254:96:41"},"returnParameters":{"id":38434,"nodeType":"ParameterList","parameters":[],"src":"4386:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":38519,"nodeType":"FunctionDefinition","src":"5427:178:41","nodes":[],"body":{"id":38518,"nodeType":"Block","src":"5493:112:41","nodes":[],"statements":[{"expression":{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38512,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":38509,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38704,"src":"5510:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38510,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5510:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":38511,"name":"INITIAL_CHAIN_ID","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38221,"src":"5528:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5510:34:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":38514,"name":"computeDomainSeparator","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38549,"src":"5574:22:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_bytes32_$","typeString":"function () view returns (bytes32)"}},"id":38515,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5574:24:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":38516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"5510:88:41","trueExpression":{"id":38513,"name":"INITIAL_DOMAIN_SEPARATOR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38223,"src":"5547:24:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":38508,"id":38517,"nodeType":"Return","src":"5503:95:41"}]},"functionSelector":"3644e515","implemented":true,"kind":"function","modifiers":[],"name":"DOMAIN_SEPARATOR","nameLocation":"5436:16:41","parameters":{"id":38505,"nodeType":"ParameterList","parameters":[],"src":"5452:2:41"},"returnParameters":{"id":38508,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38507,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38519,"src":"5484:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38506,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5484:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5483:9:41"},"scope":38705,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":38549,"nodeType":"FunctionDefinition","src":"5611:404:41","nodes":[],"body":{"id":38548,"nodeType":"Block","src":"5685:330:41","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"arguments":[{"hexValue":"454950373132446f6d61696e28737472696e67206e616d652c737472696e672076657273696f6e2c75696e7432353620636861696e49642c6164647265737320766572696679696e67436f6e747261637429","id":38528,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5763:84:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""},"value":"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f","typeString":"literal_string \"EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)\""}],"id":38527,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5753:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38529,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5753:95:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"arguments":[{"id":38533,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38137,"src":"5882:5:41","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}],"id":38532,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5876:5:41","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes_storage_ptr_$","typeString":"type(bytes storage pointer)"},"typeName":{"id":38531,"name":"bytes","nodeType":"ElementaryTypeName","src":"5876:5:41","typeDescriptions":{}}},"id":38534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5876:12:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes storage pointer"}],"id":38530,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5866:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38535,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5866:23:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"hexValue":"31","id":38537,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5917:3:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""},"value":"1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6","typeString":"literal_string \"1\""}],"id":38536,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5907:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38538,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5907:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[],"expression":{"argumentTypes":[],"id":38539,"name":"_pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38704,"src":"5939:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38540,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5939:14:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"arguments":[{"id":38543,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"5979:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}],"id":38542,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5971:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38541,"name":"address","nodeType":"ElementaryTypeName","src":"5971:7:41","typeDescriptions":{}}},"id":38544,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5971:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":38525,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5725:3:41","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":38526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5729:6:41","memberName":"encode","nodeType":"MemberAccess","src":"5725:10:41","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":38545,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5725:273:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":38524,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"5702:9:41","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":38546,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5702:306:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":38523,"id":38547,"nodeType":"Return","src":"5695:313:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"computeDomainSeparator","nameLocation":"5620:22:41","parameters":{"id":38520,"nodeType":"ParameterList","parameters":[],"src":"5642:2:41"},"returnParameters":{"id":38523,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38522,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38549,"src":"5676:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":38521,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5676:7:41","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"5675:9:41"},"scope":38705,"stateMutability":"view","virtual":true,"visibility":"internal"},{"id":38584,"nodeType":"FunctionDefinition","src":"6209:221:41","nodes":[],"body":{"id":38583,"nodeType":"Block","src":"6269:161:41","nodes":[],"statements":[{"expression":{"id":38561,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38556,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6279:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38558,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6299:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38559,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38553,"src":"6313:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38557,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"6294:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6294:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6279:41:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38562,"nodeType":"ExpressionStatement","src":"6279:41:41"},{"expression":{"id":38572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38563,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6330:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38565,"indexExpression":{"id":38564,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"6341:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6330:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38567,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6352:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38569,"indexExpression":{"id":38568,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"6363:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6352:14:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38570,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38553,"src":"6368:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38566,"name":"_add","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38644,"src":"6347:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38571,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6347:28:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6330:45:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38573,"nodeType":"ExpressionStatement","src":"6330:45:41"},{"eventCall":{"arguments":[{"arguments":[{"hexValue":"30","id":38577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6408:1:41","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":38576,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6400:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38575,"name":"address","nodeType":"ElementaryTypeName","src":"6400:7:41","typeDescriptions":{}}},"id":38578,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6400:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38579,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38551,"src":"6412:2:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38580,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38553,"src":"6416:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38574,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"6391:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6391:32:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38582,"nodeType":"EmitStatement","src":"6386:37:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_mint","nameLocation":"6218:5:41","parameters":{"id":38554,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38551,"mutability":"mutable","name":"to","nameLocation":"6232:2:41","nodeType":"VariableDeclaration","scope":38584,"src":"6224:10:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38550,"name":"address","nodeType":"ElementaryTypeName","src":"6224:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38553,"mutability":"mutable","name":"amount","nameLocation":"6244:6:41","nodeType":"VariableDeclaration","scope":38584,"src":"6236:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38552,"name":"uint256","nodeType":"ElementaryTypeName","src":"6236:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6223:28:41"},"returnParameters":{"id":38555,"nodeType":"ParameterList","parameters":[],"src":"6269:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":38619,"nodeType":"FunctionDefinition","src":"6436:229:41","nodes":[],"body":{"id":38618,"nodeType":"Block","src":"6498:167:41","nodes":[],"statements":[{"expression":{"id":38600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":38591,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6508:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38593,"indexExpression":{"id":38592,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38586,"src":"6519:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"6508:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"baseExpression":{"id":38595,"name":"_balanceOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38174,"src":"6532:10:41","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":38597,"indexExpression":{"id":38596,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38586,"src":"6543:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6532:16:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38598,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"6550:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38594,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"6527:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38599,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6527:30:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6508:49:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38601,"nodeType":"ExpressionStatement","src":"6508:49:41"},{"expression":{"id":38607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38602,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6567:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":38604,"name":"_totalSupply","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38170,"src":"6587:12:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":38605,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"6601:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38603,"name":"_sub","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38665,"src":"6582:4:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$","typeString":"function (uint256,uint256) pure returns (uint256)"}},"id":38606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6582:26:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6567:41:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38608,"nodeType":"ExpressionStatement","src":"6567:41:41"},{"eventCall":{"arguments":[{"id":38610,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38586,"src":"6633:4:41","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"hexValue":"30","id":38613,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6647:1:41","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":38612,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6639:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38611,"name":"address","nodeType":"ElementaryTypeName","src":"6639:7:41","typeDescriptions":{}}},"id":38614,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6639:10:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":38615,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38588,"src":"6651:6:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":38609,"name":"Transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":37697,"src":"6624:8:41","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":38616,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6624:34:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38617,"nodeType":"EmitStatement","src":"6619:39:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_burn","nameLocation":"6445:5:41","parameters":{"id":38589,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38586,"mutability":"mutable","name":"from","nameLocation":"6459:4:41","nodeType":"VariableDeclaration","scope":38619,"src":"6451:12:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":38585,"name":"address","nodeType":"ElementaryTypeName","src":"6451:7:41","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":38588,"mutability":"mutable","name":"amount","nameLocation":"6473:6:41","nodeType":"VariableDeclaration","scope":38619,"src":"6465:14:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38587,"name":"uint256","nodeType":"ElementaryTypeName","src":"6465:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6450:30:41"},"returnParameters":{"id":38590,"nodeType":"ParameterList","parameters":[],"src":"6498:0:41"},"scope":38705,"stateMutability":"nonpayable","virtual":true,"visibility":"internal"},{"id":38644,"nodeType":"FunctionDefinition","src":"6859:173:41","nodes":[],"body":{"id":38643,"nodeType":"Block","src":"6927:105:41","nodes":[],"statements":[{"assignments":[38629],"declarations":[{"constant":false,"id":38629,"mutability":"mutable","name":"c","nameLocation":"6945:1:41","nodeType":"VariableDeclaration","scope":38643,"src":"6937:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38628,"name":"uint256","nodeType":"ElementaryTypeName","src":"6937:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":38633,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38632,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38630,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38621,"src":"6949:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":38631,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38623,"src":"6953:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6949:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"6937:17:41"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38637,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38635,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38629,"src":"6972:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":38636,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38621,"src":"6977:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"6972:6:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a206164646974696f6e206f766572666c6f77","id":38638,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6980:26:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_74f676cd2e283c0e66b6d0717943544332197bd372b775cf0e7a53907f5c5d11","typeString":"literal_string \"ERC20: addition overflow\""},"value":"ERC20: addition overflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_74f676cd2e283c0e66b6d0717943544332197bd372b775cf0e7a53907f5c5d11","typeString":"literal_string \"ERC20: addition overflow\""}],"id":38634,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"6964:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38639,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6964:43:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38640,"nodeType":"ExpressionStatement","src":"6964:43:41"},{"expression":{"id":38641,"name":"c","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38629,"src":"7024:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38627,"id":38642,"nodeType":"Return","src":"7017:8:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_add","nameLocation":"6868:4:41","parameters":{"id":38624,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38621,"mutability":"mutable","name":"a","nameLocation":"6881:1:41","nodeType":"VariableDeclaration","scope":38644,"src":"6873:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38620,"name":"uint256","nodeType":"ElementaryTypeName","src":"6873:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38623,"mutability":"mutable","name":"b","nameLocation":"6892:1:41","nodeType":"VariableDeclaration","scope":38644,"src":"6884:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38622,"name":"uint256","nodeType":"ElementaryTypeName","src":"6884:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6872:22:41"},"returnParameters":{"id":38627,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38626,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38644,"src":"6918:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38625,"name":"uint256","nodeType":"ElementaryTypeName","src":"6918:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"6917:9:41"},"scope":38705,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38665,"nodeType":"FunctionDefinition","src":"7038:154:41","nodes":[],"body":{"id":38664,"nodeType":"Block","src":"7106:86:41","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38654,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38646,"src":"7124:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":38655,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38648,"src":"7129:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7124:6:41","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"45524332303a207375627472616374696f6e20756e646572666c6f77","id":38657,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"7132:30:41","typeDescriptions":{"typeIdentifier":"t_stringliteral_51030fc2fc57ce7527c9e329debac907fc652c2c136d851e4f42cbce1710c274","typeString":"literal_string \"ERC20: subtraction underflow\""},"value":"ERC20: subtraction underflow"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_51030fc2fc57ce7527c9e329debac907fc652c2c136d851e4f42cbce1710c274","typeString":"literal_string \"ERC20: subtraction underflow\""}],"id":38653,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"7116:7:41","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":38658,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7116:47:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":38659,"nodeType":"ExpressionStatement","src":"7116:47:41"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":38662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":38660,"name":"a","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38646,"src":"7180:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":38661,"name":"b","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38648,"src":"7184:1:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7180:5:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":38652,"id":38663,"nodeType":"Return","src":"7173:12:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_sub","nameLocation":"7047:4:41","parameters":{"id":38649,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38646,"mutability":"mutable","name":"a","nameLocation":"7060:1:41","nodeType":"VariableDeclaration","scope":38665,"src":"7052:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38645,"name":"uint256","nodeType":"ElementaryTypeName","src":"7052:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":38648,"mutability":"mutable","name":"b","nameLocation":"7071:1:41","nodeType":"VariableDeclaration","scope":38665,"src":"7063:9:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38647,"name":"uint256","nodeType":"ElementaryTypeName","src":"7063:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7051:22:41"},"returnParameters":{"id":38652,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38651,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38665,"src":"7097:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38650,"name":"uint256","nodeType":"ElementaryTypeName","src":"7097:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7096:9:41"},"scope":38705,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":38677,"nodeType":"FunctionDefinition","src":"7735:276:41","nodes":[],"body":{"id":38676,"nodeType":"Block","src":"7798:213:41","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"7893:44:41","statements":[{"nodeType":"YulAssignment","src":"7907:20:41","value":{"arguments":[],"functionName":{"name":"chainid","nodeType":"YulIdentifier","src":"7918:7:41"},"nodeType":"YulFunctionCall","src":"7918:9:41"},"variableNames":[{"name":"chainId","nodeType":"YulIdentifier","src":"7907:7:41"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":38668,"isOffset":false,"isSlot":false,"src":"7907:7:41","valueSize":1}],"id":38670,"nodeType":"InlineAssembly","src":"7884:53:41"},{"expression":{"arguments":[{"id":38673,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"7955:4:41","typeDescriptions":{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_MockERC20_$38705","typeString":"contract MockERC20"}],"id":38672,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"7947:7:41","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":38671,"name":"address","nodeType":"ElementaryTypeName","src":"7947:7:41","typeDescriptions":{}}},"id":38674,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7947:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":38675,"nodeType":"ExpressionStatement","src":"7947:13:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_viewChainId","nameLocation":"7744:12:41","parameters":{"id":38666,"nodeType":"ParameterList","parameters":[],"src":"7756:2:41"},"returnParameters":{"id":38669,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38668,"mutability":"mutable","name":"chainId","nameLocation":"7789:7:41","nodeType":"VariableDeclaration","scope":38677,"src":"7781:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38667,"name":"uint256","nodeType":"ElementaryTypeName","src":"7781:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7780:17:41"},"scope":38705,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":38704,"nodeType":"FunctionDefinition","src":"8017:300:41","nodes":[],"body":{"id":38703,"nodeType":"Block","src":"8080:237:41","nodes":[],"statements":[{"assignments":[38687],"declarations":[{"constant":false,"id":38687,"mutability":"mutable","name":"fnIn","nameLocation":"8133:4:41","nodeType":"VariableDeclaration","scope":38703,"src":"8090:47:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"typeName":{"id":38686,"nodeType":"FunctionTypeName","parameterTypes":{"id":38682,"nodeType":"ParameterList","parameters":[],"src":"8098:2:41"},"returnParameterTypes":{"id":38685,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38684,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38686,"src":"8124:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38683,"name":"uint256","nodeType":"ElementaryTypeName","src":"8124:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8123:9:41"},"src":"8090:47:41","stateMutability":"view","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":38689,"initialValue":{"id":38688,"name":"_viewChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38677,"src":"8140:12:41","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_uint256_$","typeString":"function () view returns (uint256)"}},"nodeType":"VariableDeclarationStatement","src":"8090:62:41"},{"assignments":[38695],"declarations":[{"constant":false,"id":38695,"mutability":"mutable","name":"pureChainId","nameLocation":"8205:11:41","nodeType":"VariableDeclaration","scope":38703,"src":"8162:54:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"typeName":{"id":38694,"nodeType":"FunctionTypeName","parameterTypes":{"id":38690,"nodeType":"ParameterList","parameters":[],"src":"8170:2:41"},"returnParameterTypes":{"id":38693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38692,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":38694,"src":"8196:7:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38691,"name":"uint256","nodeType":"ElementaryTypeName","src":"8196:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8195:9:41"},"src":"8162:54:41","stateMutability":"pure","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"},"visibility":"internal"},"visibility":"internal"}],"id":38696,"nodeType":"VariableDeclarationStatement","src":"8162:54:41"},{"AST":{"nodeType":"YulBlock","src":"8235:43:41","statements":[{"nodeType":"YulAssignment","src":"8249:19:41","value":{"name":"fnIn","nodeType":"YulIdentifier","src":"8264:4:41"},"variableNames":[{"name":"pureChainId","nodeType":"YulIdentifier","src":"8249:11:41"}]}]},"evmVersion":"paris","externalReferences":[{"declaration":38687,"isOffset":false,"isSlot":false,"src":"8264:4:41","valueSize":1},{"declaration":38695,"isOffset":false,"isSlot":false,"src":"8249:11:41","valueSize":1}],"id":38697,"nodeType":"InlineAssembly","src":"8226:52:41"},{"expression":{"id":38701,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":38698,"name":"chainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38680,"src":"8287:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":38699,"name":"pureChainId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":38695,"src":"8297:11:41","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$__$returns$_t_uint256_$","typeString":"function () pure returns (uint256)"}},"id":38700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8297:13:41","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8287:23:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":38702,"nodeType":"ExpressionStatement","src":"8287:23:41"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_pureChainId","nameLocation":"8026:12:41","parameters":{"id":38678,"nodeType":"ParameterList","parameters":[],"src":"8038:2:41"},"returnParameters":{"id":38681,"nodeType":"ParameterList","parameters":[{"constant":false,"id":38680,"mutability":"mutable","name":"chainId","nameLocation":"8071:7:41","nodeType":"VariableDeclaration","scope":38704,"src":"8063:15:41","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":38679,"name":"uint256","nodeType":"ElementaryTypeName","src":"8063:7:41","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"8062:17:41"},"scope":38705,"stateMutability":"pure","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":38134,"name":"IERC20","nameLocations":["391:6:41"],"nodeType":"IdentifierPath","referencedDeclaration":37781,"src":"391:6:41"},"id":38135,"nodeType":"InheritanceSpecifier","src":"391:6:41"}],"canonicalName":"MockERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":38133,"nodeType":"StructuredDocumentation","src":"115:254:41","text":"@notice This is a mock contract of the ERC20 standard for testing purposes only, it SHOULD NOT be used in production.\n @dev Forked from: https://github.com/transmissions11/solmate/blob/0384dbaaa4fcb5715738a9254a7c0a4cb62cf458/src/tokens/ERC20.sol"},"fullyImplemented":true,"linearizedBaseContracts":[38705,37781],"name":"MockERC20","nameLocation":"378:9:41","scope":38706,"usedErrors":[]}],"license":"MIT"},"id":41} \ No newline at end of file diff --git a/pkg/contracts/out/PassportScorer.sol/PassportScorer.json b/pkg/contracts/out/PassportScorer.sol/PassportScorer.json index cb978c30f..de78cdd61 100644 --- a/pkg/contracts/out/PassportScorer.sol/PassportScorer.json +++ b/pkg/contracts/out/PassportScorer.sol/PassportScorer.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"_listManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_passportData","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeListManager","inputs":[{"name":"_newManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"listManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeUser","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setThreshold","inputs":[{"name":"_newThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"userScores","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlyAuthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161074738038061074783398101604081905261002f916100e0565b61003833610066565b610041816100b6565b600180546001600160a01b0319166001600160a01b0392909216919091179055610110565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100dd5760405163d92e233d60e01b815260040160405180910390fd5b50565b6000602082840312156100f257600080fd5b81516001600160a01b038116811461010957600080fd5b9392505050565b6106288061011f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea26469706673582212208a3eb43b0174df59917d6af888a03f815ab915b225a5c5c2b372e2c4de94064164736f6c63430008130033","sourceMap":"204:1455:129:-:0;;;768:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:60;734:10:80;936:18:60;:32::i;:::-;822::129::1;841:12:::0;822:18:::1;:32::i;:::-;864:11;:26:::0;;-1:-1:-1;;;;;;864:26:129::1;-1:-1:-1::0;;;;;864:26:129;;;::::1;::::0;;;::::1;::::0;;204:1455;;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;;;;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;614:148:129:-;-1:-1:-1;;;;;687:22:129;;683:73;;732:13;;-1:-1:-1;;;732:13:129;;;;;;;;;;;683:73;614:148;:::o;14:290:143:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:143;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:143:o;:::-;204:1455:129;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea26469706673582212208a3eb43b0174df59917d6af888a03f815ab915b225a5c5c2b372e2c4de94064164736f6c63430008130033","sourceMap":"204:1455:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;580:25:143;;;636:2;621:18;;614:34;;;;553:18;322:68:129;;;;;;;;1249:159;;;;;;:::i;:::-;;:::i;:::-;;291:24;;;;;;;;;805:25:143;;;793:2;778:18;291:24:129;659:177:143;1824:101:60;;;:::i;903:190:129:-;;;;;;:::i;:::-;;:::i;1201:85:60:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;1201:85;;;-1:-1:-1;;;;;1833:55:143;;;1815:74;;1803:2;1788:18;1201:85:60;1669:226:143;259:26:129;;;;;-1:-1:-1;;;;;259:26:129;;;1414:115;;;;;;:::i;:::-;;:::i;1099:144::-;;;;;;:::i;:::-;;:::i;1535:122::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;1633:17:129;;;;;:10;:17;;;;;;;;;1626:24;;;;;;;;;;;;;;;;;;;;1535:122;;;;;2311:13:143;;2293:32;;2381:4;2369:17;;;2363:24;2341:20;;;2334:54;;;;2266:18;1535:122:129;2085:309:143;2074:198:60;;;;;;:::i;:::-;;:::i;1249:159:129:-;1094:13:60;:11;:13::i;:::-;1335:31:129::1;1354:11;1335:18;:31::i;:::-;1376:11;:25:::0;;-1:-1:-1;;1376:25:129::1;-1:-1:-1::0;;;;;1376:25:129;;;::::1;::::0;;;::::1;::::0;;1249:159::o;1824:101:60:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;903:190:129:-;1247:7:60;1273:6;-1:-1:-1;;;;;1273:6:60;491:10:129;:21;;:50;;-1:-1:-1;530:11:129;;-1:-1:-1;;;;;530:11:129;516:10;:25;491:50;487:82;;;1018:25:::1;1037:5;1018:18;:25::i;:::-;-1:-1:-1::0;;;;;1053:17:129;::::1;;::::0;;;:10:::1;:17;::::0;;;;;;;:33;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;487:82;585:16;;-1:-1:-1;;;585:16:129;;;;;;;;;;;1414:115;1094:13:60;:11;:13::i;:::-;1497:9:129::1;:25:::0;1414:115::o;1099:144::-;1247:7:60;1273:6;-1:-1:-1;;;;;1273:6:60;491:10:129;:21;;:50;;-1:-1:-1;530:11:129;;-1:-1:-1;;;;;530:11:129;516:10;:25;491:50;487:82;;;1177:25:::1;1196:5;1177:18;:25::i;:::-;-1:-1:-1::0;;;;;1219:17:129;::::1;;::::0;;;:10:::1;:17;::::0;;;;1212:24;;;::::1;;::::0;585:16;;-1:-1:-1;;;585:16:129;;;;;;;;;;;2074:198:60;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:60;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:60;;2601:2:143;2154:73:60::1;::::0;::::1;2583:21:143::0;2640:2;2620:18;;;2613:30;2679:34;2659:18;;;2652:62;2750:8;2730:18;;;2723:36;2776:19;;2154:73:60::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;734:10:80;1422:23:60;1414:68;;;;-1:-1:-1;;;1414:68:60;;3008:2:143;1414:68:60;;;2990:21:143;;;3027:18;;;3020:30;3086:34;3066:18;;;3059:62;3138:18;;1414:68:60;2806:356:143;614:148:129;-1:-1:-1;;;;;687:22:129;;683:73;;732:13;;;;;;;;;;;;;;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:196:143:-;82:20;;-1:-1:-1;;;;;131:54:143;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:143:o;841:823::-;940:6;948;992:9;983:7;979:23;1022:2;1018;1014:11;1011:31;;;1038:1;1035;1028:12;1011:31;1061:29;1080:9;1061:29;:::i;:::-;1051:39;-1:-1:-1;1124:4:143;-1:-1:-1;;1106:16:143;;1102:27;1099:47;;;1142:1;1139;1132:12;1099:47;;1175:4;1169:11;1219:4;1211:6;1207:17;1290:6;1278:10;1275:22;1254:18;1242:10;1239:34;1236:62;1233:242;;;1331:77;1328:1;1321:88;1432:4;1429:1;1422:15;1460:4;1457:1;1450:15;1233:242;1491:4;1484:24;;;1560:2;1545:18;;;1532:32;1517:48;;1611:20;;1598:34;1581:15;;;1574:59;;;;-1:-1:-1;841:823:143;1524:6;;-1:-1:-1;841:823:143:o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:143;;1900:180;-1:-1:-1;1900:180:143:o","linkReferences":{}},"methodIdentifiers":{"addUserScore(address,(uint256,uint256))":"7814d568","changeListManager(address)":"3d476830","getUserScore(address)":"b34e0c47","listManager()":"8df8b2fe","owner()":"8da5cb5b","removeUser(address)":"98575188","renounceOwnership()":"715018a6","setThreshold(uint256)":"960bfe04","threshold()":"42cde4e8","transferOwnership(address)":"f2fde38b","userScores(address)":"1413d4c0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_listManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"OnlyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"_passportData\",\"type\":\"tuple\"}],\"name\":\"addUserScore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newManager\",\"type\":\"address\"}],\"name\":\"changeListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserScore\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"removeUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newThreshold\",\"type\":\"uint256\"}],\"name\":\"setThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"userScores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/PassportScorer.sol\":\"PassportScorer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"pkg/contracts/src/ISybilScorer.sol\":{\"keccak256\":\"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5\",\"dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x\"]},\"pkg/contracts/src/PassportScorer.sol\":{\"keccak256\":\"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b\",\"dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_listManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"OnlyAuthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"struct PassportData","name":"_passportData","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"addUserScore"},{"inputs":[{"internalType":"address","name":"_newManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeListManager"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserScore","outputs":[{"internalType":"struct PassportData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeUser"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"userScores","outputs":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/PassportScorer.sol":"PassportScorer"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"pkg/contracts/src/ISybilScorer.sol":{"keccak256":"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199","urls":["bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5","dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x"],"license":"MIT"},"pkg/contracts/src/PassportScorer.sol":{"keccak256":"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d","urls":["bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b","dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx"],"license":"AGPL-3.0-or-later"}},"version":1},"storageLayout":{"storage":[{"astId":55389,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":75622,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"listManager","offset":0,"slot":"1","type":"t_address"},{"astId":75624,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"threshold","offset":0,"slot":"2","type":"t_uint256"},{"astId":75629,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"userScores","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(PassportData)75585_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_struct(PassportData)75585_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct PassportData)","numberOfBytes":"32","value":"t_struct(PassportData)75585_storage"},"t_struct(PassportData)75585_storage":{"encoding":"inplace","label":"struct PassportData","numberOfBytes":"64","members":[{"astId":75582,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"score","offset":0,"slot":"0","type":"t_uint256"},{"astId":75584,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"lastUpdated","offset":0,"slot":"1","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/PassportScorer.sol","id":75770,"exportedSymbols":{"ISybilScorer":[75609],"Ownable":[55494],"PassportData":[75585],"PassportScorer":[75769]},"nodeType":"SourceUnit","src":"46:1614:129","nodes":[{"id":75611,"nodeType":"PragmaDirective","src":"46:24:129","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75613,"nodeType":"ImportDirective","src":"72:67:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":75770,"sourceUnit":55495,"symbolAliases":[{"foreign":{"id":75612,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55494,"src":"80:7:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75616,"nodeType":"ImportDirective","src":"140:62:129","nodes":[],"absolutePath":"pkg/contracts/src/ISybilScorer.sol","file":"./ISybilScorer.sol","nameLocation":"-1:-1:-1","scope":75770,"sourceUnit":75610,"symbolAliases":[{"foreign":{"id":75614,"name":"ISybilScorer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75609,"src":"148:12:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75615,"name":"PassportData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75585,"src":"162:12:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75769,"nodeType":"ContractDefinition","src":"204:1455:129","nodes":[{"id":75622,"nodeType":"VariableDeclaration","src":"259:26:129","nodes":[],"constant":false,"functionSelector":"8df8b2fe","mutability":"mutable","name":"listManager","nameLocation":"274:11:129","scope":75769,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75621,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":75624,"nodeType":"VariableDeclaration","src":"291:24:129","nodes":[],"constant":false,"functionSelector":"42cde4e8","mutability":"mutable","name":"threshold","nameLocation":"306:9:129","scope":75769,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75623,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":75629,"nodeType":"VariableDeclaration","src":"322:68:129","nodes":[],"constant":false,"functionSelector":"1413d4c0","mutability":"mutable","name":"userScores","nameLocation":"380:10:129","scope":75769,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75585_storage_$","typeString":"mapping(address => struct PassportData)"},"typeName":{"id":75628,"keyName":"user","keyNameLocation":"338:4:129","keyType":{"id":75625,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"322:50:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75585_storage_$","typeString":"mapping(address => struct PassportData)"},"valueName":"passportData","valueNameLocation":"359:12:129","valueType":{"id":75627,"nodeType":"UserDefinedTypeName","pathNode":{"id":75626,"name":"PassportData","nameLocations":["346:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":75585,"src":"346:12:129"},"referencedDeclaration":75585,"src":"346:12:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage_ptr","typeString":"struct PassportData"}}},"visibility":"public"},{"id":75631,"nodeType":"ErrorDefinition","src":"397:23:129","nodes":[],"errorSelector":"7d7b71b5","name":"OnlyAuthorized","nameLocation":"403:14:129","parameters":{"id":75630,"nodeType":"ParameterList","parameters":[],"src":"417:2:129"}},{"id":75633,"nodeType":"ErrorDefinition","src":"425:20:129","nodes":[],"errorSelector":"d92e233d","name":"ZeroAddress","nameLocation":"431:11:129","parameters":{"id":75632,"nodeType":"ParameterList","parameters":[],"src":"442:2:129"}},{"id":75652,"nodeType":"ModifierDefinition","src":"451:157:129","nodes":[],"body":{"id":75651,"nodeType":"Block","src":"477:131:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75639,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75635,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"491:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"495:6:129","memberName":"sender","nodeType":"MemberAccess","src":"491:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75637,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55422,"src":"505:5:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:7:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"491:21:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75643,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75640,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"516:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75641,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"520:6:129","memberName":"sender","nodeType":"MemberAccess","src":"516:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75642,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75622,"src":"530:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"516:25:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"491:50:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75647,"nodeType":"IfStatement","src":"487:82:129","trueBody":{"id":75646,"nodeType":"Block","src":"543:26:129","statements":[{"id":75645,"nodeType":"PlaceholderStatement","src":"557:1:129"}]}},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75648,"name":"OnlyAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75631,"src":"585:14:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75649,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75650,"nodeType":"RevertStatement","src":"578:23:129"}]},"name":"onlyAuthorized","nameLocation":"460:14:129","parameters":{"id":75634,"nodeType":"ParameterList","parameters":[],"src":"474:2:129"},"virtual":false,"visibility":"internal"},{"id":75669,"nodeType":"FunctionDefinition","src":"614:148:129","nodes":[],"body":{"id":75668,"nodeType":"Block","src":"673:89:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75657,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75654,"src":"687:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":75660,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"707:1:129","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":75659,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"699:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75658,"name":"address","nodeType":"ElementaryTypeName","src":"699:7:129","typeDescriptions":{}}},"id":75661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"699:10:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"687:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75667,"nodeType":"IfStatement","src":"683:73:129","trueBody":{"id":75666,"nodeType":"Block","src":"711:45:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75663,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75633,"src":"732:11:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75665,"nodeType":"RevertStatement","src":"725:20:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"623:18:129","parameters":{"id":75655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75654,"mutability":"mutable","name":"_address","nameLocation":"650:8:129","nodeType":"VariableDeclaration","scope":75669,"src":"642:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75653,"name":"address","nodeType":"ElementaryTypeName","src":"642:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"641:18:129"},"returnParameters":{"id":75656,"nodeType":"ParameterList","parameters":[],"src":"673:0:129"},"scope":75769,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75685,"nodeType":"FunctionDefinition","src":"768:129:129","nodes":[],"body":{"id":75684,"nodeType":"Block","src":"812:85:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":75677,"name":"_listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75671,"src":"841:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75676,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75669,"src":"822:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75678,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"822:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75679,"nodeType":"ExpressionStatement","src":"822:32:129"},{"expression":{"id":75682,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75680,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75622,"src":"864:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75681,"name":"_listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75671,"src":"878:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"864:26:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75683,"nodeType":"ExpressionStatement","src":"864:26:129"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":75674,"kind":"baseConstructorSpecifier","modifierName":{"id":75673,"name":"Ownable","nameLocations":["802:7:129"],"nodeType":"IdentifierPath","referencedDeclaration":55494,"src":"802:7:129"},"nodeType":"ModifierInvocation","src":"802:9:129"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75672,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75671,"mutability":"mutable","name":"_listManager","nameLocation":"788:12:129","nodeType":"VariableDeclaration","scope":75685,"src":"780:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75670,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"779:22:129"},"returnParameters":{"id":75675,"nodeType":"ParameterList","parameters":[],"src":"812:0:129"},"scope":75769,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75707,"nodeType":"FunctionDefinition","src":"903:190:129","nodes":[],"body":{"id":75706,"nodeType":"Block","src":"1008:85:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":75697,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"1037:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75696,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75669,"src":"1018:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75698,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1018:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75699,"nodeType":"ExpressionStatement","src":"1018:25:129"},{"expression":{"id":75704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75700,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"1053:10:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75585_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75702,"indexExpression":{"id":75701,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75687,"src":"1064:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1053:17:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage","typeString":"struct PassportData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75703,"name":"_passportData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75690,"src":"1073:13:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_memory_ptr","typeString":"struct PassportData memory"}},"src":"1053:33:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage","typeString":"struct PassportData storage ref"}},"id":75705,"nodeType":"ExpressionStatement","src":"1053:33:129"}]},"baseFunctions":[75593],"functionSelector":"7814d568","implemented":true,"kind":"function","modifiers":[{"id":75694,"kind":"modifierInvocation","modifierName":{"id":75693,"name":"onlyAuthorized","nameLocations":["993:14:129"],"nodeType":"IdentifierPath","referencedDeclaration":75652,"src":"993:14:129"},"nodeType":"ModifierInvocation","src":"993:14:129"}],"name":"addUserScore","nameLocation":"912:12:129","overrides":{"id":75692,"nodeType":"OverrideSpecifier","overrides":[],"src":"984:8:129"},"parameters":{"id":75691,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75687,"mutability":"mutable","name":"_user","nameLocation":"933:5:129","nodeType":"VariableDeclaration","scope":75707,"src":"925:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75686,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75690,"mutability":"mutable","name":"_passportData","nameLocation":"960:13:129","nodeType":"VariableDeclaration","scope":75707,"src":"940:33:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_memory_ptr","typeString":"struct PassportData"},"typeName":{"id":75689,"nodeType":"UserDefinedTypeName","pathNode":{"id":75688,"name":"PassportData","nameLocations":["940:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":75585,"src":"940:12:129"},"referencedDeclaration":75585,"src":"940:12:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage_ptr","typeString":"struct PassportData"}},"visibility":"internal"}],"src":"924:50:129"},"returnParameters":{"id":75695,"nodeType":"ParameterList","parameters":[],"src":"1008:0:129"},"scope":75769,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75725,"nodeType":"FunctionDefinition","src":"1099:144:129","nodes":[],"body":{"id":75724,"nodeType":"Block","src":"1167:76:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":75716,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75709,"src":"1196:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75715,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75669,"src":"1177:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75717,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75718,"nodeType":"ExpressionStatement","src":"1177:25:129"},{"expression":{"id":75722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1212:24:129","subExpression":{"baseExpression":{"id":75719,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"1219:10:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75585_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75721,"indexExpression":{"id":75720,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75709,"src":"1230:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1219:17:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage","typeString":"struct PassportData storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75723,"nodeType":"ExpressionStatement","src":"1212:24:129"}]},"baseFunctions":[75598],"functionSelector":"98575188","implemented":true,"kind":"function","modifiers":[{"id":75713,"kind":"modifierInvocation","modifierName":{"id":75712,"name":"onlyAuthorized","nameLocations":["1152:14:129"],"nodeType":"IdentifierPath","referencedDeclaration":75652,"src":"1152:14:129"},"nodeType":"ModifierInvocation","src":"1152:14:129"}],"name":"removeUser","nameLocation":"1108:10:129","overrides":{"id":75711,"nodeType":"OverrideSpecifier","overrides":[],"src":"1143:8:129"},"parameters":{"id":75710,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75709,"mutability":"mutable","name":"_user","nameLocation":"1127:5:129","nodeType":"VariableDeclaration","scope":75725,"src":"1119:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75708,"name":"address","nodeType":"ElementaryTypeName","src":"1119:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1118:15:129"},"returnParameters":{"id":75714,"nodeType":"ParameterList","parameters":[],"src":"1167:0:129"},"scope":75769,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75742,"nodeType":"FunctionDefinition","src":"1249:159:129","nodes":[],"body":{"id":75741,"nodeType":"Block","src":"1325:83:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":75734,"name":"_newManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75727,"src":"1354:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75733,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75669,"src":"1335:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1335:31:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75736,"nodeType":"ExpressionStatement","src":"1335:31:129"},{"expression":{"id":75739,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75737,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75622,"src":"1376:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75738,"name":"_newManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75727,"src":"1390:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1376:25:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75740,"nodeType":"ExpressionStatement","src":"1376:25:129"}]},"baseFunctions":[75603],"functionSelector":"3d476830","implemented":true,"kind":"function","modifiers":[{"id":75731,"kind":"modifierInvocation","modifierName":{"id":75730,"name":"onlyOwner","nameLocations":["1315:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"1315:9:129"},"nodeType":"ModifierInvocation","src":"1315:9:129"}],"name":"changeListManager","nameLocation":"1258:17:129","overrides":{"id":75729,"nodeType":"OverrideSpecifier","overrides":[],"src":"1306:8:129"},"parameters":{"id":75728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75727,"mutability":"mutable","name":"_newManager","nameLocation":"1284:11:129","nodeType":"VariableDeclaration","scope":75742,"src":"1276:19:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75726,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1275:21:129"},"returnParameters":{"id":75732,"nodeType":"ParameterList","parameters":[],"src":"1325:0:129"},"scope":75769,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75755,"nodeType":"FunctionDefinition","src":"1414:115:129","nodes":[],"body":{"id":75754,"nodeType":"Block","src":"1487:42:129","nodes":[],"statements":[{"expression":{"id":75752,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75750,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75624,"src":"1497:9:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75751,"name":"_newThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75744,"src":"1509:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1497:25:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75753,"nodeType":"ExpressionStatement","src":"1497:25:129"}]},"baseFunctions":[75608],"functionSelector":"960bfe04","implemented":true,"kind":"function","modifiers":[{"id":75748,"kind":"modifierInvocation","modifierName":{"id":75747,"name":"onlyOwner","nameLocations":["1477:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"1477:9:129"},"nodeType":"ModifierInvocation","src":"1477:9:129"}],"name":"setThreshold","nameLocation":"1423:12:129","overrides":{"id":75746,"nodeType":"OverrideSpecifier","overrides":[],"src":"1468:8:129"},"parameters":{"id":75745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75744,"mutability":"mutable","name":"_newThreshold","nameLocation":"1444:13:129","nodeType":"VariableDeclaration","scope":75755,"src":"1436:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75743,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1435:23:129"},"returnParameters":{"id":75749,"nodeType":"ParameterList","parameters":[],"src":"1487:0:129"},"scope":75769,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75768,"nodeType":"FunctionDefinition","src":"1535:122:129","nodes":[],"body":{"id":75767,"nodeType":"Block","src":"1616:41:129","nodes":[],"statements":[{"expression":{"baseExpression":{"id":75763,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75629,"src":"1633:10:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75585_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75765,"indexExpression":{"id":75764,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75757,"src":"1644:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1633:17:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage","typeString":"struct PassportData storage ref"}},"functionReturnParameters":75762,"id":75766,"nodeType":"Return","src":"1626:24:129"}]},"functionSelector":"b34e0c47","implemented":true,"kind":"function","modifiers":[],"name":"getUserScore","nameLocation":"1544:12:129","parameters":{"id":75758,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75757,"mutability":"mutable","name":"_user","nameLocation":"1565:5:129","nodeType":"VariableDeclaration","scope":75768,"src":"1557:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75756,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:15:129"},"returnParameters":{"id":75762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75761,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75768,"src":"1595:19:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_memory_ptr","typeString":"struct PassportData"},"typeName":{"id":75760,"nodeType":"UserDefinedTypeName","pathNode":{"id":75759,"name":"PassportData","nameLocations":["1595:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":75585,"src":"1595:12:129"},"referencedDeclaration":75585,"src":"1595:12:129","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75585_storage_ptr","typeString":"struct PassportData"}},"visibility":"internal"}],"src":"1594:21:129"},"scope":75769,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":75617,"name":"Ownable","nameLocations":["231:7:129"],"nodeType":"IdentifierPath","referencedDeclaration":55494,"src":"231:7:129"},"id":75618,"nodeType":"InheritanceSpecifier","src":"231:7:129"},{"baseName":{"id":75619,"name":"ISybilScorer","nameLocations":["240:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":75609,"src":"240:12:129"},"id":75620,"nodeType":"InheritanceSpecifier","src":"240:12:129"}],"canonicalName":"PassportScorer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75769,75609,55494,57742],"name":"PassportScorer","nameLocation":"213:14:129","scope":75770,"usedErrors":[75631,75633]}],"license":"AGPL-3.0-or-later"},"id":129} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"_listManager","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"addUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"},{"name":"_passportData","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"changeListManager","inputs":[{"name":"_newManager","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"getUserScore","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct PassportData","components":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}]}],"stateMutability":"view"},{"type":"function","name":"listManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeUser","inputs":[{"name":"_user","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setThreshold","inputs":[{"name":"_newThreshold","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"threshold","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"userScores","inputs":[{"name":"user","type":"address","internalType":"address"}],"outputs":[{"name":"score","type":"uint256","internalType":"uint256"},{"name":"lastUpdated","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"OnlyAuthorized","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b5060405161074738038061074783398101604081905261002f916100e0565b61003833610066565b610041816100b6565b600180546001600160a01b0319166001600160a01b0392909216919091179055610110565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381166100dd5760405163d92e233d60e01b815260040160405180910390fd5b50565b6000602082840312156100f257600080fd5b81516001600160a01b038116811461010957600080fd5b9392505050565b6106288061011f6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea264697066735822122084fe3691a1977a70c5613570b0ea4ce2200750ac34339c70af1a2d4519fb7f2c64736f6c63430008130033","sourceMap":"204:1455:128:-:0;;;768:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:60;719:10:80;936:18:60;:32::i;:::-;822::128::1;841:12:::0;822:18:::1;:32::i;:::-;864:11;:26:::0;;-1:-1:-1;;;;;;864:26:128::1;-1:-1:-1::0;;;;;864:26:128;;;::::1;::::0;;;::::1;::::0;;204:1455;;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;;;;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;614:148:128:-;-1:-1:-1;;;;;687:22:128;;683:73;;732:13;;-1:-1:-1;;;732:13:128;;;;;;;;;;;683:73;614:148;:::o;14:290:145:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:145;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:145:o;:::-;204:1455:128;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638da5cb5b11610081578063985751881161005b57806398575188146101a1578063b34e0c47146101b4578063f2fde38b1461022457600080fd5b80638da5cb5b146101565780638df8b2fe1461017b578063960bfe041461018e57600080fd5b806342cde4e8116100b257806342cde4e814610124578063715018a61461013b5780637814d5681461014357600080fd5b80631413d4c0146100ce5780633d4768301461010f575b600080fd5b6100f56100dc36600461051d565b6003602052600090815260409020805460019091015482565b604080519283526020830191909152015b60405180910390f35b61012261011d36600461051d565b610237565b005b61012d60025481565b604051908152602001610106565b610122610277565b61012261015136600461053f565b61028b565b6000546001600160a01b03165b6040516001600160a01b039091168152602001610106565b600154610163906001600160a01b031681565b61012261019c3660046105d9565b6102ff565b6101226101af36600461051d565b61030c565b6102096101c236600461051d565b6040805180820190915260008082526020820152506001600160a01b0316600090815260036020908152604091829020825180840190935280548352600101549082015290565b60408051825181526020928301519281019290925201610106565b61012261023236600461051d565b610375565b61023f61040a565b61024881610464565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b61027f61040a565b61028960006104a4565b565b6000546001600160a01b03163314806102ae57506001546001600160a01b031633145b156102e6576102bc82610464565b6001600160a01b038216600090815260036020908152604090912082518155908201516001909101555b604051637d7b71b560e01b815260040160405180910390fd5b61030761040a565b600255565b6000546001600160a01b031633148061032f57506001546001600160a01b031633145b156102e65761033d81610464565b6001600160a01b038116600090815260036020526040812081815560010155604051637d7b71b560e01b815260040160405180910390fd5b61037d61040a565b6001600160a01b0381166103fe5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b610407816104a4565b50565b6000546001600160a01b031633146102895760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103f5565b6001600160a01b038116610407576040517fd92e233d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80356001600160a01b038116811461051857600080fd5b919050565b60006020828403121561052f57600080fd5b61053882610501565b9392505050565b600080828403606081121561055357600080fd5b61055c84610501565b92506040601f198201121561057057600080fd5b506040516040810181811067ffffffffffffffff821117156105bb577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60409081526020858101358352940135938101939093525092909150565b6000602082840312156105eb57600080fd5b503591905056fea264697066735822122084fe3691a1977a70c5613570b0ea4ce2200750ac34339c70af1a2d4519fb7f2c64736f6c63430008130033","sourceMap":"204:1455:128:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;322:68;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;580:25:145;;;636:2;621:18;;614:34;;;;553:18;322:68:128;;;;;;;;1249:159;;;;;;:::i;:::-;;:::i;:::-;;291:24;;;;;;;;;805:25:145;;;793:2;778:18;291:24:128;659:177:145;1824:101:60;;;:::i;903:190:128:-;;;;;;:::i;:::-;;:::i;1201:85:60:-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;1201:85;;;-1:-1:-1;;;;;1833:55:145;;;1815:74;;1803:2;1788:18;1201:85:60;1669:226:145;259:26:128;;;;;-1:-1:-1;;;;;259:26:128;;;1414:115;;;;;;:::i;:::-;;:::i;1099:144::-;;;;;;:::i;:::-;;:::i;1535:122::-;;;;;;:::i;:::-;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;1633:17:128;;;;;:10;:17;;;;;;;;;1626:24;;;;;;;;;;;;;;;;;;;;1535:122;;;;;2311:13:145;;2293:32;;2381:4;2369:17;;;2363:24;2341:20;;;2334:54;;;;2266:18;1535:122:128;2085:309:145;2074:198:60;;;;;;:::i;:::-;;:::i;1249:159:128:-;1094:13:60;:11;:13::i;:::-;1335:31:128::1;1354:11;1335:18;:31::i;:::-;1376:11;:25:::0;;-1:-1:-1;;1376:25:128::1;-1:-1:-1::0;;;;;1376:25:128;;;::::1;::::0;;;::::1;::::0;;1249:159::o;1824:101:60:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;903:190:128:-;1247:7:60;1273:6;-1:-1:-1;;;;;1273:6:60;491:10:128;:21;;:50;;-1:-1:-1;530:11:128;;-1:-1:-1;;;;;530:11:128;516:10;:25;491:50;487:82;;;1018:25:::1;1037:5;1018:18;:25::i;:::-;-1:-1:-1::0;;;;;1053:17:128;::::1;;::::0;;;:10:::1;:17;::::0;;;;;;;:33;;;;;;::::1;::::0;::::1;::::0;;::::1;::::0;487:82;585:16;;-1:-1:-1;;;585:16:128;;;;;;;;;;;1414:115;1094:13:60;:11;:13::i;:::-;1497:9:128::1;:25:::0;1414:115::o;1099:144::-;1247:7:60;1273:6;-1:-1:-1;;;;;1273:6:60;491:10:128;:21;;:50;;-1:-1:-1;530:11:128;;-1:-1:-1;;;;;530:11:128;516:10;:25;491:50;487:82;;;1177:25:::1;1196:5;1177:18;:25::i;:::-;-1:-1:-1::0;;;;;1219:17:128;::::1;;::::0;;;:10:::1;:17;::::0;;;;1212:24;;;::::1;;::::0;585:16;;-1:-1:-1;;;585:16:128;;;;;;;;;;;2074:198:60;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:60;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:60;;2601:2:145;2154:73:60::1;::::0;::::1;2583:21:145::0;2640:2;2620:18;;;2613:30;2679:34;2659:18;;;2652:62;2750:8;2730:18;;;2723:36;2776:19;;2154:73:60::1;;;;;;;;;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;719:10:80;1422:23:60;1414:68;;;;-1:-1:-1;;;1414:68:60;;3008:2:145;1414:68:60;;;2990:21:145;;;3027:18;;;3020:30;3086:34;3066:18;;;3059:62;3138:18;;1414:68:60;2806:356:145;614:148:128;-1:-1:-1;;;;;687:22:128;;683:73;;732:13;;;;;;;;;;;;;;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;14:196:145:-;82:20;;-1:-1:-1;;;;;131:54:145;;121:65;;111:93;;200:1;197;190:12;111:93;14:196;;;:::o;215:186::-;274:6;327:2;315:9;306:7;302:23;298:32;295:52;;;343:1;340;333:12;295:52;366:29;385:9;366:29;:::i;:::-;356:39;215:186;-1:-1:-1;;;215:186:145:o;841:823::-;940:6;948;992:9;983:7;979:23;1022:2;1018;1014:11;1011:31;;;1038:1;1035;1028:12;1011:31;1061:29;1080:9;1061:29;:::i;:::-;1051:39;-1:-1:-1;1124:4:145;-1:-1:-1;;1106:16:145;;1102:27;1099:47;;;1142:1;1139;1132:12;1099:47;;1175:4;1169:11;1219:4;1211:6;1207:17;1290:6;1278:10;1275:22;1254:18;1242:10;1239:34;1236:62;1233:242;;;1331:77;1328:1;1321:88;1432:4;1429:1;1422:15;1460:4;1457:1;1450:15;1233:242;1491:4;1484:24;;;1560:2;1545:18;;;1532:32;1517:48;;1611:20;;1598:34;1581:15;;;1574:59;;;;-1:-1:-1;841:823:145;1524:6;;-1:-1:-1;841:823:145:o;1900:180::-;1959:6;2012:2;2000:9;1991:7;1987:23;1983:32;1980:52;;;2028:1;2025;2018:12;1980:52;-1:-1:-1;2051:23:145;;1900:180;-1:-1:-1;1900:180:145:o","linkReferences":{}},"methodIdentifiers":{"addUserScore(address,(uint256,uint256))":"7814d568","changeListManager(address)":"3d476830","getUserScore(address)":"b34e0c47","listManager()":"8df8b2fe","owner()":"8da5cb5b","removeUser(address)":"98575188","renounceOwnership()":"715018a6","setThreshold(uint256)":"960bfe04","threshold()":"42cde4e8","transferOwnership(address)":"f2fde38b","userScores(address)":"1413d4c0"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_listManager\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"OnlyAuthorized\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"_passportData\",\"type\":\"tuple\"}],\"name\":\"addUserScore\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newManager\",\"type\":\"address\"}],\"name\":\"changeListManager\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"getUserScore\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"internalType\":\"struct PassportData\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"listManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"}],\"name\":\"removeUser\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newThreshold\",\"type\":\"uint256\"}],\"name\":\"setThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"threshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"}],\"name\":\"userScores\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"score\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"lastUpdated\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/PassportScorer.sol\":\"PassportScorer\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"pkg/contracts/src/ISybilScorer.sol\":{\"keccak256\":\"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5\",\"dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x\"]},\"pkg/contracts/src/PassportScorer.sol\":{\"keccak256\":\"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b\",\"dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"address","name":"_listManager","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"OnlyAuthorized"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_user","type":"address"},{"internalType":"struct PassportData","name":"_passportData","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"stateMutability":"nonpayable","type":"function","name":"addUserScore"},{"inputs":[{"internalType":"address","name":"_newManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"changeListManager"},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"view","type":"function","name":"getUserScore","outputs":[{"internalType":"struct PassportData","name":"","type":"tuple","components":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"listManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_user","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeUser"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"uint256","name":"_newThreshold","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setThreshold"},{"inputs":[],"stateMutability":"view","type":"function","name":"threshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"user","type":"address"}],"stateMutability":"view","type":"function","name":"userScores","outputs":[{"internalType":"uint256","name":"score","type":"uint256"},{"internalType":"uint256","name":"lastUpdated","type":"uint256"}]}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/PassportScorer.sol":"PassportScorer"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"pkg/contracts/src/ISybilScorer.sol":{"keccak256":"0x37fa5f3c7577a089d233fc7c68cafe38c3db666c0b94ab639d12d235fa740199","urls":["bzz-raw://a9b92c92abd3a03f68913e3733b5e5922c30762a5d5f435c9dbce8f51d37fcf5","dweb:/ipfs/QmSodKW68voeW9EMX1uoozVuvXD5ciFZ4iuqXvZLWQJH2x"],"license":"MIT"},"pkg/contracts/src/PassportScorer.sol":{"keccak256":"0xf8682dca242abff1d7672d98a80ba08de542f3ec96128588022a74f9d282322d","urls":["bzz-raw://62e64ed5ce8938222fe3e81a57bc9372dd96fc1ed09c7194a0580e3363c7cc1b","dweb:/ipfs/QmSZfs4oFjRfQZ1XVQsHgYLU4FTBBTK4tKopE76FCnXSAx"],"license":"AGPL-3.0-or-later"}},"version":1},"storageLayout":{"storage":[{"astId":55389,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":75605,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"listManager","offset":0,"slot":"1","type":"t_address"},{"astId":75607,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"threshold","offset":0,"slot":"2","type":"t_uint256"},{"astId":75612,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"userScores","offset":0,"slot":"3","type":"t_mapping(t_address,t_struct(PassportData)75568_storage)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_mapping(t_address,t_struct(PassportData)75568_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct PassportData)","numberOfBytes":"32","value":"t_struct(PassportData)75568_storage"},"t_struct(PassportData)75568_storage":{"encoding":"inplace","label":"struct PassportData","numberOfBytes":"64","members":[{"astId":75565,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"score","offset":0,"slot":"0","type":"t_uint256"},{"astId":75567,"contract":"pkg/contracts/src/PassportScorer.sol:PassportScorer","label":"lastUpdated","offset":0,"slot":"1","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/PassportScorer.sol","id":75753,"exportedSymbols":{"ISybilScorer":[75592],"Ownable":[55494],"PassportData":[75568],"PassportScorer":[75752]},"nodeType":"SourceUnit","src":"46:1614:128","nodes":[{"id":75594,"nodeType":"PragmaDirective","src":"46:24:128","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75596,"nodeType":"ImportDirective","src":"72:67:128","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":75753,"sourceUnit":55495,"symbolAliases":[{"foreign":{"id":75595,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55494,"src":"80:7:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75599,"nodeType":"ImportDirective","src":"140:62:128","nodes":[],"absolutePath":"pkg/contracts/src/ISybilScorer.sol","file":"./ISybilScorer.sol","nameLocation":"-1:-1:-1","scope":75753,"sourceUnit":75593,"symbolAliases":[{"foreign":{"id":75597,"name":"ISybilScorer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75592,"src":"148:12:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75598,"name":"PassportData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75568,"src":"162:12:128","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75752,"nodeType":"ContractDefinition","src":"204:1455:128","nodes":[{"id":75605,"nodeType":"VariableDeclaration","src":"259:26:128","nodes":[],"constant":false,"functionSelector":"8df8b2fe","mutability":"mutable","name":"listManager","nameLocation":"274:11:128","scope":75752,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75604,"name":"address","nodeType":"ElementaryTypeName","src":"259:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":75607,"nodeType":"VariableDeclaration","src":"291:24:128","nodes":[],"constant":false,"functionSelector":"42cde4e8","mutability":"mutable","name":"threshold","nameLocation":"306:9:128","scope":75752,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75606,"name":"uint256","nodeType":"ElementaryTypeName","src":"291:7:128","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":75612,"nodeType":"VariableDeclaration","src":"322:68:128","nodes":[],"constant":false,"functionSelector":"1413d4c0","mutability":"mutable","name":"userScores","nameLocation":"380:10:128","scope":75752,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75568_storage_$","typeString":"mapping(address => struct PassportData)"},"typeName":{"id":75611,"keyName":"user","keyNameLocation":"338:4:128","keyType":{"id":75608,"name":"address","nodeType":"ElementaryTypeName","src":"330:7:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"322:50:128","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75568_storage_$","typeString":"mapping(address => struct PassportData)"},"valueName":"passportData","valueNameLocation":"359:12:128","valueType":{"id":75610,"nodeType":"UserDefinedTypeName","pathNode":{"id":75609,"name":"PassportData","nameLocations":["346:12:128"],"nodeType":"IdentifierPath","referencedDeclaration":75568,"src":"346:12:128"},"referencedDeclaration":75568,"src":"346:12:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage_ptr","typeString":"struct PassportData"}}},"visibility":"public"},{"id":75614,"nodeType":"ErrorDefinition","src":"397:23:128","nodes":[],"errorSelector":"7d7b71b5","name":"OnlyAuthorized","nameLocation":"403:14:128","parameters":{"id":75613,"nodeType":"ParameterList","parameters":[],"src":"417:2:128"}},{"id":75616,"nodeType":"ErrorDefinition","src":"425:20:128","nodes":[],"errorSelector":"d92e233d","name":"ZeroAddress","nameLocation":"431:11:128","parameters":{"id":75615,"nodeType":"ParameterList","parameters":[],"src":"442:2:128"}},{"id":75635,"nodeType":"ModifierDefinition","src":"451:157:128","nodes":[],"body":{"id":75634,"nodeType":"Block","src":"477:131:128","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":75627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75622,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75618,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"491:3:128","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75619,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"495:6:128","memberName":"sender","nodeType":"MemberAccess","src":"491:10:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[],"expression":{"argumentTypes":[],"id":75620,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55422,"src":"505:5:128","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$_t_address_$","typeString":"function () view returns (address)"}},"id":75621,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"505:7:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"491:21:128","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75626,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":75623,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"516:3:128","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"520:6:128","memberName":"sender","nodeType":"MemberAccess","src":"516:10:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":75625,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75605,"src":"530:11:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"516:25:128","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"491:50:128","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75630,"nodeType":"IfStatement","src":"487:82:128","trueBody":{"id":75629,"nodeType":"Block","src":"543:26:128","statements":[{"id":75628,"nodeType":"PlaceholderStatement","src":"557:1:128"}]}},{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75631,"name":"OnlyAuthorized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75614,"src":"585:14:128","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75632,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"585:16:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75633,"nodeType":"RevertStatement","src":"578:23:128"}]},"name":"onlyAuthorized","nameLocation":"460:14:128","parameters":{"id":75617,"nodeType":"ParameterList","parameters":[],"src":"474:2:128"},"virtual":false,"visibility":"internal"},{"id":75652,"nodeType":"FunctionDefinition","src":"614:148:128","nodes":[],"body":{"id":75651,"nodeType":"Block","src":"673:89:128","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":75645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":75640,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75637,"src":"687:8:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":75643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"707:1:128","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":75642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"699:7:128","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":75641,"name":"address","nodeType":"ElementaryTypeName","src":"699:7:128","typeDescriptions":{}}},"id":75644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"699:10:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"687:22:128","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75650,"nodeType":"IfStatement","src":"683:73:128","trueBody":{"id":75649,"nodeType":"Block","src":"711:45:128","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75646,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75616,"src":"732:11:128","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"732:13:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75648,"nodeType":"RevertStatement","src":"725:20:128"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"623:18:128","parameters":{"id":75638,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75637,"mutability":"mutable","name":"_address","nameLocation":"650:8:128","nodeType":"VariableDeclaration","scope":75652,"src":"642:16:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75636,"name":"address","nodeType":"ElementaryTypeName","src":"642:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"641:18:128"},"returnParameters":{"id":75639,"nodeType":"ParameterList","parameters":[],"src":"673:0:128"},"scope":75752,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":75668,"nodeType":"FunctionDefinition","src":"768:129:128","nodes":[],"body":{"id":75667,"nodeType":"Block","src":"812:85:128","nodes":[],"statements":[{"expression":{"arguments":[{"id":75660,"name":"_listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75654,"src":"841:12:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75659,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"822:18:128","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75661,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"822:32:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75662,"nodeType":"ExpressionStatement","src":"822:32:128"},{"expression":{"id":75665,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75663,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75605,"src":"864:11:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75664,"name":"_listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75654,"src":"878:12:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"864:26:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75666,"nodeType":"ExpressionStatement","src":"864:26:128"}]},"implemented":true,"kind":"constructor","modifiers":[{"arguments":[],"id":75657,"kind":"baseConstructorSpecifier","modifierName":{"id":75656,"name":"Ownable","nameLocations":["802:7:128"],"nodeType":"IdentifierPath","referencedDeclaration":55494,"src":"802:7:128"},"nodeType":"ModifierInvocation","src":"802:9:128"}],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":75655,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75654,"mutability":"mutable","name":"_listManager","nameLocation":"788:12:128","nodeType":"VariableDeclaration","scope":75668,"src":"780:20:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75653,"name":"address","nodeType":"ElementaryTypeName","src":"780:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"779:22:128"},"returnParameters":{"id":75658,"nodeType":"ParameterList","parameters":[],"src":"812:0:128"},"scope":75752,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":75690,"nodeType":"FunctionDefinition","src":"903:190:128","nodes":[],"body":{"id":75689,"nodeType":"Block","src":"1008:85:128","nodes":[],"statements":[{"expression":{"arguments":[{"id":75680,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75670,"src":"1037:5:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75679,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"1018:18:128","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1018:25:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75682,"nodeType":"ExpressionStatement","src":"1018:25:128"},{"expression":{"id":75687,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":75683,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75612,"src":"1053:10:128","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75568_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75685,"indexExpression":{"id":75684,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75670,"src":"1064:5:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1053:17:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage","typeString":"struct PassportData storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75686,"name":"_passportData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75673,"src":"1073:13:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_memory_ptr","typeString":"struct PassportData memory"}},"src":"1053:33:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage","typeString":"struct PassportData storage ref"}},"id":75688,"nodeType":"ExpressionStatement","src":"1053:33:128"}]},"baseFunctions":[75576],"functionSelector":"7814d568","implemented":true,"kind":"function","modifiers":[{"id":75677,"kind":"modifierInvocation","modifierName":{"id":75676,"name":"onlyAuthorized","nameLocations":["993:14:128"],"nodeType":"IdentifierPath","referencedDeclaration":75635,"src":"993:14:128"},"nodeType":"ModifierInvocation","src":"993:14:128"}],"name":"addUserScore","nameLocation":"912:12:128","overrides":{"id":75675,"nodeType":"OverrideSpecifier","overrides":[],"src":"984:8:128"},"parameters":{"id":75674,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75670,"mutability":"mutable","name":"_user","nameLocation":"933:5:128","nodeType":"VariableDeclaration","scope":75690,"src":"925:13:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75669,"name":"address","nodeType":"ElementaryTypeName","src":"925:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75673,"mutability":"mutable","name":"_passportData","nameLocation":"960:13:128","nodeType":"VariableDeclaration","scope":75690,"src":"940:33:128","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_memory_ptr","typeString":"struct PassportData"},"typeName":{"id":75672,"nodeType":"UserDefinedTypeName","pathNode":{"id":75671,"name":"PassportData","nameLocations":["940:12:128"],"nodeType":"IdentifierPath","referencedDeclaration":75568,"src":"940:12:128"},"referencedDeclaration":75568,"src":"940:12:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage_ptr","typeString":"struct PassportData"}},"visibility":"internal"}],"src":"924:50:128"},"returnParameters":{"id":75678,"nodeType":"ParameterList","parameters":[],"src":"1008:0:128"},"scope":75752,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75708,"nodeType":"FunctionDefinition","src":"1099:144:128","nodes":[],"body":{"id":75707,"nodeType":"Block","src":"1167:76:128","nodes":[],"statements":[{"expression":{"arguments":[{"id":75699,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75692,"src":"1196:5:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75698,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"1177:18:128","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75700,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1177:25:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75701,"nodeType":"ExpressionStatement","src":"1177:25:128"},{"expression":{"id":75705,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"1212:24:128","subExpression":{"baseExpression":{"id":75702,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75612,"src":"1219:10:128","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75568_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75704,"indexExpression":{"id":75703,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75692,"src":"1230:5:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"1219:17:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage","typeString":"struct PassportData storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75706,"nodeType":"ExpressionStatement","src":"1212:24:128"}]},"baseFunctions":[75581],"functionSelector":"98575188","implemented":true,"kind":"function","modifiers":[{"id":75696,"kind":"modifierInvocation","modifierName":{"id":75695,"name":"onlyAuthorized","nameLocations":["1152:14:128"],"nodeType":"IdentifierPath","referencedDeclaration":75635,"src":"1152:14:128"},"nodeType":"ModifierInvocation","src":"1152:14:128"}],"name":"removeUser","nameLocation":"1108:10:128","overrides":{"id":75694,"nodeType":"OverrideSpecifier","overrides":[],"src":"1143:8:128"},"parameters":{"id":75693,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75692,"mutability":"mutable","name":"_user","nameLocation":"1127:5:128","nodeType":"VariableDeclaration","scope":75708,"src":"1119:13:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75691,"name":"address","nodeType":"ElementaryTypeName","src":"1119:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1118:15:128"},"returnParameters":{"id":75697,"nodeType":"ParameterList","parameters":[],"src":"1167:0:128"},"scope":75752,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75725,"nodeType":"FunctionDefinition","src":"1249:159:128","nodes":[],"body":{"id":75724,"nodeType":"Block","src":"1325:83:128","nodes":[],"statements":[{"expression":{"arguments":[{"id":75717,"name":"_newManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75710,"src":"1354:11:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75716,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75652,"src":"1335:18:128","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":75718,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1335:31:128","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75719,"nodeType":"ExpressionStatement","src":"1335:31:128"},{"expression":{"id":75722,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75720,"name":"listManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75605,"src":"1376:11:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75721,"name":"_newManager","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75710,"src":"1390:11:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1376:25:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75723,"nodeType":"ExpressionStatement","src":"1376:25:128"}]},"baseFunctions":[75586],"functionSelector":"3d476830","implemented":true,"kind":"function","modifiers":[{"id":75714,"kind":"modifierInvocation","modifierName":{"id":75713,"name":"onlyOwner","nameLocations":["1315:9:128"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"1315:9:128"},"nodeType":"ModifierInvocation","src":"1315:9:128"}],"name":"changeListManager","nameLocation":"1258:17:128","overrides":{"id":75712,"nodeType":"OverrideSpecifier","overrides":[],"src":"1306:8:128"},"parameters":{"id":75711,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75710,"mutability":"mutable","name":"_newManager","nameLocation":"1284:11:128","nodeType":"VariableDeclaration","scope":75725,"src":"1276:19:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75709,"name":"address","nodeType":"ElementaryTypeName","src":"1276:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1275:21:128"},"returnParameters":{"id":75715,"nodeType":"ParameterList","parameters":[],"src":"1325:0:128"},"scope":75752,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75738,"nodeType":"FunctionDefinition","src":"1414:115:128","nodes":[],"body":{"id":75737,"nodeType":"Block","src":"1487:42:128","nodes":[],"statements":[{"expression":{"id":75735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":75733,"name":"threshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75607,"src":"1497:9:128","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":75734,"name":"_newThreshold","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75727,"src":"1509:13:128","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1497:25:128","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":75736,"nodeType":"ExpressionStatement","src":"1497:25:128"}]},"baseFunctions":[75591],"functionSelector":"960bfe04","implemented":true,"kind":"function","modifiers":[{"id":75731,"kind":"modifierInvocation","modifierName":{"id":75730,"name":"onlyOwner","nameLocations":["1477:9:128"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"1477:9:128"},"nodeType":"ModifierInvocation","src":"1477:9:128"}],"name":"setThreshold","nameLocation":"1423:12:128","overrides":{"id":75729,"nodeType":"OverrideSpecifier","overrides":[],"src":"1468:8:128"},"parameters":{"id":75728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75727,"mutability":"mutable","name":"_newThreshold","nameLocation":"1444:13:128","nodeType":"VariableDeclaration","scope":75738,"src":"1436:21:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75726,"name":"uint256","nodeType":"ElementaryTypeName","src":"1436:7:128","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1435:23:128"},"returnParameters":{"id":75732,"nodeType":"ParameterList","parameters":[],"src":"1487:0:128"},"scope":75752,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":75751,"nodeType":"FunctionDefinition","src":"1535:122:128","nodes":[],"body":{"id":75750,"nodeType":"Block","src":"1616:41:128","nodes":[],"statements":[{"expression":{"baseExpression":{"id":75746,"name":"userScores","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75612,"src":"1633:10:128","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_PassportData_$75568_storage_$","typeString":"mapping(address => struct PassportData storage ref)"}},"id":75748,"indexExpression":{"id":75747,"name":"_user","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75740,"src":"1644:5:128","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1633:17:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage","typeString":"struct PassportData storage ref"}},"functionReturnParameters":75745,"id":75749,"nodeType":"Return","src":"1626:24:128"}]},"functionSelector":"b34e0c47","implemented":true,"kind":"function","modifiers":[],"name":"getUserScore","nameLocation":"1544:12:128","parameters":{"id":75741,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75740,"mutability":"mutable","name":"_user","nameLocation":"1565:5:128","nodeType":"VariableDeclaration","scope":75751,"src":"1557:13:128","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75739,"name":"address","nodeType":"ElementaryTypeName","src":"1557:7:128","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1556:15:128"},"returnParameters":{"id":75745,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75744,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75751,"src":"1595:19:128","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_memory_ptr","typeString":"struct PassportData"},"typeName":{"id":75743,"nodeType":"UserDefinedTypeName","pathNode":{"id":75742,"name":"PassportData","nameLocations":["1595:12:128"],"nodeType":"IdentifierPath","referencedDeclaration":75568,"src":"1595:12:128"},"referencedDeclaration":75568,"src":"1595:12:128","typeDescriptions":{"typeIdentifier":"t_struct$_PassportData_$75568_storage_ptr","typeString":"struct PassportData"}},"visibility":"internal"}],"src":"1594:21:128"},"scope":75752,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":75600,"name":"Ownable","nameLocations":["231:7:128"],"nodeType":"IdentifierPath","referencedDeclaration":55494,"src":"231:7:128"},"id":75601,"nodeType":"InheritanceSpecifier","src":"231:7:128"},{"baseName":{"id":75602,"name":"ISybilScorer","nameLocations":["240:12:128"],"nodeType":"IdentifierPath","referencedDeclaration":75592,"src":"240:12:128"},"id":75603,"nodeType":"InheritanceSpecifier","src":"240:12:128"}],"canonicalName":"PassportScorer","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[75752,75592,55494,57734],"name":"PassportScorer","nameLocation":"213:14:128","scope":75753,"usedErrors":[75614,75616]}],"license":"AGPL-3.0-or-later"},"id":128} \ No newline at end of file diff --git a/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json b/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json index 1db636ae8..aeb3378c8 100644 --- a/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json +++ b/pkg/contracts/out/PassportScorerTest.t.sol/PassportScorerTest.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setEnableGasLog","inputs":[{"name":"enable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFuzz_increasePowerCapped","inputs":[{"name":"tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_revertGetProtocolFee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601e805482168317905560209190915560218054909116905560c0604052600560809081526437bbb732b960d91b60a0526200004c9062000086565b602160016101000a8154816001600160a01b0302191690836001600160a01b031602179055503480156200007f57600080fd5b5062000273565b600062000093826200009a565b5092915050565b60008082604051602001620000b09190620001df565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200011c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001429190620001fd565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906200018090859087906004016200022f565b600060405180830381600087803b1580156200019b57600080fd5b505af1158015620001b0573d6000803e3d6000fd5b50505050915091565b60005b83811015620001d6578181015183820152602001620001bc565b50506000910152565b60008251620001f3818460208701620001b9565b9190910192915050565b6000602082840312156200021057600080fd5b81516001600160a01b03811681146200022857600080fd5b9392505050565b60018060a01b038316815260406020820152600082518060408401526200025e816060850160208701620001b9565b601f01601f1916919091016060019392505050565b61143780620002836000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea26469706673582212206efb27b88c6d30d914edf598025bdab67ec10a013873de05007ba2936658ae1164736f6c63430008130033","sourceMap":"3126:44:23:-:0;;;3166:4;-1:-1:-1;;3126:44:23;;;;;;;;1016:26:33;;;;;;;;;158:37:140;;;;;226:34;;;;;;;;472:17:137;393:1018;472:17;;393:1018;472:17;;;-1:-1:-1;;;472:17:137;;;;:8;:17::i;:::-;456:33;;;;;;;-1:-1:-1;;;;;456:33:137;;;;;-1:-1:-1;;;;;456:33:137;;;;;;393:1018;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;-1:-1:-1;;;;;;20344:19:24;;;;;709:25:143;;;20293:33:24;-1:-1:-1;20344:7:24;;;;682:18:143;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;-1:-1:-1;;;20373:20:24;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;14:250:143:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:143;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:143:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:143;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:143:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:143;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:143:o;:::-;393:1018:137;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea26469706673582212206efb27b88c6d30d914edf598025bdab67ec10a013873de05007ba2936658ae1164736f6c63430008130033","sourceMap":"393:1018:137:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:127;;;:::i;:::-;;496:86;;;:::i;2452:134:26:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;267:84:140:-;;;;;;:::i;:::-;322:13;:22;;-1:-1:-1;;322:22:140;;;;;;;;;;267:84;3221:133:26;;;:::i;2922:141::-;;;:::i;721:382:137:-;;;:::i;1109:300::-;;;;;;:::i;:::-;;:::i;2738:178:26:-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;2157:141::-;;;:::i;1243:204:22:-;;;:::i;:::-;;;5979:14:143;;5972:22;5954:41;;5942:2;5927:18;1243:204:22;5814:187:143;2304:142:26;;;:::i;1016:26:33:-;;;;;;;;;588:127:137;644:35;;;;;;;;;;;;;;;;;;:17;:35::i;:::-;690:18;:16;:18::i;:::-;588:127::o;496:86::-;544:5;;530:20;;-1:-1:-1;;;530:20:137;;544:5;;;;-1:-1:-1;;;;;544:5:137;530:20;;;6152:74:143;530:13:137;;;;6125:18:143;;530:20:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:20;309:37;;-1:-1:-1;;;;;561:12:137;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;496:86::o;2452:134:26:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:26;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:26;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:26;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;721:382:137:-;775:41;;;;;;;;;;;;;;;;;;:17;:41::i;:::-;840:5;;826:20;;-1:-1:-1;;;826:20:137;;840:5;;;;-1:-1:-1;;;;;840:5:137;826:20;;;6152:74:143;826:13:137;;;;6125:18:143;;826:20:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:20;309:37;;-1:-1:-1;;;;;1054:12:137;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1078:18;:16;:18::i;1109:300::-;1185:31;;-1:-1:-1;;;1185:31:137;;1195:20;;1185:31;;;5954:41:143;1185:9:137;;;;5927:18:143;;1185:31:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1226:27:137;;-1:-1:-1;;;1226:27:137;;1236:16;1226:27;;;5954:41:143;1226:9:137;;-1:-1:-1;1226:9:137;;-1:-1:-1;5927:18:143;;1226:27:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1278:5:137;;1264:20;;-1:-1:-1;;;1264:20:137;;1278:5;;;;-1:-1:-1;;;;;1278:5:137;1264:20;;;6152:74:143;1264:13:137;;-1:-1:-1;1264:13:137;;-1:-1:-1;6125:18:143;;1264:20:137;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:20;309:37;;-1:-1:-1;;;;;1294:12:137;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1366:36;1375:4;1381;1366:36;;;;;;;;;;;;;;;;;:8;:36::i;:::-;1109:300;:::o;2738:178:26:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2157:141;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:22;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:22;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;6853:74:143;;;1398:17:22;6943:18:143;;;6936:34;1428:1:22;;1377:7;;6826:18:143;;1377:39:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:26:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:26;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;357:192:140:-;436:13;;;;432:111;;;465:15;:23;483:5;465:15;:23;:::i;:::-;;523:9;503:17;:29;357:192;:::o;555:396::-;614:13;;;;610:335;;;643:26;672:9;643:38;;776:16;836:3;815:18;795:17;;:38;;;;:::i;:::-;:44;;;;:::i;:::-;776:63;;859:75;898:15;881:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;881:41:140;;;;;;;;;;859:75;;925:8;;859:75;:::i;:::-;;;;;;;;629:316;;555:396::o;2136:128:22:-;2228:29;;;;;:11;;;;:29;;2240:4;;2246:5;;2253:3;;2228:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:128;;;:::o;14:681:143:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:143;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:143;;14:681;-1:-1:-1;;;;;;14:681:143:o;700:423::-;742:3;780:5;774:12;807:6;802:3;795:19;832:1;842:162;856:6;853:1;850:13;842:162;;;918:4;974:13;;;970:22;;964:29;946:11;;;942:20;;935:59;871:12;842:162;;;846:3;1049:1;1042:4;1033:6;1028:3;1024:16;1020:27;1013:38;1112:4;1105:2;1101:7;1096:2;1088:6;1084:15;1080:29;1075:3;1071:39;1067:50;1060:57;;;700:423;;;;:::o;1128:1767::-;1363:2;1415:21;;;1485:13;;1388:18;;;1507:22;;;1334:4;;1363:2;1548;;1566:18;;;;1603:1;1646:15;;;1631:31;;1627:40;;1690:15;;;1334:4;;1754:1112;1770:6;1765:3;1762:15;1754:1112;;;-1:-1:-1;;1839:22:143;;;1835:36;1823:49;;1895:13;;1982:9;;-1:-1:-1;;;;;1978:58:143;1963:74;;2076:11;;2070:18;2108:15;;;2101:27;;;2189:19;;1935:15;;;2221:24;;;2402:21;;;;2268:2;2350:17;;;2338:30;;2334:39;;;2292:15;;;;2447:1;2461:296;2477:8;2472:3;2469:17;2461:296;;;2583:2;2579:7;2570:6;2562;2558:19;2554:33;2547:5;2540:48;2615:42;2650:6;2639:8;2633:15;2615:42;:::i;:::-;2686:17;;;;2605:52;-1:-1:-1;2729:14:143;;;;2505:1;2496:11;2461:296;;;-1:-1:-1;;;2844:12:143;;;;2780:6;-1:-1:-1;;2809:15:143;;;;1796:1;1787:11;1754:1112;;;-1:-1:-1;2883:6:143;;1128:1767;-1:-1:-1;;;;;;;;;;1128:1767:143:o;2900:273::-;2956:6;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3117:5;3110:13;3103:21;3096:5;3093:32;3083:60;;3139:1;3136;3129:12;3083:60;3162:5;2900:273;-1:-1:-1;;;2900:273:143:o;3178:180::-;3237:6;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;-1:-1:-1;3329:23:143;;3178:180;-1:-1:-1;3178:180:143:o;3363:1638::-;3567:4;3596:2;3636;3625:9;3621:18;3666:2;3655:9;3648:21;3689:6;3724;3718:13;3755:6;3747;3740:22;3781:2;3771:12;;3814:2;3803:9;3799:18;3792:25;;3876:2;3866:6;3863:1;3859:14;3848:9;3844:30;3840:39;3914:2;3906:6;3902:15;3935:1;3956;3966:1006;3982:6;3977:3;3974:15;3966:1006;;;4051:22;;;-1:-1:-1;;4047:36:143;4035:49;;4107:13;;4194:9;;-1:-1:-1;;;;;4190:58:143;4175:74;;4288:11;;4282:18;4320:15;;;4313:27;;;4401:19;;4147:15;;;4433:24;;;4523:21;;;;4568:1;;4491:2;4479:15;;;4582:282;4598:8;4593:3;4590:17;4582:282;;;4679:15;;4696:66;4675:88;4661:103;;4833:17;;;;4626:1;4617:11;;;;;4790:14;;;;4582:282;;;-1:-1:-1;4950:12:143;;;;4887:5;-1:-1:-1;;;4915:15:143;;;;4008:1;3999:11;3966:1006;;;-1:-1:-1;4989:6:143;;3363:1638;-1:-1:-1;;;;;;;;;3363:1638:143:o;5006:803::-;5168:4;5197:2;5237;5226:9;5222:18;5267:2;5256:9;5249:21;5290:6;5325;5319:13;5356:6;5348;5341:22;5394:2;5383:9;5379:18;5372:25;;5456:2;5446:6;5443:1;5439:14;5428:9;5424:30;5420:39;5406:53;;5494:2;5486:6;5482:15;5515:1;5525:255;5539:6;5536:1;5533:13;5525:255;;;5632:2;5628:7;5616:9;5608:6;5604:22;5600:36;5595:3;5588:49;5660:40;5693:6;5684;5678:13;5660:40;:::i;:::-;5650:50;-1:-1:-1;5758:12:143;;;;5723:15;;;;5561:1;5554:9;5525:255;;;-1:-1:-1;5797:6:143;;5006:803;-1:-1:-1;;;;;;;5006:803:143:o;6237:437::-;6316:1;6312:12;;;;6359;;;6380:61;;6434:4;6426:6;6422:17;6412:27;;6380:61;6487:2;6479:6;6476:14;6456:18;6453:38;6450:218;;-1:-1:-1;;;6521:1:143;6514:88;6625:4;6622:1;6615:15;6653:4;6650:1;6643:15;6450:218;;6237:437;;;:::o;6981:184::-;7051:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:52;;;7120:1;7117;7110:12;7072:52;-1:-1:-1;7143:16:143;;6981:184;-1:-1:-1;6981:184:143:o;7170:::-;-1:-1:-1;;;7219:1:143;7212:88;7319:4;7316:1;7309:15;7343:4;7340:1;7333:15;7485:545;7587:2;7582:3;7579:11;7576:448;;;7623:1;7648:5;7644:2;7637:17;7693:4;7689:2;7679:19;7763:2;7751:10;7747:19;7744:1;7740:27;7734:4;7730:38;7799:4;7787:10;7784:20;7781:47;;;-1:-1:-1;7822:4:143;7781:47;7877:2;7872:3;7868:12;7865:1;7861:20;7855:4;7851:31;7841:41;;7932:82;7950:2;7943:5;7940:13;7932:82;;;7995:17;;;7976:1;7965:13;7932:82;;;7936:3;;;7576:448;7485:545;;;:::o;8206:1352::-;8332:3;8326:10;8359:18;8351:6;8348:30;8345:56;;;8381:18;;:::i;:::-;8410:97;8500:6;8460:38;8492:4;8486:11;8460:38;:::i;:::-;8454:4;8410:97;:::i;:::-;8562:4;;8626:2;8615:14;;8643:1;8638:663;;;;9345:1;9362:6;9359:89;;;-1:-1:-1;9414:19:143;;;9408:26;9359:89;-1:-1:-1;;8163:1:143;8159:11;;;8155:24;8151:29;8141:40;8187:1;8183:11;;;8138:57;9461:81;;8608:944;;8638:663;7432:1;7425:14;;;7469:4;7456:18;;-1:-1:-1;;8674:20:143;;;8792:236;8806:7;8803:1;8800:14;8792:236;;;8895:19;;;8889:26;8874:42;;8987:27;;;;8955:1;8943:14;;;;8822:19;;8792:236;;;8796:3;9056:6;9047:7;9044:19;9041:201;;;9117:19;;;9111:26;-1:-1:-1;;9200:1:143;9196:14;;;9212:3;9192:24;9188:37;9184:42;9169:58;9154:74;;9041:201;-1:-1:-1;;;;;9288:1:143;9272:14;;;9268:22;9255:36;;-1:-1:-1;8206:1352:143:o;9563:282::-;9630:9;;;9651:11;;;9648:191;;;-1:-1:-1;;;9692:1:143;9685:88;9796:4;9793:1;9786:15;9824:4;9821:1;9814:15;9648:191;9563:282;;;;:::o;9850:979::-;10079:3;10108:1;10141:6;10135:13;10171:36;10197:9;10171:36;:::i;:::-;10226:1;10243:18;;;10270:133;;;;10417:1;10412:356;;;;10236:532;;10270:133;-1:-1:-1;;10303:24:143;;10291:37;;10376:14;;10369:22;10357:35;;10348:45;;;-1:-1:-1;10270:133:143;;10412:356;10443:6;10440:1;10433:17;10473:4;10518:2;10515:1;10505:16;10543:1;10557:165;10571:6;10568:1;10565:13;10557:165;;;10649:14;;10636:11;;;10629:35;10692:16;;;;10586:10;;10557:165;;;10561:3;;;10751:6;10746:3;10742:16;10735:23;;10236:532;-1:-1:-1;;10789:6:143;10777:19;;-1:-1:-1;;10821:1:143;10812:11;;9850:979;-1:-1:-1;;;9850:979:143:o;10834:291::-;11011:2;11000:9;10993:21;10974:4;11031:45;11072:2;11061:9;11057:18;11049:6;11031:45;:::i;:::-;11023:53;;11112:6;11107:2;11096:9;11092:18;11085:34;10834:291;;;;;:::o;11130:382::-;11337:6;11330:14;11323:22;11312:9;11305:41;11396:6;11389:14;11382:22;11377:2;11366:9;11362:18;11355:50;11441:2;11436;11425:9;11421:18;11414:30;11286:4;11461:45;11502:2;11491:9;11487:18;11479:6;11461:45;:::i;:::-;11453:53;11130:382;-1:-1:-1;;;;;11130:382:143:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setEnableGasLog(bool)":"2d0e6731","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFuzz_increasePowerCapped(uint256)":"5e8f4ff8","test_revertGetProtocolFee()":"5d53949a","test_stakeAndRegisterMember()":"0354ae60"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setEnableGasLog\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"testFuzz_increasePowerCapped\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_revertGetProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/PassportScorerTest.t.sol\":\"PassportScorerTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"pkg/contracts/test/PassportScorerTest.t.sol\":{\"keccak256\":\"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb\",\"dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H\"]},\"pkg/contracts/test/shared/GasHelpers2.sol\":{\"keccak256\":\"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c\",\"dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setEnableGasLog"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_increasePowerCapped"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_revertGetProtocolFee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_stakeAndRegisterMember"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/PassportScorerTest.t.sol":"PassportScorerTest"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"pkg/contracts/test/PassportScorerTest.t.sol":{"keccak256":"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127","urls":["bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb","dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H"],"license":"AGPL-3.0-or-later"},"pkg/contracts/test/shared/GasHelpers2.sol":{"keccak256":"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5","urls":["bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c","dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5830,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13235_storage"},{"astId":6026,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8527,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8548,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)"},{"astId":8552,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8556,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8559,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9317,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11354,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13235_storage"},{"astId":12222,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12225,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12228,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12231,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12234,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12237,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12241,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12245,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12249,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage"},{"astId":17834,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":99651,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"checkpointLabel","offset":0,"slot":"31","type":"t_string_storage"},{"astId":99654,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"checkpointGasLeft","offset":0,"slot":"32","type":"t_uint256"},{"astId":99657,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_enableGasLog","offset":0,"slot":"33","type":"t_bool"},{"astId":89218,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"owner","offset":1,"slot":"33","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12219_storage"},"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12213_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8543_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8543_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8536,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8538,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8540,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8542,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12219_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12215,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12218,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12213_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12209,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12212,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/test/PassportScorerTest.t.sol","id":89309,"exportedSymbols":{"Errors":[3089],"GasHelpers2":[99718],"IERC20":[56900],"PassportScorerTest":[89308],"StdAssertions":[8503],"StdChains":[9285],"StdCheats":[12138],"StdInvariant":[12463],"StdStorage":[13235],"StdStyle":[16405],"StdUtils":[17783],"Test":[17835],"TestBase":[5834],"Vm":[21485],"console":[29549],"console2":[37674],"safeconsole":[52399],"stdError":[12204],"stdJson":[13055],"stdMath":[13197],"stdStorage":[15194],"stdToml":[16997]},"nodeType":"SourceUnit","src":"46:1366:137","nodes":[{"id":89201,"nodeType":"ImportDirective","src":"46:28:137","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":89309,"sourceUnit":17836,"symbolAliases":[],"unitAlias":""},{"id":89202,"nodeType":"ImportDirective","src":"75:31:137","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":89309,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":89203,"nodeType":"ImportDirective","src":"107:56:137","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":89309,"sourceUnit":56901,"symbolAliases":[],"unitAlias":""},{"id":89205,"nodeType":"ImportDirective","src":"204:67:137","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"allo-v2-contracts/core/libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":89309,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":89204,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"212:6:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89207,"nodeType":"ImportDirective","src":"290:53:137","nodes":[],"absolutePath":"pkg/contracts/test/shared/GasHelpers2.sol","file":"./shared/GasHelpers2.sol","nameLocation":"-1:-1:-1","scope":89309,"sourceUnit":99719,"symbolAliases":[{"foreign":{"id":89206,"name":"GasHelpers2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99718,"src":"298:11:137","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":89308,"nodeType":"ContractDefinition","src":"393:1018:137","nodes":[{"id":89218,"nodeType":"VariableDeclaration","src":"456:33:137","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"464:5:137","scope":89308,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":89214,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:137","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"6f776e6572","id":89216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:7:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0","typeString":"literal_string \"owner\""},"value":"owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0","typeString":"literal_string \"owner\""}],"id":89215,"name":"makeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11107,"src":"472:8:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":89217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"472:17:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":89233,"nodeType":"FunctionDefinition","src":"496:86:137","nodes":[],"body":{"id":89232,"nodeType":"Block","src":"520:62:137","nodes":[],"statements":[{"expression":{"arguments":[{"id":89224,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89218,"src":"544:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":89221,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"530:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89223,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"533:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21266,"src":"530:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":89225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"530:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89226,"nodeType":"ExpressionStatement","src":"530:20:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":89227,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"561:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"564:9:137","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21278,"src":"561:12:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":89230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89231,"nodeType":"ExpressionStatement","src":"561:14:137"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"505:5:137","parameters":{"id":89219,"nodeType":"ParameterList","parameters":[],"src":"510:2:137"},"returnParameters":{"id":89220,"nodeType":"ParameterList","parameters":[],"src":"520:0:137"},"scope":89308,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89244,"nodeType":"FunctionDefinition","src":"588:127:137","nodes":[],"body":{"id":89243,"nodeType":"Block","src":"634:81:137","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"63726561746550726f706f73616c","id":89237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"662:16:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_5536a8091585df374904ce34bc5a018a066909f56bacdb9a6a98233f172cc216","typeString":"literal_string \"createProposal\""},"value":"createProposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5536a8091585df374904ce34bc5a018a066909f56bacdb9a6a98233f172cc216","typeString":"literal_string \"createProposal\""}],"id":89236,"name":"startMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99685,"src":"644:17:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":89238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"644:35:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89239,"nodeType":"ExpressionStatement","src":"644:35:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89240,"name":"stopMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99717,"src":"690:16:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":89241,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"690:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89242,"nodeType":"ExpressionStatement","src":"690:18:137"}]},"functionSelector":"0354ae60","implemented":true,"kind":"function","modifiers":[],"name":"test_stakeAndRegisterMember","nameLocation":"597:27:137","parameters":{"id":89234,"nodeType":"ParameterList","parameters":[],"src":"624:2:137"},"returnParameters":{"id":89235,"nodeType":"ParameterList","parameters":[],"src":"634:0:137"},"scope":89308,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89266,"nodeType":"FunctionDefinition","src":"721:382:137","nodes":[],"body":{"id":89265,"nodeType":"Block","src":"765:338:137","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"53657474696e672070726f746f636f6c20666565","id":89248,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:22:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b1eb06a5e7d24dbfe074a9016d3a1bb8a91d2d663963f3b385e2b556b5e5927","typeString":"literal_string \"Setting protocol fee\""},"value":"Setting protocol fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1b1eb06a5e7d24dbfe074a9016d3a1bb8a91d2d663963f3b385e2b556b5e5927","typeString":"literal_string \"Setting protocol fee\""}],"id":89247,"name":"startMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99685,"src":"775:17:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":89249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:41:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89250,"nodeType":"ExpressionStatement","src":"775:41:137"},{"expression":{"arguments":[{"id":89254,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89218,"src":"840:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":89251,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"826:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21266,"src":"826:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":89255,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89256,"nodeType":"ExpressionStatement","src":"826:20:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":89257,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1054:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1057:9:137","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21278,"src":"1054:12:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":89260,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89261,"nodeType":"ExpressionStatement","src":"1054:14:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":89262,"name":"stopMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":99717,"src":"1078:16:137","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":89263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:18:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89264,"nodeType":"ExpressionStatement","src":"1078:18:137"}]},"functionSelector":"5d53949a","implemented":true,"kind":"function","modifiers":[],"name":"test_revertGetProtocolFee","nameLocation":"730:25:137","parameters":{"id":89245,"nodeType":"ParameterList","parameters":[],"src":"755:2:137"},"returnParameters":{"id":89246,"nodeType":"ParameterList","parameters":[],"src":"765:0:137"},"scope":89308,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":89307,"nodeType":"FunctionDefinition","src":"1109:300:137","nodes":[],"body":{"id":89306,"nodeType":"Block","src":"1175:234:137","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":89278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":89274,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89268,"src":"1195:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"id":89277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":89275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1210:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":89276,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1214:1:137","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1210:5:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}},"src":"1195:20:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89271,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1185:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:137","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":20471,"src":"1185:9:137","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":89279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1185:31:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89280,"nodeType":"ExpressionStatement","src":"1185:31:137"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":89286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":89284,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89268,"src":"1236:11:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":89285,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1251:1:137","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1236:16:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":89281,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1226:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1229:6:137","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":20471,"src":"1226:9:137","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":89287,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:27:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89288,"nodeType":"ExpressionStatement","src":"1226:27:137"},{"expression":{"arguments":[{"id":89292,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":89218,"src":"1278:5:137","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":89289,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1264:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1267:10:137","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21266,"src":"1264:13:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":89293,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1264:20:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89294,"nodeType":"ExpressionStatement","src":"1264:20:137"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":89295,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1294:2:137","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":89297,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1297:9:137","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21278,"src":"1294:12:137","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":89298,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:14:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89299,"nodeType":"ExpressionStatement","src":"1294:14:137"},{"expression":{"arguments":[{"hexValue":"74727565","id":89301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1375:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"74727565","id":89302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1381:4:137","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"506f77657220746f20323030","id":89303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1387:14:137","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7aa4dd979a20e0f95723dda937fe85124ff65a2025faedb3ec6946943171e3","typeString":"literal_string \"Power to 200\""},"value":"Power to 200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca7aa4dd979a20e0f95723dda937fe85124ff65a2025faedb3ec6946943171e3","typeString":"literal_string \"Power to 200\""}],"id":89300,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[6152,6170,6185,6203,6257,6275,6329,6347,6362,6380,6424,6442,6457,6475,6492,6512,6529,6549,6566,6586,6603,6623,6640,6660,6677,6697,6714,6734],"referencedDeclaration":6170,"src":"1366:8:137","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,bool,string memory) pure"}},"id":89304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:36:137","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":89305,"nodeType":"ExpressionStatement","src":"1366:36:137"}]},"functionSelector":"5e8f4ff8","implemented":true,"kind":"function","modifiers":[],"name":"testFuzz_increasePowerCapped","nameLocation":"1118:28:137","parameters":{"id":89269,"nodeType":"ParameterList","parameters":[{"constant":false,"id":89268,"mutability":"mutable","name":"tokenAmount","nameLocation":"1155:11:137","nodeType":"VariableDeclaration","scope":89307,"src":"1147:19:137","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":89267,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:137","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1146:21:137"},"returnParameters":{"id":89270,"nodeType":"ParameterList","parameters":[],"src":"1175:0:137"},"scope":89308,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":89208,"name":"Test","nameLocations":["424:4:137"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"424:4:137"},"id":89209,"nodeType":"InheritanceSpecifier","src":"424:4:137"},{"baseName":{"id":89210,"name":"Errors","nameLocations":["430:6:137"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"430:6:137"},"id":89211,"nodeType":"InheritanceSpecifier","src":"430:6:137"},{"baseName":{"id":89212,"name":"GasHelpers2","nameLocations":["438:11:137"],"nodeType":"IdentifierPath","referencedDeclaration":99718,"src":"438:11:137"},"id":89213,"nodeType":"InheritanceSpecifier","src":"438:11:137"}],"canonicalName":"PassportScorerTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[89308,99718,3089,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"PassportScorerTest","nameLocation":"402:18:137","scope":89309,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088]}],"license":"AGPL-3.0-or-later"},"id":137} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setEnableGasLog","inputs":[{"name":"enable","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testFuzz_increasePowerCapped","inputs":[{"name":"tokenAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_revertGetProtocolFee","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601e805482168317905560209190915560218054909116905560c0604052600560809081526437bbb732b960d91b60a0526200004c9062000086565b602160016101000a8154816001600160a01b0302191690836001600160a01b031602179055503480156200007f57600080fd5b5062000273565b600062000093826200009a565b5092915050565b60008082604051602001620000b09190620001df565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156200011c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001429190620001fd565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906200018090859087906004016200022f565b600060405180830381600087803b1580156200019b57600080fd5b505af1158015620001b0573d6000803e3d6000fd5b50505050915091565b60005b83811015620001d6578181015183820152602001620001bc565b50506000910152565b60008251620001f3818460208701620001b9565b9190910192915050565b6000602082840312156200021057600080fd5b81516001600160a01b03811681146200022857600080fd5b9392505050565b60018060a01b038316815260406020820152600082518060408401526200025e816060850160208701620001b9565b601f01601f1916919091016060019392505050565b61143780620002836000396000f3fe608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea26469706673582212206efb27b88c6d30d914edf598025bdab67ec10a013873de05007ba2936658ae1164736f6c63430008130033","sourceMap":"3126:44:23:-:0;;;3166:4;-1:-1:-1;;3126:44:23;;;;;;;;1016:26:33;;;;;;;;;158:37:142;;;;;226:34;;;;;;;;472:17:139;393:1018;472:17;;393:1018;472:17;;;-1:-1:-1;;;472:17:139;;;;:8;:17::i;:::-;456:33;;;;;;;-1:-1:-1;;;;;456:33:139;;;;;-1:-1:-1;;;;;456:33:139;;;;;;393:1018;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;-1:-1:-1;;;;;;20344:19:24;;;;;709:25:145;;;20293:33:24;-1:-1:-1;20344:7:24;;;;682:18:145;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;-1:-1:-1;;;20373:20:24;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;14:250:145:-;99:1;109:113;123:6;120:1;117:13;109:113;;;199:11;;;193:18;180:11;;;173:39;145:2;138:10;109:113;;;-1:-1:-1;;256:1:145;238:16;;231:27;14:250::o;269:289::-;400:3;438:6;432:13;454:66;513:6;508:3;501:4;493:6;489:17;454:66;:::i;:::-;536:16;;;;;269:289;-1:-1:-1;;269:289:145:o;745:290::-;815:6;868:2;856:9;847:7;843:23;839:32;836:52;;;884:1;881;874:12;836:52;910:16;;-1:-1:-1;;;;;955:31:145;;945:42;;935:70;;1001:1;998;991:12;935:70;1024:5;745:290;-1:-1:-1;;;745:290:145:o;1040:493::-;1246:1;1242;1237:3;1233:11;1229:19;1221:6;1217:32;1206:9;1199:51;1286:2;1281;1270:9;1266:18;1259:30;1180:4;1318:6;1312:13;1361:6;1356:2;1345:9;1341:18;1334:34;1377:79;1449:6;1444:2;1433:9;1429:18;1424:2;1416:6;1412:15;1377:79;:::i;:::-;1517:2;1496:15;-1:-1:-1;;1492:29:145;1477:45;;;;1524:2;1473:54;;1040:493;-1:-1:-1;;;1040:493:145:o;:::-;393:1018:139;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101005760003560e01c80635e8f4ff811610097578063b5508aa911610066578063b5508aa9146101c8578063ba414fa6146101d0578063e20c9f71146101e8578063fa7626d4146101f057600080fd5b80635e8f4ff81461018357806366d9a9a01461019657806385226c81146101ab578063916a17c6146101c057600080fd5b80632d0e6731116100d35780632d0e67311461014a5780633e5e3c231461016b5780633f7286f4146101735780635d53949a1461017b57600080fd5b80630354ae60146101055780630a9254e41461010f5780631ed7831c146101175780632ade388014610135575b600080fd5b61010d6101fd565b005b61010d610245565b61011f610332565b60405161012c9190610eb7565b60405180910390f35b61013d610394565b60405161012c9190610f4a565b61010d61015836600461100a565b6021805460ff1916911515919091179055565b61011f6104d6565b61011f610536565b61010d610596565b61010d610191366004611033565b6106c7565b61019e6108bc565b60405161012c919061104c565b6101b36109b7565b60405161012c9190611117565b61019e610a87565b6101b3610b82565b6101d8610c52565b604051901515815260200161012c565b61011f610d26565b601e546101d89060ff1681565b61023b6040518060400160405280600e81526020017f63726561746550726f706f73616c000000000000000000000000000000000000815250610d86565b610243610da5565b565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b1580156102a257600080fd5b505af11580156102b6573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561031857600080fd5b505af115801561032c573d6000803e3d6000fd5b50505050565b6060601680548060200260200160405190810160405280929190818152602001828054801561038a57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161036c575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b828210156104cd57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156104b657838290600052602060002001805461042990611179565b80601f016020809104026020016040519081016040528092919081815260200182805461045590611179565b80156104a25780601f10610477576101008083540402835291602001916104a2565b820191906000526020600020905b81548152906001019060200180831161048557829003601f168201915b50505050508152602001906001019061040a565b5050505081525050815260200190600101906103b8565b50505050905090565b6060601880548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6060601780548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b6105d46040518060400160405280601481526020017f53657474696e672070726f746f636f6c20666565000000000000000000000000815250610d86565b6021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d5690602401600060405180830381600087803b15801561063157600080fd5b505af1158015610645573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156106a757600080fd5b505af11580156106bb573d6000803e3d6000fd5b50505050610243610da5565b604051632631f2b160e11b815281156004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e5629060240160006040518083038186803b15801561071257600080fd5b505afa158015610726573d6000803e3d6000fd5b5050604051632631f2b160e11b815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9250634c63e562915060240160006040518083038186803b15801561077557600080fd5b505afa158015610789573d6000803e3d6000fd5b50506021546040516303223eab60e11b81526101009091046001600160a01b03166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d569150602401600060405180830381600087803b1580156107ea57600080fd5b505af11580156107fe573d6000803e3d6000fd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d60001c6001600160a01b03166390c5013b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561086057600080fd5b505af1158015610874573d6000803e3d6000fd5b505050506108b96001806040518060400160405280600c81526020017f506f77657220746f203230300000000000000000000000000000000000000000815250610e2e565b50565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b0316835260018101805483518187028101870190945280845293949193858301939283018282801561099f57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161094c5790505b505050505081525050815260200190600101906108e0565b6060601a805480602002602001604051908101604052809291908181526020016000905b828210156104cd5783829060005260206000200180546109fa90611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610a2690611179565b8015610a735780601f10610a4857610100808354040283529160200191610a73565b820191906000526020600020905b815481529060010190602001808311610a5657829003601f168201915b5050505050815260200190600101906109db565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156104cd5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610b6a57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610b175790505b50505050508152505081526020019060010190610aab565b60606019805480602002602001604051908101604052809291908181526020016000905b828210156104cd578382906000526020600020018054610bc590611179565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf190611179565b8015610c3e5780601f10610c1357610100808354040283529160200191610c3e565b820191906000526020600020905b815481529060010190602001808311610c2157829003601f168201915b505050505081526020019060010190610ba6565b60085460009060ff1615610c6a575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015610cfb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1f91906111b3565b1415905090565b6060601580548060200260200160405190810160405280929190818152602001828054801561038a576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161036c575050505050905090565b60215460ff16156108b957601f610d9d8282611231565b505a60205550565b60215460ff16156102435760005a90506000606482602054610dc791906112f1565b610dd191906112f1565b90507fb2de2fbe801a0df6c0cbddfd448ba3c41d48a040ca35c56c8196ef0fcae721a8601f604051602001610e069190611318565b60408051601f1981840301815290829052610e229184906113b3565b60405180910390a15050565b6040517f4db19e7e000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d90634db19e7e90610e82908690869086906004016113d5565b60006040518083038186803b158015610e9a57600080fd5b505afa158015610eae573d6000803e3d6000fd5b50505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ef85783516001600160a01b031683529284019291840191600101610ed3565b50909695505050505050565b6000815180845260005b81811015610f2a57602081850181015186830182015201610f0e565b506000602082860101526020601f19601f83011685010191505092915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b85811015610ffa57603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b81811015610fe457605f19898503018352610fd2848651610f04565b948e01949350918d0191600101610fb6565b505050978a019794505091880191600101610f71565b50919a9950505050505050505050565b60006020828403121561101c57600080fd5b8135801515811461102c57600080fd5b9392505050565b60006020828403121561104557600080fd5b5035919050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561110857898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156110f35783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b01906110b1565b50978a01979550505091870191600101611074565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561116c57603f1988860301845261115a858351610f04565b9450928501929085019060010161113e565b5092979650505050505050565b600181811c9082168061118d57607f821691505b6020821081036111ad57634e487b7160e01b600052602260045260246000fd5b50919050565b6000602082840312156111c557600080fd5b5051919050565b634e487b7160e01b600052604160045260246000fd5b601f82111561122c57600081815260208120601f850160051c810160208610156112095750805b601f850160051c820191505b8181101561122857828155600101611215565b5050505b505050565b815167ffffffffffffffff81111561124b5761124b6111cc565b61125f816112598454611179565b846111e2565b602080601f831160018114611294576000841561127c5750858301515b600019600386901b1c1916600185901b178555611228565b600085815260208120601f198616915b828110156112c3578886015182559484019460019091019084016112a4565b50858210156112e15787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b8181038181111561131257634e487b7160e01b600052601160045260246000fd5b92915050565b600080835461132681611179565b6001828116801561133e576001811461135357611382565b60ff1984168752821515830287019450611382565b8760005260208060002060005b858110156113795781548a820152908401908201611360565b50505082870194505b50507f2047617300000000000000000000000000000000000000000000000000000000835250506004019392505050565b6040815260006113c66040830185610f04565b90508260208301529392505050565b831515815282151560208201526060604082015260006113f86060830184610f04565b9594505050505056fea26469706673582212206efb27b88c6d30d914edf598025bdab67ec10a013873de05007ba2936658ae1164736f6c63430008130033","sourceMap":"393:1018:139:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;588:127;;;:::i;:::-;;496:86;;;:::i;2452:134:26:-;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3360:151;;;:::i;:::-;;;;;;;:::i;267:84:142:-;;;;;;:::i;:::-;322:13;:22;;-1:-1:-1;;322:22:142;;;;;;;;;;267:84;3221:133:26;;;:::i;2922:141::-;;;:::i;721:382:139:-;;;:::i;1109:300::-;;;;;;:::i;:::-;;:::i;2738:178:26:-;;;:::i;:::-;;;;;;;:::i;2592:140::-;;;:::i;:::-;;;;;;;:::i;3069:146::-;;;:::i;2157:141::-;;;:::i;1243:204:22:-;;;:::i;:::-;;;5979:14:145;;5972:22;5954:41;;5942:2;5927:18;1243:204:22;5814:187:145;2304:142:26;;;:::i;1016:26:33:-;;;;;;;;;588:127:139;644:35;;;;;;;;;;;;;;;;;;:17;:35::i;:::-;690:18;:16;:18::i;:::-;588:127::o;496:86::-;544:5;;530:20;;-1:-1:-1;;;530:20:139;;544:5;;;;-1:-1:-1;;;;;544:5:139;530:20;;;6152:74:145;530:13:139;;;;6125:18:145;;530:20:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:20;309:37;;-1:-1:-1;;;;;561:12:139;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;496:86::o;2452:134:26:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:26;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:26;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:26;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;721:382:139:-;775:41;;;;;;;;;;;;;;;;;;:17;:41::i;:::-;840:5;;826:20;;-1:-1:-1;;;826:20:139;;840:5;;;;-1:-1:-1;;;;;840:5:139;826:20;;;6152:74:145;826:13:139;;;;6125:18:145;;826:20:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:20;309:37;;-1:-1:-1;;;;;1054:12:139;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1078:18;:16;:18::i;1109:300::-;1185:31;;-1:-1:-1;;;1185:31:139;;1195:20;;1185:31;;;5954:41:145;1185:9:139;;;;5927:18:145;;1185:31:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1226:27:139;;-1:-1:-1;;;1226:27:139;;1236:16;1226:27;;;5954:41:145;1226:9:139;;-1:-1:-1;1226:9:139;;-1:-1:-1;5927:18:145;;1226:27:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1278:5:139;;1264:20;;-1:-1:-1;;;1264:20:139;;1278:5;;;;-1:-1:-1;;;;;1278:5:139;1264:20;;;6152:74:145;1264:13:139;;-1:-1:-1;1264:13:139;;-1:-1:-1;6125:18:145;;1264:20:139;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;317:28:20;309:37;;-1:-1:-1;;;;;1294:12:139;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1366:36;1375:4;1381;1366:36;;;;;;;;;;;;;;;;;:8;:36::i;:::-;1109:300;:::o;2738:178:26:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2592:140;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3069:146;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2157:141;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:22;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:22;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;6853:74:145;;;1398:17:22;6943:18:145;;;6936:34;1428:1:22;;1377:7;;6826:18:145;;1377:39:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;2304:142:26:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:26;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;357:192:142:-;436:13;;;;432:111;;;465:15;:23;483:5;465:15;:23;:::i;:::-;;523:9;503:17;:29;357:192;:::o;555:396::-;614:13;;;;610:335;;;643:26;672:9;643:38;;776:16;836:3;815:18;795:17;;:38;;;;:::i;:::-;:44;;;;:::i;:::-;776:63;;859:75;898:15;881:41;;;;;;;;:::i;:::-;;;;-1:-1:-1;;881:41:142;;;;;;;;;;859:75;;925:8;;859:75;:::i;:::-;;;;;;;;629:316;;555:396::o;2136:128:22:-;2228:29;;;;;:11;;;;:29;;2240:4;;2246:5;;2253:3;;2228:29;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2136:128;;;:::o;14:681:145:-;185:2;237:21;;;307:13;;210:18;;;329:22;;;156:4;;185:2;408:15;;;;382:2;367:18;;;156:4;451:218;465:6;462:1;459:13;451:218;;;530:13;;-1:-1:-1;;;;;526:62:145;514:75;;644:15;;;;609:12;;;;487:1;480:9;451:218;;;-1:-1:-1;686:3:145;;14:681;-1:-1:-1;;;;;;14:681:145:o;700:423::-;742:3;780:5;774:12;807:6;802:3;795:19;832:1;842:162;856:6;853:1;850:13;842:162;;;918:4;974:13;;;970:22;;964:29;946:11;;;942:20;;935:59;871:12;842:162;;;846:3;1049:1;1042:4;1033:6;1028:3;1024:16;1020:27;1013:38;1112:4;1105:2;1101:7;1096:2;1088:6;1084:15;1080:29;1075:3;1071:39;1067:50;1060:57;;;700:423;;;;:::o;1128:1767::-;1363:2;1415:21;;;1485:13;;1388:18;;;1507:22;;;1334:4;;1363:2;1548;;1566:18;;;;1603:1;1646:15;;;1631:31;;1627:40;;1690:15;;;1334:4;;1754:1112;1770:6;1765:3;1762:15;1754:1112;;;-1:-1:-1;;1839:22:145;;;1835:36;1823:49;;1895:13;;1982:9;;-1:-1:-1;;;;;1978:58:145;1963:74;;2076:11;;2070:18;2108:15;;;2101:27;;;2189:19;;1935:15;;;2221:24;;;2402:21;;;;2268:2;2350:17;;;2338:30;;2334:39;;;2292:15;;;;2447:1;2461:296;2477:8;2472:3;2469:17;2461:296;;;2583:2;2579:7;2570:6;2562;2558:19;2554:33;2547:5;2540:48;2615:42;2650:6;2639:8;2633:15;2615:42;:::i;:::-;2686:17;;;;2605:52;-1:-1:-1;2729:14:145;;;;2505:1;2496:11;2461:296;;;-1:-1:-1;;;2844:12:145;;;;2780:6;-1:-1:-1;;2809:15:145;;;;1796:1;1787:11;1754:1112;;;-1:-1:-1;2883:6:145;;1128:1767;-1:-1:-1;;;;;;;;;;1128:1767:145:o;2900:273::-;2956:6;3009:2;2997:9;2988:7;2984:23;2980:32;2977:52;;;3025:1;3022;3015:12;2977:52;3064:9;3051:23;3117:5;3110:13;3103:21;3096:5;3093:32;3083:60;;3139:1;3136;3129:12;3083:60;3162:5;2900:273;-1:-1:-1;;;2900:273:145:o;3178:180::-;3237:6;3290:2;3278:9;3269:7;3265:23;3261:32;3258:52;;;3306:1;3303;3296:12;3258:52;-1:-1:-1;3329:23:145;;3178:180;-1:-1:-1;3178:180:145:o;3363:1638::-;3567:4;3596:2;3636;3625:9;3621:18;3666:2;3655:9;3648:21;3689:6;3724;3718:13;3755:6;3747;3740:22;3781:2;3771:12;;3814:2;3803:9;3799:18;3792:25;;3876:2;3866:6;3863:1;3859:14;3848:9;3844:30;3840:39;3914:2;3906:6;3902:15;3935:1;3956;3966:1006;3982:6;3977:3;3974:15;3966:1006;;;4051:22;;;-1:-1:-1;;4047:36:145;4035:49;;4107:13;;4194:9;;-1:-1:-1;;;;;4190:58:145;4175:74;;4288:11;;4282:18;4320:15;;;4313:27;;;4401:19;;4147:15;;;4433:24;;;4523:21;;;;4568:1;;4491:2;4479:15;;;4582:282;4598:8;4593:3;4590:17;4582:282;;;4679:15;;4696:66;4675:88;4661:103;;4833:17;;;;4626:1;4617:11;;;;;4790:14;;;;4582:282;;;-1:-1:-1;4950:12:145;;;;4887:5;-1:-1:-1;;;4915:15:145;;;;4008:1;3999:11;3966:1006;;;-1:-1:-1;4989:6:145;;3363:1638;-1:-1:-1;;;;;;;;;3363:1638:145:o;5006:803::-;5168:4;5197:2;5237;5226:9;5222:18;5267:2;5256:9;5249:21;5290:6;5325;5319:13;5356:6;5348;5341:22;5394:2;5383:9;5379:18;5372:25;;5456:2;5446:6;5443:1;5439:14;5428:9;5424:30;5420:39;5406:53;;5494:2;5486:6;5482:15;5515:1;5525:255;5539:6;5536:1;5533:13;5525:255;;;5632:2;5628:7;5616:9;5608:6;5604:22;5600:36;5595:3;5588:49;5660:40;5693:6;5684;5678:13;5660:40;:::i;:::-;5650:50;-1:-1:-1;5758:12:145;;;;5723:15;;;;5561:1;5554:9;5525:255;;;-1:-1:-1;5797:6:145;;5006:803;-1:-1:-1;;;;;;;5006:803:145:o;6237:437::-;6316:1;6312:12;;;;6359;;;6380:61;;6434:4;6426:6;6422:17;6412:27;;6380:61;6487:2;6479:6;6476:14;6456:18;6453:38;6450:218;;-1:-1:-1;;;6521:1:145;6514:88;6625:4;6622:1;6615:15;6653:4;6650:1;6643:15;6450:218;;6237:437;;;:::o;6981:184::-;7051:6;7104:2;7092:9;7083:7;7079:23;7075:32;7072:52;;;7120:1;7117;7110:12;7072:52;-1:-1:-1;7143:16:145;;6981:184;-1:-1:-1;6981:184:145:o;7170:::-;-1:-1:-1;;;7219:1:145;7212:88;7319:4;7316:1;7309:15;7343:4;7340:1;7333:15;7485:545;7587:2;7582:3;7579:11;7576:448;;;7623:1;7648:5;7644:2;7637:17;7693:4;7689:2;7679:19;7763:2;7751:10;7747:19;7744:1;7740:27;7734:4;7730:38;7799:4;7787:10;7784:20;7781:47;;;-1:-1:-1;7822:4:145;7781:47;7877:2;7872:3;7868:12;7865:1;7861:20;7855:4;7851:31;7841:41;;7932:82;7950:2;7943:5;7940:13;7932:82;;;7995:17;;;7976:1;7965:13;7932:82;;;7936:3;;;7576:448;7485:545;;;:::o;8206:1352::-;8332:3;8326:10;8359:18;8351:6;8348:30;8345:56;;;8381:18;;:::i;:::-;8410:97;8500:6;8460:38;8492:4;8486:11;8460:38;:::i;:::-;8454:4;8410:97;:::i;:::-;8562:4;;8626:2;8615:14;;8643:1;8638:663;;;;9345:1;9362:6;9359:89;;;-1:-1:-1;9414:19:145;;;9408:26;9359:89;-1:-1:-1;;8163:1:145;8159:11;;;8155:24;8151:29;8141:40;8187:1;8183:11;;;8138:57;9461:81;;8608:944;;8638:663;7432:1;7425:14;;;7469:4;7456:18;;-1:-1:-1;;8674:20:145;;;8792:236;8806:7;8803:1;8800:14;8792:236;;;8895:19;;;8889:26;8874:42;;8987:27;;;;8955:1;8943:14;;;;8822:19;;8792:236;;;8796:3;9056:6;9047:7;9044:19;9041:201;;;9117:19;;;9111:26;-1:-1:-1;;9200:1:145;9196:14;;;9212:3;9192:24;9188:37;9184:42;9169:58;9154:74;;9041:201;-1:-1:-1;;;;;9288:1:145;9272:14;;;9268:22;9255:36;;-1:-1:-1;8206:1352:145:o;9563:282::-;9630:9;;;9651:11;;;9648:191;;;-1:-1:-1;;;9692:1:145;9685:88;9796:4;9793:1;9786:15;9824:4;9821:1;9814:15;9648:191;9563:282;;;;:::o;9850:979::-;10079:3;10108:1;10141:6;10135:13;10171:36;10197:9;10171:36;:::i;:::-;10226:1;10243:18;;;10270:133;;;;10417:1;10412:356;;;;10236:532;;10270:133;-1:-1:-1;;10303:24:145;;10291:37;;10376:14;;10369:22;10357:35;;10348:45;;;-1:-1:-1;10270:133:145;;10412:356;10443:6;10440:1;10433:17;10473:4;10518:2;10515:1;10505:16;10543:1;10557:165;10571:6;10568:1;10565:13;10557:165;;;10649:14;;10636:11;;;10629:35;10692:16;;;;10586:10;;10557:165;;;10561:3;;;10751:6;10746:3;10742:16;10735:23;;10236:532;-1:-1:-1;;10789:6:145;10777:19;;-1:-1:-1;;10821:1:145;10812:11;;9850:979;-1:-1:-1;;;9850:979:145:o;10834:291::-;11011:2;11000:9;10993:21;10974:4;11031:45;11072:2;11061:9;11057:18;11049:6;11031:45;:::i;:::-;11023:53;;11112:6;11107:2;11096:9;11092:18;11085:34;10834:291;;;;;:::o;11130:382::-;11337:6;11330:14;11323:22;11312:9;11305:41;11396:6;11389:14;11382:22;11377:2;11366:9;11362:18;11355:50;11441:2;11436;11425:9;11421:18;11414:30;11286:4;11461:45;11502:2;11491:9;11487:18;11479:6;11461:45;:::i;:::-;11453:53;11130:382;-1:-1:-1;;;;;11130:382:145:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","setEnableGasLog(bool)":"2d0e6731","setUp()":"0a9254e4","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testFuzz_increasePowerCapped(uint256)":"5e8f4ff8","test_revertGetProtocolFee()":"5d53949a","test_stakeAndRegisterMember()":"0354ae60"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bool\",\"name\":\"enable\",\"type\":\"bool\"}],\"name\":\"setEnableGasLog\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenAmount\",\"type\":\"uint256\"}],\"name\":\"testFuzz_increasePowerCapped\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_revertGetProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"test_stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/PassportScorerTest.t.sol\":\"PassportScorerTest\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"pkg/contracts/test/PassportScorerTest.t.sol\":{\"keccak256\":\"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127\",\"license\":\"AGPL-3.0-or-later\",\"urls\":[\"bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb\",\"dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H\"]},\"pkg/contracts/test/shared/GasHelpers2.sol\":{\"keccak256\":\"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c\",\"dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bool","name":"enable","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setEnableGasLog"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[{"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"testFuzz_increasePowerCapped"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_revertGetProtocolFee"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"test_stakeAndRegisterMember"}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/PassportScorerTest.t.sol":"PassportScorerTest"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"pkg/contracts/test/PassportScorerTest.t.sol":{"keccak256":"0x833febb66dc20532ad7138c8dabcda595e5c25ca2b636ac019b062cc2e33d127","urls":["bzz-raw://66b71272d712f9791463921d3e6140a9920d1eb6eab767fff450fd529204a0bb","dweb:/ipfs/QmUjq5DdzaHhY9LxB7P5L6c7gdvRSs4RJkiP1Nbm8e3S3H"],"license":"AGPL-3.0-or-later"},"pkg/contracts/test/shared/GasHelpers2.sol":{"keccak256":"0x99d4f66e98d4965ec3388a695b8bea71ebeea1137e611644dee70fd934e615e5","urls":["bzz-raw://102f407d8f588e70647166997533a3d677e3051716091afc3877d08940ddcf4c","dweb:/ipfs/QmdDmEBhmJE4zhySTYQXof4aEo59srqb68yGmEg5UC7NBk"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5830,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13235_storage"},{"astId":6026,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8527,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8548,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)"},{"astId":8552,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8556,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8559,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9317,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11354,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13235_storage"},{"astId":12222,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12225,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12228,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12231,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12234,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12237,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12241,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12245,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12249,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage"},{"astId":17834,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":101654,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"checkpointLabel","offset":0,"slot":"31","type":"t_string_storage"},{"astId":101657,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"checkpointGasLeft","offset":0,"slot":"32","type":"t_uint256"},{"astId":101660,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_enableGasLog","offset":0,"slot":"33","type":"t_bool"},{"astId":91217,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"owner","offset":1,"slot":"33","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12219_storage"},"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12213_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8543_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8543_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8536,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8538,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8540,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8542,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12219_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12215,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12218,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12213_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12209,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12212,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"pkg/contracts/test/PassportScorerTest.t.sol:PassportScorerTest","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/test/PassportScorerTest.t.sol","id":91308,"exportedSymbols":{"Errors":[3089],"GasHelpers2":[101721],"IERC20":[56900],"PassportScorerTest":[91307],"StdAssertions":[8503],"StdChains":[9285],"StdCheats":[12138],"StdInvariant":[12463],"StdStorage":[13235],"StdStyle":[16405],"StdUtils":[17783],"Test":[17835],"TestBase":[5834],"Vm":[21485],"console":[29549],"console2":[37674],"safeconsole":[52399],"stdError":[12204],"stdJson":[13055],"stdMath":[13197],"stdStorage":[15194],"stdToml":[16997]},"nodeType":"SourceUnit","src":"46:1366:139","nodes":[{"id":91200,"nodeType":"ImportDirective","src":"46:28:139","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":17836,"symbolAliases":[],"unitAlias":""},{"id":91201,"nodeType":"ImportDirective","src":"75:31:139","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":91202,"nodeType":"ImportDirective","src":"107:56:139","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":56901,"symbolAliases":[],"unitAlias":""},{"id":91204,"nodeType":"ImportDirective","src":"204:67:139","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"allo-v2-contracts/core/libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":91203,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"212:6:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91206,"nodeType":"ImportDirective","src":"290:53:139","nodes":[],"absolutePath":"pkg/contracts/test/shared/GasHelpers2.sol","file":"./shared/GasHelpers2.sol","nameLocation":"-1:-1:-1","scope":91308,"sourceUnit":101722,"symbolAliases":[{"foreign":{"id":91205,"name":"GasHelpers2","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101721,"src":"298:11:139","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":91307,"nodeType":"ContractDefinition","src":"393:1018:139","nodes":[{"id":91217,"nodeType":"VariableDeclaration","src":"456:33:139","nodes":[],"constant":false,"mutability":"mutable","name":"owner","nameLocation":"464:5:139","scope":91307,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":91213,"name":"address","nodeType":"ElementaryTypeName","src":"456:7:139","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"arguments":[{"hexValue":"6f776e6572","id":91215,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"481:7:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0","typeString":"literal_string \"owner\""},"value":"owner"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_02016836a56b71f0d02689e69e326f4f4c1b9057164ef592671cf0d37c8040c0","typeString":"literal_string \"owner\""}],"id":91214,"name":"makeAddr","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":11107,"src":"472:8:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (string memory) returns (address)"}},"id":91216,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"472:17:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":91232,"nodeType":"FunctionDefinition","src":"496:86:139","nodes":[],"body":{"id":91231,"nodeType":"Block","src":"520:62:139","nodes":[],"statements":[{"expression":{"arguments":[{"id":91223,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91217,"src":"544:5:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":91220,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"530:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91222,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"533:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21266,"src":"530:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":91224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"530:20:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91225,"nodeType":"ExpressionStatement","src":"530:20:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":91226,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"561:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"564:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21278,"src":"561:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":91229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"561:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91230,"nodeType":"ExpressionStatement","src":"561:14:139"}]},"functionSelector":"0a9254e4","implemented":true,"kind":"function","modifiers":[],"name":"setUp","nameLocation":"505:5:139","parameters":{"id":91218,"nodeType":"ParameterList","parameters":[],"src":"510:2:139"},"returnParameters":{"id":91219,"nodeType":"ParameterList","parameters":[],"src":"520:0:139"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":91243,"nodeType":"FunctionDefinition","src":"588:127:139","nodes":[],"body":{"id":91242,"nodeType":"Block","src":"634:81:139","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"63726561746550726f706f73616c","id":91236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"662:16:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_5536a8091585df374904ce34bc5a018a066909f56bacdb9a6a98233f172cc216","typeString":"literal_string \"createProposal\""},"value":"createProposal"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_5536a8091585df374904ce34bc5a018a066909f56bacdb9a6a98233f172cc216","typeString":"literal_string \"createProposal\""}],"id":91235,"name":"startMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101688,"src":"644:17:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":91237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"644:35:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91238,"nodeType":"ExpressionStatement","src":"644:35:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":91239,"name":"stopMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101720,"src":"690:16:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":91240,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"690:18:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91241,"nodeType":"ExpressionStatement","src":"690:18:139"}]},"functionSelector":"0354ae60","implemented":true,"kind":"function","modifiers":[],"name":"test_stakeAndRegisterMember","nameLocation":"597:27:139","parameters":{"id":91233,"nodeType":"ParameterList","parameters":[],"src":"624:2:139"},"returnParameters":{"id":91234,"nodeType":"ParameterList","parameters":[],"src":"634:0:139"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":91265,"nodeType":"FunctionDefinition","src":"721:382:139","nodes":[],"body":{"id":91264,"nodeType":"Block","src":"765:338:139","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"53657474696e672070726f746f636f6c20666565","id":91247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"793:22:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_1b1eb06a5e7d24dbfe074a9016d3a1bb8a91d2d663963f3b385e2b556b5e5927","typeString":"literal_string \"Setting protocol fee\""},"value":"Setting protocol fee"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_1b1eb06a5e7d24dbfe074a9016d3a1bb8a91d2d663963f3b385e2b556b5e5927","typeString":"literal_string \"Setting protocol fee\""}],"id":91246,"name":"startMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101688,"src":"775:17:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":91248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"775:41:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91249,"nodeType":"ExpressionStatement","src":"775:41:139"},{"expression":{"arguments":[{"id":91253,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91217,"src":"840:5:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":91250,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"826:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91252,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"829:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21266,"src":"826:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":91254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"826:20:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91255,"nodeType":"ExpressionStatement","src":"826:20:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":91256,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1054:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1057:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21278,"src":"1054:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":91259,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1054:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91260,"nodeType":"ExpressionStatement","src":"1054:14:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":91261,"name":"stopMeasuringGas","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":101720,"src":"1078:16:139","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":91262,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1078:18:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91263,"nodeType":"ExpressionStatement","src":"1078:18:139"}]},"functionSelector":"5d53949a","implemented":true,"kind":"function","modifiers":[],"name":"test_revertGetProtocolFee","nameLocation":"730:25:139","parameters":{"id":91244,"nodeType":"ParameterList","parameters":[],"src":"755:2:139"},"returnParameters":{"id":91245,"nodeType":"ParameterList","parameters":[],"src":"765:0:139"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":91306,"nodeType":"FunctionDefinition","src":"1109:300:139","nodes":[],"body":{"id":91305,"nodeType":"Block","src":"1175:234:139","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":91277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91273,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91267,"src":"1195:11:139","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"commonType":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"id":91276,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"30","id":91274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1210:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"hexValue":"32","id":91275,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1214:1:139","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"1210:5:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}},"src":"1195:20:139","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":91270,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1185:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91272,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1188:6:139","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":20471,"src":"1185:9:139","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":91278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1185:31:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91279,"nodeType":"ExpressionStatement","src":"1185:31:139"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":91285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":91283,"name":"tokenAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91267,"src":"1236:11:139","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"hexValue":"30","id":91284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1251:1:139","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1236:16:139","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"}],"expression":{"id":91280,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1226:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91282,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1229:6:139","memberName":"assume","nodeType":"MemberAccess","referencedDeclaration":20471,"src":"1226:9:139","typeDescriptions":{"typeIdentifier":"t_function_external_pure$_t_bool_$returns$__$","typeString":"function (bool) pure external"}},"id":91286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1226:27:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91287,"nodeType":"ExpressionStatement","src":"1226:27:139"},{"expression":{"arguments":[{"id":91291,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":91217,"src":"1278:5:139","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":91288,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1264:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1267:10:139","memberName":"startPrank","nodeType":"MemberAccess","referencedDeclaration":21266,"src":"1264:13:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":91292,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1264:20:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91293,"nodeType":"ExpressionStatement","src":"1264:20:139"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":91294,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1294:2:139","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":91296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1297:9:139","memberName":"stopPrank","nodeType":"MemberAccess","referencedDeclaration":21278,"src":"1294:12:139","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$__$","typeString":"function () external"}},"id":91297,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1294:14:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91298,"nodeType":"ExpressionStatement","src":"1294:14:139"},{"expression":{"arguments":[{"hexValue":"74727565","id":91300,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1375:4:139","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"74727565","id":91301,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1381:4:139","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},{"hexValue":"506f77657220746f20323030","id":91302,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1387:14:139","typeDescriptions":{"typeIdentifier":"t_stringliteral_ca7aa4dd979a20e0f95723dda937fe85124ff65a2025faedb3ec6946943171e3","typeString":"literal_string \"Power to 200\""},"value":"Power to 200"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ca7aa4dd979a20e0f95723dda937fe85124ff65a2025faedb3ec6946943171e3","typeString":"literal_string \"Power to 200\""}],"id":91299,"name":"assertEq","nodeType":"Identifier","overloadedDeclarations":[6152,6170,6185,6203,6257,6275,6329,6347,6362,6380,6424,6442,6457,6475,6492,6512,6529,6549,6566,6586,6603,6623,6640,6660,6677,6697,6714,6734],"referencedDeclaration":6170,"src":"1366:8:139","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_bool_$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,bool,string memory) pure"}},"id":91303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1366:36:139","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":91304,"nodeType":"ExpressionStatement","src":"1366:36:139"}]},"functionSelector":"5e8f4ff8","implemented":true,"kind":"function","modifiers":[],"name":"testFuzz_increasePowerCapped","nameLocation":"1118:28:139","parameters":{"id":91268,"nodeType":"ParameterList","parameters":[{"constant":false,"id":91267,"mutability":"mutable","name":"tokenAmount","nameLocation":"1155:11:139","nodeType":"VariableDeclaration","scope":91306,"src":"1147:19:139","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":91266,"name":"uint256","nodeType":"ElementaryTypeName","src":"1147:7:139","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1146:21:139"},"returnParameters":{"id":91269,"nodeType":"ParameterList","parameters":[],"src":"1175:0:139"},"scope":91307,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":91207,"name":"Test","nameLocations":["424:4:139"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"424:4:139"},"id":91208,"nodeType":"InheritanceSpecifier","src":"424:4:139"},{"baseName":{"id":91209,"name":"Errors","nameLocations":["430:6:139"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"430:6:139"},"id":91210,"nodeType":"InheritanceSpecifier","src":"430:6:139"},{"baseName":{"id":91211,"name":"GasHelpers2","nameLocations":["438:11:139"],"nodeType":"IdentifierPath","referencedDeclaration":101721,"src":"438:11:139"},"id":91212,"nodeType":"InheritanceSpecifier","src":"438:11:139"}],"canonicalName":"PassportScorerTest","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[91307,101721,3089,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"PassportScorerTest","nameLocation":"402:18:139","scope":91308,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088]}],"license":"AGPL-3.0-or-later"},"id":139} \ No newline at end of file diff --git a/pkg/contracts/out/Registry.sol/Registry.json b/pkg/contracts/out/Registry.sol/Registry.json index 8a10722d2..8bde69839 100644 --- a/pkg/contracts/out/Registry.sol/Registry.json +++ b/pkg/contracts/out/Registry.sol/Registry.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"ALLO_OWNER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"acceptProfileOwnership","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"anchorToProfileId","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createProfile","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_name","type":"string","internalType":"string"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_owner","type":"address","internalType":"address"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getProfileByAnchor","inputs":[{"name":"_anchor","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getProfileById","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOrMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"profileIdToPendingOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profilesById","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateProfileMetadata","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileName","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfilePendingOwner","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"ProfileCreated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileMetadataUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"ProfileNameUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfilePendingOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pendingOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50612e96806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220cdc427901f944eab413c9e6a1953326681cbf57c8d1bb72ca90249af1605f34f64736f6c63430008130033a26469706673582212203329b083b1925ebe3ab387f775426e0d559db963680c045a28cf2ca908a06cb364736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220cdc427901f944eab413c9e6a1953326681cbf57c8d1bb72ca90249af1605f34f64736f6c63430008130033a26469706673582212203329b083b1925ebe3ab387f775426e0d559db963680c045a28cf2ca908a06cb364736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7472:131;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3050:213:44;;;;;;:::i;:::-;;:::i;:::-;;;2428:14:143;;2421:22;2403:41;;2391:2;2376:18;3050:213:44;2263:187:143;13857:156:2;;;;;;:::i;:::-;;:::i;4855:129:44:-;;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;;;;3061:25:143;;;3049:2;3034:18;4855:129:44;2915:177:143;15016:745:2;;;;;;:::i;:::-;;:::i;:::-;;20847:318;;;;;;:::i;:::-;;:::i;5280:145:44:-;;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;:::i;:::-;;:::i;13452:152:2:-;;;;;;:::i;:::-;;:::i;8781:1901::-;;;;;;:::i;:::-;;:::i;14336:382::-;;;;;;:::i;:::-;;:::i;5544:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;15962:658;;;;;;:::i;:::-;;:::i;5859:58::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5859:58:2;;;;;;-1:-1:-1;;;;;7424:55:143;;;7406:74;;7394:2;7379:18;5859:58:2;7260:226:143;12992:208:2;;;;;;:::i;:::-;;:::i;3350:145:44:-;;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;;;;3350:145;4412:75:9;;4445:42;4412:75;;2320:49:44;;2365:4;2320:49;;12309:415:2;;;;;;:::i;:::-;;:::i;6841:257::-;;;;;;:::i;:::-;;:::i;11210:830::-;;;;;;:::i;:::-;;:::i;5974:60::-;;6011:23;5974:60;;5705:147:44;;;;;;:::i;:::-;;:::i;7837:187:2:-;;;;;;:::i;:::-;;:::i;16837:500::-;;;;;;:::i;:::-;;:::i;5702:47::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;7472:131::-;7539:14;;:::i;:::-;7572:12;:24;7585:10;7572:24;;;;;;;;;;;7565:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7565:31:2;;;;-1:-1:-1;;;7565:31:2;;;;;;-1:-1:-1;;;;;7565:31:2;;;;;;;;;;;;;;;;;;;;;7472:131;-1:-1:-1;;7472:131:2:o;3050:213:44:-;3135:4;3158:58;;;3173:43;3158:58;;:98;;-1:-1:-1;1204:36:54;1189:51;;;;3220:36:44;3151:105;3050:213;-1:-1:-1;;3050:213:44:o;13857:156:2:-;13944:4;13967:39;13986:10;13998:7;13967:18;:39::i;:::-;13960:46;13857:156;-1:-1:-1;;;13857:156:2:o;15016:745::-;15131:23;15157:24;;;:12;:24;;;;;;;;15301:23;:35;;;;;;;-1:-1:-1;;;;;15301:35:2;15414:10;:22;;15410:54;;15445:19;;;;;;;;;;;;;;15410:54;15550:13;;;:24;;-1:-1:-1;;;;;15550:24:2;;;-1:-1:-1;;15550:24:2;;;;;;-1:-1:-1;15591:35:2;;;:23;:35;;;;;;;;;15584:42;;;;;;;;15740:13;;15708:46;;15740:13;;7406:74:143;;15591:35:2;;15708:46;;7379:18:143;15708:46:2;;;;;;;;15077:684;;15016:745;:::o;20847:318::-;6011:23;2798:16:44;2809:4;2798:10;:16::i;:::-;-1:-1:-1;;;;;20949:24:2;::::1;20945:51;;20982:14;;-1:-1:-1::0;;;20982:14:2::1;;;;;;;;;;;20945:51;21007:14;-1:-1:-1::0;;;;;21024:16:2;::::1;4445:42:9;21024:16:2;:81;;21067:38;::::0;;;;21099:4:::1;21067:38;::::0;::::1;7406:74:143::0;-1:-1:-1;;;;;21067:23:2;::::1;::::0;::::1;::::0;7379:18:143;;21067:38:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21024:81;;;21043:21;21024:81;21007:98;;21115:43;21131:6;21139:10;21151:6;21115:15;:43::i;:::-;20935:230;20847:318:::0;;;:::o;5280:145:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;:::-;5280:145:::0;;;:::o;6389:214::-;-1:-1:-1;;;;;6484:23:44;;965:10:52;6484:23:44;6476:83;;;;-1:-1:-1;;;6476:83:44;;9935:2:143;6476:83:44;;;9917:21:143;9974:2;9954:18;;;9947:30;10013:34;9993:18;;;9986:62;10084:17;10064:18;;;10057:45;10119:19;;6476:83:44;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;:::-;6389:214;;:::o;13452:152:2:-;13537:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13560:37;19963:156;8781:1901;8975:7;9060:17;9080:34;9099:6;9107;9080:18;:34::i;:::-;9215:1;9173:23;;;:12;:23;;;;;:30;;;9060:54;;-1:-1:-1;;;;;;9173:30:2;:44;9169:78;;9226:21;;;;;;;;;;;;;;9169:78;-1:-1:-1;;;;;9317:20:2;;9313:47;;9346:14;;-1:-1:-1;;;9346:14:2;;;;;;;;;;;9313:47;9447:22;9472:213;;;;;;;;9498:9;9472:213;;;;9528:6;9472:213;;;;9554:5;9472:213;;;;9583:9;9472:213;;;;9613:6;-1:-1:-1;;;;;9472:213:2;;;;;9641:33;9657:9;9668:5;9641:15;:33::i;:::-;-1:-1:-1;;;;;9472:213:2;;;9696:23;;;;:12;:23;;;;;;;;;:33;;;;;;;;;;;;;;;;9447:238;;-1:-1:-1;9447:238:2;;9696:33;;;;;;;;:::i;:::-;-1:-1:-1;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;9696:33:2;;;;;;;;;-1:-1:-1;;9696:33:2;;;-1:-1:-1;;;;;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:14;;;;9739:33;-1:-1:-1;9739:33:2;;;:17;:33;;;;;:45;;;9866:15;;9942:16;;;;;:40;;-1:-1:-1;;;;;;9962:20:2;;9972:10;9962:20;;9942:40;9938:92;;;10005:14;;-1:-1:-1;;;10005:14:2;;;;;;;;;;;9938:92;10045:9;10040:402;10060:12;10056:1;:16;10040:402;;;10089:14;10106:8;10115:1;10106:11;;;;;;;;:::i;:::-;;;;;;;10089:28;;10224:1;-1:-1:-1;;;;;10206:20:2;:6;-1:-1:-1;;;;;10206:20:2;;10202:47;;10235:14;;-1:-1:-1;;;10235:14:2;;;;;;;;;;;10202:47;10343:29;10354:9;10365:6;10343:10;:29::i;:::-;-1:-1:-1;10414:3:2;;10040:402;;;;10527:9;10512:103;10538:7;:13;;;10553:7;:12;;;10567:7;:16;;;10585:7;:13;;;10600:7;:14;;;10512:103;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10666:9:2;;8781:1901;-1:-1:-1;;;;;;;8781:1901:2:o;14336:382::-;14456:10;6416:34;6439:10;6416:22;:34::i;:::-;14530:35:::1;::::0;;;:23:::1;:35;::::0;;;;;;;;:51;;-1:-1:-1;;14530:51:2::1;-1:-1:-1::0;;;;;14530:51:2;::::1;::::0;;::::1;::::0;;;14658:53;;7406:74:143;;;14530:35:2;;14658:53:::1;::::0;7379:18:143;14658:53:2::1;7260:226:143::0;15962:658:2;16055:10;6416:34;6439:10;6416:22;:34::i;:::-;16100:15;;16077:20:::1;16211:403;16231:12;16227:1;:16;16211:403;;;16260:14;16277:8;16286:1;16277:11;;;;;;;;:::i;:::-;;;;;;;16260:28;;16395:1;-1:-1:-1::0;;;;;16377:20:2::1;:6;-1:-1:-1::0;;;;;16377:20:2::1;::::0;16373:47:::1;;16406:14;;-1:-1:-1::0;;;16406:14:2::1;;;;;;;;;;;16373:47;16514:30;16525:10;16537:6;16514:10;:30::i;:::-;-1:-1:-1::0;16586:3:2::1;;16211:403;;;;16067:553;15962:658:::0;;;:::o;12992:208::-;13087:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13110:83;;;;13153:40;13172:10;13184:8;13153:18;:40::i;12309:415::-;12429:10;6416:34;6439:10;6416:22;:34::i;:::-;12553:24:::1;::::0;;;:12:::1;:24;::::0;;;;;;;:45;;:33:::1;::::0;::::1;:45:::0;;;;;::::1;::::0;12589:9;;12553:33;:45;;;::::1;::::0;;::::1;:::i;:::-;;;;;12695:10;12672:45;12707:9;12672:45;;;;;;:::i;6841:257::-:0;4882:13:48;;6900:1:2;;4882:13:48;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:48;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:48;;13734:2:143;4873:99:48;;;13716:21:143;13773:2;13753:18;;;13746:30;13812:34;13792:18;;;13785:62;13883:16;13863:18;;;13856:44;13917:19;;4873:99:48;13532:410:143;4873:99:48;4982:12;:22;;-1:-1:-1;;5014:20:48;4982:22;;;5014:20;4982:22;5014:20;;;-1:-1:-1;;;;;6968:20:2;::::1;6964:47;;6997:14;;-1:-1:-1::0;;;6997:14:2::1;;;;;;;;;;;6964:47;7061:30;6011:23;7084:6;7061:10;:30::i;:::-;5071:5:48::0;5055:21;;-1:-1:-1;;5055:21:48;;;5091:20;;14119:4:143;14107:17;;14089:36;;5091:20:48;;14077:2:143;14062:18;5091:20:48;;;;;;;6841:257:2;;:::o;11210:830::-;11349:14;11320:10;6416:34;6439:10;6416:22;:34::i;:::-;11429::::1;11445:10;11457:5;11429:15;:34::i;:::-;11538:23;11564:24:::0;;;:12:::1;:24;::::0;;;;11420:43;;-1:-1:-1;11627:12:2::1;::::0;::::1;:20;11642:5:::0;11627:12;:20:::1;:::i;:::-;-1:-1:-1::0;11705:14:2::1;::::0;::::1;::::0;;-1:-1:-1;;;;;11705:14:2;;::::1;11731:1;11687:33:::0;;;:17:::1;:33;::::0;;;;;:46;;;11774:23;;-1:-1:-1;;11774:23:2::1;::::0;;::::1;::::0;;::::1;::::0;;;11807:25;;;;;;:38;;;11931:45;11807:38;;11931:45:::1;::::0;::::1;::::0;11962:5;;11774:23;;11931:45:::1;:::i;:::-;;;;;;;;12020:13;11210:830:::0;;;;;:::o;5705:147:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;7837:187:2:-:0;7905:14;;:::i;:::-;-1:-1:-1;;;;;7951:26:2;;7931:17;7951:26;;;:17;:26;;;;;;;;;7994:23;;;:12;:23;;;;;;7987:30;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:23;;7987:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7987:30:2;;;;-1:-1:-1;;;7987:30:2;;;;;;-1:-1:-1;;;;;7987:30:2;;;;;;;;;;;;;;;;;;;;;7837:187;-1:-1:-1;;;7837:187:2:o;16837:500::-;16933:10;6416:34;6439:10;6416:22;:34::i;:::-;16978:15;;16955:20:::1;17094:237;17114:12;17110:1;:16;17094:237;;;17225:36;17237:10;17249:8;17258:1;17249:11;;;;;;;;:::i;:::-;;;;;;;17225;:36::i;:::-;17303:3;;17094:237;;5702:47:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5702:47:2;;;;-1:-1:-1;;;5702:47:2;;;;;;;;;;;-1:-1:-1;;;;;5702:47:2;;;;;;:::o;20464:146::-;20552:4;3459:12:44;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;20575:28:2;3350:145:44;3789:103;3855:30;3866:4;965:10:52;3855::44;:30::i;:::-;3789:103;:::o;6721:269:10:-;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;7938:233:44:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:44;;;;;;;;;:36;;-1:-1:-1;;8059:36:44;8091:4;8059:36;;;8141:12;965:10:52;;886:96;8141:12:44;-1:-1:-1;;;;;8114:40:44;8132:7;-1:-1:-1;;;;;8114:40:44;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;8342:234::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:44;;;;;;;;;;:37;;-1:-1:-1;;8463:37:44;;;8519:40;965:10:52;;8463:12:44;;8519:40;;8495:5;8519:40;8342:234;;:::o;19465:159:2:-;19548:7;19601:6;19609;19584:32;;;;;;;;14638:19:143;;;14695:2;14691:15;-1:-1:-1;;14687:53:143;14682:2;14673:12;;14666:75;14766:2;14757:12;;14481:294;19584:32:2;;;;;;;;;;;;;19574:43;;;;;;19567:50;;19465:159;;;;:::o;18166:969::-;18250:14;18276:24;18314:10;18326:5;18303:29;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;18303:29:2;;;;;;;18380:37;;15250:25:143;;;18411:4:2;15291:18:143;;;15284:83;18380:37:2;;;;;;;;;15223:18:143;;;18380:37:2;;;;18303:29;;-1:-1:-1;18380:37:2;-1:-1:-1;;15223:18:143;18469:25:2;;;;;:::i;:::-;-1:-1:-1;;18469:25:2;;;;;;;;;;;;;;;;18452:67;;18469:25;18496:22;;18469:25;18452:67;;:::i;:::-;;;;-1:-1:-1;;18452:67:2;;;;;;;;;;18545:22;;18452:67;18545:22;;;;;;;18706:19;;;;;;18671:12;18654:72;;;16086:92:143;;;;-1:-1:-1;;18693:4:2;16215:2:143;16211:15;16207:53;16194:11;;;16187:74;16277:12;;;16270:28;;;16314:12;;;16307:28;;;;18452:67:2;;-1:-1:-1;18545:22:2;18530:12;;16351::143;;18654:72:2;;;;;;;;;;;;18644:83;;;;;;18636:92;;18578:161;;18860:4;18866:10;18886:4;18843:49;;;;;:::i;:::-;15250:25:143;;;-1:-1:-1;;;;;15311:55:143;15306:2;15291:18;;15284:83;15238:2;15223:18;18843:49:2;;;;;;;;;;;;;;;;;;18839:290;;19044:10;19008:18;-1:-1:-1;;;;;18993:45:2;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;18989:88;;19063:14;;;;;;;;;;;;;;18989:88;19100:18;19091:27;;18839:290;;;18949:7;-1:-1:-1;18839:290:2;18266:869;;;;;18166:969;;;;:::o;17659:152::-;20049:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:30:2;17770:10;20072:40;17735:69;;17790:14;;-1:-1:-1;;;17790:14:2;;;;;;;;;;;4173:501:44;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:44;;;;;;;;;;-1:-1:-1;;;4299:358:44;;;;;;;:::i;2455:490:14:-;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;2473:149:53:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:53;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:53;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:53;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:53;;;;;;;;-1:-1:-1;2096:9:53;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:53;;;;;;;;-1:-1:-1;2207:1:53;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:53;;2228:55;;;;-1:-1:-1;;;2228:55:53;;18440:2:143;2228:55:53;;;18422:21:143;;;18459:18;;;18452:30;18518:34;18498:18;;;18491:62;18570:18;;2228:55:53;18238:356:143;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:180:143:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:143;;14:180;-1:-1:-1;14:180:143:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:143;423:16;;416:27;199:250::o;454:271::-;496:3;534:5;528:12;561:6;556:3;549:19;577:76;646:6;639:4;634:3;630:14;623:4;616:5;612:16;577:76;:::i;:::-;707:2;686:15;-1:-1:-1;;682:29:143;673:39;;;;714:4;669:50;;454:271;-1:-1:-1;;454:271:143:o;730:252::-;817:5;811:12;806:3;799:25;781:3;870:4;863:5;859:16;853:23;908:4;901;896:3;892:14;885:28;929:47;970:4;965:3;961:14;947:12;929:47;:::i;:::-;922:54;730:252;-1:-1:-1;;;;730:252:143:o;987:934::-;1166:2;1155:9;1148:21;1211:6;1205:13;1200:2;1189:9;1185:18;1178:41;1273:2;1265:6;1261:15;1255:22;1250:2;1239:9;1235:18;1228:50;1129:4;1325:2;1317:6;1313:15;1307:22;1365:4;1360:2;1349:9;1345:18;1338:32;1393:52;1440:3;1429:9;1425:19;1411:12;1393:52;:::i;:::-;1379:66;;1494:2;1486:6;1482:15;1476:22;1567:2;1563:7;1551:9;1543:6;1539:22;1535:36;1529:3;1518:9;1514:19;1507:65;1595:50;1638:6;1622:14;1595:50;:::i;:::-;1581:64;;;1694:3;1686:6;1682:16;1676:23;-1:-1:-1;;;;;1817:2:143;1801:14;1797:23;1791:3;1780:9;1776:19;1769:52;1888:2;1881:3;1873:6;1869:16;1863:23;1859:32;1852:4;1841:9;1837:20;1830:62;;;1909:6;1901:14;;;987:934;;;;:::o;1926:332::-;1984:6;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2142:66;2135:5;2131:78;2124:5;2121:89;2111:117;;2224:1;2221;2214:12;2455:196;2523:20;;-1:-1:-1;;;;;2572:54:143;;2562:65;;2552:93;;2641:1;2638;2631:12;2552:93;2455:196;;;:::o;2656:254::-;2724:6;2732;2785:2;2773:9;2764:7;2760:23;2756:32;2753:52;;;2801:1;2798;2791:12;2753:52;2837:9;2824:23;2814:33;;2866:38;2900:2;2889:9;2885:18;2866:38;:::i;:::-;2856:48;;2656:254;;;;;:::o;3097:260::-;3165:6;3173;3226:2;3214:9;3205:7;3201:23;3197:32;3194:52;;;3242:1;3239;3232:12;3194:52;3265:29;3284:9;3265:29;:::i;:::-;3255:39;;3313:38;3347:2;3336:9;3332:18;3313:38;:::i;3362:184::-;-1:-1:-1;;;3411:1:143;3404:88;3511:4;3508:1;3501:15;3535:4;3532:1;3525:15;3551:275;3622:2;3616:9;3687:2;3668:13;;-1:-1:-1;;3664:27:143;3652:40;;3722:18;3707:34;;3743:22;;;3704:62;3701:88;;;3769:18;;:::i;:::-;3805:2;3798:22;3551:275;;-1:-1:-1;3551:275:143:o;3831:531::-;3874:5;3927:3;3920:4;3912:6;3908:17;3904:27;3894:55;;3945:1;3942;3935:12;3894:55;3981:6;3968:20;4007:18;4003:2;4000:26;3997:52;;;4029:18;;:::i;:::-;4073:55;4116:2;4097:13;;-1:-1:-1;;4093:27:143;4122:4;4089:38;4073:55;:::i;:::-;4153:2;4144:7;4137:19;4199:3;4192:4;4187:2;4179:6;4175:15;4171:26;4168:35;4165:55;;;4216:1;4213;4206:12;4165:55;4281:2;4274:4;4266:6;4262:17;4255:4;4246:7;4242:18;4229:55;4329:1;4304:16;;;4322:4;4300:27;4293:38;;;;4308:7;3831:531;-1:-1:-1;;;3831:531:143:o;4367:610::-;4422:5;4470:4;4458:9;4453:3;4449:19;4445:30;4442:50;;;4488:1;4485;4478:12;4442:50;4521:4;4515:11;4565:4;4557:6;4553:17;4589:18;4657:6;4645:10;4642:22;4637:2;4625:10;4622:18;4619:46;4616:72;;;4668:18;;:::i;:::-;4710:10;4704:4;4697:24;4739:6;4730:15;;4782:9;4769:23;4761:6;4754:39;4844:2;4833:9;4829:18;4816:32;4802:46;;4871:2;4863:6;4860:14;4857:34;;;4887:1;4884;4877:12;4857:34;;4924:46;4966:3;4957:6;4946:9;4942:22;4924:46;:::i;:::-;4919:2;4911:6;4907:15;4900:71;;;4367:610;;;;:::o;4982:718::-;5036:5;5089:3;5082:4;5074:6;5070:17;5066:27;5056:55;;5107:1;5104;5097:12;5056:55;5143:6;5130:20;5169:4;5192:18;5188:2;5185:26;5182:52;;;5214:18;;:::i;:::-;5260:2;5257:1;5253:10;5283:28;5307:2;5303;5299:11;5283:28;:::i;:::-;5345:15;;;5415;;;5411:24;;;5376:12;;;;5447:15;;;5444:35;;;5475:1;5472;5465:12;5444:35;5511:2;5503:6;5499:15;5488:26;;5523:148;5539:6;5534:3;5531:15;5523:148;;;5605:23;5624:3;5605:23;:::i;:::-;5593:36;;5556:12;;;;5649;;;;5523:148;;;5689:5;4982:718;-1:-1:-1;;;;;;;4982:718:143:o;5705:938::-;5861:6;5869;5877;5885;5893;5946:3;5934:9;5925:7;5921:23;5917:33;5914:53;;;5963:1;5960;5953:12;5914:53;5999:9;5986:23;5976:33;;6060:2;6049:9;6045:18;6032:32;6083:18;6124:2;6116:6;6113:14;6110:34;;;6140:1;6137;6130:12;6110:34;6163:50;6205:7;6196:6;6185:9;6181:22;6163:50;:::i;:::-;6153:60;;6266:2;6255:9;6251:18;6238:32;6222:48;;6295:2;6285:8;6282:16;6279:36;;;6311:1;6308;6301:12;6279:36;6334:61;6387:7;6376:8;6365:9;6361:24;6334:61;:::i;:::-;6324:71;;6414:38;6448:2;6437:9;6433:18;6414:38;:::i;:::-;6404:48;;6505:3;6494:9;6490:19;6477:33;6461:49;;6535:2;6525:8;6522:16;6519:36;;;6551:1;6548;6541:12;6519:36;;6574:63;6629:7;6618:8;6607:9;6603:24;6574:63;:::i;:::-;6564:73;;;5705:938;;;;;;;;:::o;6648:186::-;6707:6;6760:2;6748:9;6739:7;6735:23;6731:32;6728:52;;;6776:1;6773;6766:12;6728:52;6799:29;6818:9;6799:29;:::i;6839:416::-;6932:6;6940;6993:2;6981:9;6972:7;6968:23;6964:32;6961:52;;;7009:1;7006;6999:12;6961:52;7045:9;7032:23;7022:33;;7106:2;7095:9;7091:18;7078:32;7133:18;7125:6;7122:30;7119:50;;;7165:1;7162;7155:12;7119:50;7188:61;7241:7;7232:6;7221:9;7217:22;7188:61;:::i;:::-;7178:71;;;6839:416;;;;;:::o;7491:415::-;7585:6;7593;7646:2;7634:9;7625:7;7621:23;7617:32;7614:52;;;7662:1;7659;7652:12;7614:52;7698:9;7685:23;7675:33;;7759:2;7748:9;7744:18;7731:32;7786:18;7778:6;7775:30;7772:50;;;7818:1;7815;7808:12;7772:50;7841:59;7892:7;7883:6;7872:9;7868:22;7841:59;:::i;7911:390::-;7989:6;7997;8050:2;8038:9;8029:7;8025:23;8021:32;8018:52;;;8066:1;8063;8056:12;8018:52;8102:9;8089:23;8079:33;;8163:2;8152:9;8148:18;8135:32;8190:18;8182:6;8179:30;8176:50;;;8222:1;8219;8212:12;8176:50;8245;8287:7;8278:6;8267:9;8263:22;8245:50;:::i;8306:791::-;8647:6;8636:9;8629:25;8690:6;8685:2;8674:9;8670:18;8663:34;8733:3;8728:2;8717:9;8713:18;8706:31;8610:4;8760:46;8801:3;8790:9;8786:19;8778:6;8760:46;:::i;:::-;8854:9;8846:6;8842:22;8837:2;8826:9;8822:18;8815:50;8882:42;8917:6;8909;8882:42;:::i;:::-;8874:50;;;-1:-1:-1;;;;;9034:2:143;9026:6;9022:15;9016:3;9005:9;9001:19;8994:44;9087:2;9079:6;9075:15;9069:3;9058:9;9054:19;9047:44;;8306:791;;;;;;;;;:::o;9102:437::-;9181:1;9177:12;;;;9224;;;9245:61;;9299:4;9291:6;9287:17;9277:27;;9245:61;9352:2;9344:6;9341:14;9321:18;9318:38;9315:218;;-1:-1:-1;;;9386:1:143;9379:88;9490:4;9487:1;9480:15;9518:4;9515:1;9508:15;9315:218;;9102:437;;;:::o;9544:184::-;9614:6;9667:2;9655:9;9646:7;9642:23;9638:32;9635:52;;;9683:1;9680;9673:12;9635:52;-1:-1:-1;9706:16:143;;9544:184;-1:-1:-1;9544:184:143:o;10275:545::-;10377:2;10372:3;10369:11;10366:448;;;10413:1;10438:5;10434:2;10427:17;10483:4;10479:2;10469:19;10553:2;10541:10;10537:19;10534:1;10530:27;10524:4;10520:38;10589:4;10577:10;10574:20;10571:47;;;-1:-1:-1;10612:4:143;10571:47;10667:2;10662:3;10658:12;10655:1;10651:20;10645:4;10641:31;10631:41;;10722:82;10740:2;10733:5;10730:13;10722:82;;;10785:17;;;10766:1;10755:13;10722:82;;;10726:3;;;10275:545;;;:::o;10996:1352::-;11122:3;11116:10;11149:18;11141:6;11138:30;11135:56;;;11171:18;;:::i;:::-;11200:97;11290:6;11250:38;11282:4;11276:11;11250:38;:::i;:::-;11244:4;11200:97;:::i;:::-;11352:4;;11416:2;11405:14;;11433:1;11428:663;;;;12135:1;12152:6;12149:89;;;-1:-1:-1;12204:19:143;;;12198:26;12149:89;-1:-1:-1;;10953:1:143;10949:11;;;10945:24;10941:29;10931:40;10977:1;10973:11;;;10928:57;12251:81;;11398:944;;11428:663;10222:1;10215:14;;;10259:4;10246:18;;-1:-1:-1;;11464:20:143;;;11582:236;11596:7;11593:1;11590:14;11582:236;;;11685:19;;;11679:26;11664:42;;11777:27;;;;11745:1;11733:14;;;;11612:19;;11582:236;;;11586:3;11846:6;11837:7;11834:19;11831:201;;;11907:19;;;11901:26;-1:-1:-1;;11990:1:143;11986:14;;;12002:3;11982:24;11978:37;11974:42;11959:58;11944:74;;11831:201;-1:-1:-1;;;;;12078:1:143;12062:14;;;12058:22;12045:36;;-1:-1:-1;10996:1352:143:o;12353:184::-;-1:-1:-1;;;12402:1:143;12395:88;12502:4;12499:1;12492:15;12526:4;12523:1;12516:15;12542:719;12855:6;12844:9;12837:25;12898:3;12893:2;12882:9;12878:18;12871:31;12818:4;12925:46;12966:3;12955:9;12951:19;12943:6;12925:46;:::i;:::-;13019:9;13011:6;13007:22;13002:2;12991:9;12987:18;12980:50;13047:42;13082:6;13074;13047:42;:::i;:::-;13039:50;;;-1:-1:-1;;;;;13198:2:143;13190:6;13186:15;13181:2;13170:9;13166:18;13159:43;13251:2;13243:6;13239:15;13233:3;13222:9;13218:19;13211:44;;12542:719;;;;;;;;:::o;13266:261::-;13447:2;13436:9;13429:21;13410:4;13467:54;13517:2;13506:9;13502:18;13494:6;13467:54;:::i;14136:340::-;14313:2;14302:9;14295:21;14276:4;14333:45;14374:2;14363:9;14359:18;14351:6;14333:45;:::i;:::-;14325:53;;-1:-1:-1;;;;;14418:6:143;14414:55;14409:2;14398:9;14394:18;14387:83;14136:340;;;;;:::o;14780:291::-;14957:6;14946:9;14939:25;15000:2;14995;14984:9;14980:18;14973:30;14920:4;15020:45;15061:2;15050:9;15046:18;15038:6;15020:45;:::i;15378:492::-;15553:3;15591:6;15585:13;15607:66;15666:6;15661:3;15654:4;15646:6;15642:17;15607:66;:::i;:::-;15736:13;;15695:16;;;;15758:70;15736:13;15695:16;15805:4;15793:17;;15758:70;:::i;:::-;15844:20;;15378:492;-1:-1:-1;;;;15378:492:143:o;16563:812::-;16974:25;16969:3;16962:38;16944:3;17029:6;17023:13;17045:75;17113:6;17108:2;17103:3;17099:12;17092:4;17084:6;17080:17;17045:75;:::i;:::-;17184:19;17179:2;17139:16;;;17171:11;;;17164:40;17229:13;;17251:76;17229:13;17313:2;17305:11;;17298:4;17286:17;;17251:76;:::i;:::-;17347:17;17366:2;17343:26;;16563:812;-1:-1:-1;;;;16563:812:143:o;17380:220::-;17529:2;17518:9;17511:21;17492:4;17549:45;17590:2;17579:9;17575:18;17567:6;17549:45;:::i;17605:184::-;-1:-1:-1;;;17654:1:143;17647:88;17754:4;17751:1;17744:15;17778:4;17775:1;17768:15;17794:168;17867:9;;;17898;;17915:15;;;17909:22;;17895:37;17885:71;;17936:18;;:::i;17967:125::-;18032:9;;;18053:10;;;18050:36;;;18066:18;;:::i;18097:136::-;18136:3;18164:5;18154:39;;18173:18;;:::i;:::-;-1:-1:-1;;;18209:18:143;;18097:136::o","linkReferences":{}},"methodIdentifiers":{"ALLO_OWNER()":"cfda7e0a","DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","acceptProfileOwnership(bytes32)":"2497f3c6","addMembers(bytes32,address[])":"5063f361","anchorToProfileId(address)":"4756487f","createProfile(uint256,string,(uint256,string),address,address[])":"3a92f65f","getProfileByAnchor(address)":"dd93da43","getProfileById(bytes32)":"0114cf0a","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","isMemberOfProfile(bytes32,address)":"0ec1fbac","isOwnerOfProfile(bytes32,address)":"39b86b8c","isOwnerOrMemberOfProfile(bytes32,address)":"5e8a7915","profileIdToPendingOwner(bytes32)":"50d005e0","profilesById(bytes32)":"ee888196","recoverFunds(address,address)":"24ae6a27","removeMembers(bytes32,address[])":"e0cf1e4c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateProfileMetadata(bytes32,(uint256,string))":"ac402839","updateProfileName(bytes32,string)":"cf189ff2","updateProfilePendingOwner(bytes32,address)":"3b66dacd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"ProfileMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileNameUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ProfilePendingOwnerUpdated\",\"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\":\"ALLO_OWNER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"acceptProfileOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"anchorToProfileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"getProfileByAnchor\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"getProfileById\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isOwnerOrMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profileIdToPendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profilesById\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"removeMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"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\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updateProfileMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"updateProfileName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pendingOwner\",\"type\":\"address\"}],\"name\":\"updateProfilePendingOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"This contract is used to create and manage profiles for the Allo protocol It is also used to deploy the anchor contract for each profile which acts as a proxy for the profile and is used to receive funds and execute transactions on behalf of the profile The Registry is also used to add and remove members from a profile and update the profile 'Metadata'\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProfileCreated(bytes32,uint256,string,(uint256,string),address,address)\":{\"details\":\"Emitted when a profile is created. This will return your anchor address.\"},\"ProfileMetadataUpdated(bytes32,(uint256,string))\":{\"details\":\"Emitted when a profile's metadata is updated.\"},\"ProfileNameUpdated(bytes32,string,address)\":{\"details\":\"Emitted when a profile name is updated. This will update the anchor when the name is updated and return it.\"},\"ProfileOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile owner is updated.\"},\"ProfilePendingOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile pending owner is updated.\"},\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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\":{\"acceptProfileOwnership(bytes32)\":{\"details\":\"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\",\"params\":{\"_profileId\":\"The ID of the profile\"}},\"addMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_members\":\"The members to add\",\"_profileId\":\"The ID of the profile\"}},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"details\":\"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address\",\"params\":{\"_members\":\"The members of the profile (can be set only if msg.sender == _owner)\",\"_metadata\":\"The metadata of the profile\",\"_name\":\"The name of the profile\",\"_nonce\":\"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.\",\"_owner\":\"The owner of the profile\"},\"returns\":{\"_0\":\"The ID for the created profile\"}},\"getProfileByAnchor(address)\":{\"details\":\"Used when you have the 'anchor' address and want to retrieve the profile\",\"params\":{\"_anchor\":\"The anchor of the profile\"},\"returns\":{\"_0\":\"Profile details for the `_anchor`\"}},\"getProfileById(bytes32)\":{\"details\":\"Used when you have the 'profileId' and want to retrieve the profile\",\"params\":{\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"The Profile details for the `_profileId`\"}},\"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`.\"},\"initialize(address)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\",\"params\":{\"_owner\":\"The owner of the contract\"}},\"isMemberOfProfile(bytes32,address)\":{\"params\":{\"_member\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is a member of the profile, otherwise 'false'\"}},\"isOwnerOfProfile(bytes32,address)\":{\"params\":{\"_owner\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner of the profile, otherwise 'false'\"}},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"params\":{\"_account\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner or member of the profile, otherwise 'false'\"}},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be the Allo owner\",\"params\":{\"_recipient\":\"The address of the recipient\",\"_token\":\"The address of the token to transfer\"}},\"removeMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the pending owner of the profile.\",\"params\":{\"_members\":\"The members to remove\",\"_profileId\":\"The ID of the profile\"}},\"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 `account`. 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\":\"See {IERC165-supportsInterface}.\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_metadata\":\"The new 'Metadata' of the profile\",\"_profileId\":\"The ID of the profile\"}},\"updateProfileName(bytes32,string)\":{\"details\":\"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\",\"params\":{\"_name\":\"The new name of the profile\",\"_profileId\":\"The profileId of the profile\"},\"returns\":{\"anchor\":\"The new anchor\"}},\"updateProfilePendingOwner(bytes32,address)\":{\"details\":\"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\",\"params\":{\"_pendingOwner\":\"The new pending owner\",\"_profileId\":\"The ID of the profile\"}}},\"stateVariables\":{\"anchorToProfileId\":{\"details\":\"anchor -> Profile.id\"},\"profileIdToPendingOwner\":{\"details\":\"Profile.id -> pending owner\"},\"profilesById\":{\"details\":\"Profile.id -> Profile\"}},\"title\":\"Registry Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{\"ALLO_OWNER()\":{\"notice\":\"Allo Owner Role for fund recovery\"},\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"acceptProfileOwnership(bytes32)\":{\"notice\":\"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\"},\"addMembers(bytes32,address[])\":{\"notice\":\"Adds members to the profile\"},\"anchorToProfileId(address)\":{\"notice\":\"This maps the anchor address to the profile ID\"},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"notice\":\"Creates a new profile\"},\"getProfileByAnchor(address)\":{\"notice\":\"Retrieve profile by anchor\"},\"getProfileById(bytes32)\":{\"notice\":\"Retrieve profile by profileId\"},\"initialize(address)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is a member of the profile\"},\"isOwnerOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is an owner of the profile\"},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the address is an owner or member of the profile\"},\"profileIdToPendingOwner(bytes32)\":{\"notice\":\"This maps the profile ID to the pending owner\"},\"profilesById(bytes32)\":{\"notice\":\"This maps the profile ID to the profile details\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfers any fund balance in Allo to the recipient\"},\"removeMembers(bytes32,address[])\":{\"notice\":\"Removes members from the profile\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"notice\":\"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\"},\"updateProfileName(bytes32,string)\":{\"notice\":\"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event.\"},\"updateProfilePendingOwner(bytes32,address)\":{\"notice\":\"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\"}},\"notice\":\"Registry contract for creating and managing profiles\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Registry.sol\":\"Registry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"ProfileMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileNameUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ProfileOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":false}],"type":"event","name":"ProfilePendingOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ALLO_OWNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"acceptProfileOwnership"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"anchorToProfileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"createProfile","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_anchor","type":"address"}],"stateMutability":"view","type":"function","name":"getProfileByAnchor","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getProfileById","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOrMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profileIdToPendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profilesById","outputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMembers"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updateProfileMetadata"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProfileName","outputs":[{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateProfilePendingOwner"}],"devdoc":{"kind":"dev","methods":{"acceptProfileOwnership(bytes32)":{"details":"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.","params":{"_profileId":"The ID of the profile"}},"addMembers(bytes32,address[])":{"details":"'msg.sender' must be the owner of the profile.","params":{"_members":"The members to add","_profileId":"The ID of the profile"}},"createProfile(uint256,string,(uint256,string),address,address[])":{"details":"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address","params":{"_members":"The members of the profile (can be set only if msg.sender == _owner)","_metadata":"The metadata of the profile","_name":"The name of the profile","_nonce":"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.","_owner":"The owner of the profile"},"returns":{"_0":"The ID for the created profile"}},"getProfileByAnchor(address)":{"details":"Used when you have the 'anchor' address and want to retrieve the profile","params":{"_anchor":"The anchor of the profile"},"returns":{"_0":"Profile details for the `_anchor`"}},"getProfileById(bytes32)":{"details":"Used when you have the 'profileId' and want to retrieve the profile","params":{"_profileId":"The ID of the profile"},"returns":{"_0":"The Profile details for the `_profileId`"}},"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`."},"initialize(address)":{"details":"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'","params":{"_owner":"The owner of the contract"}},"isMemberOfProfile(bytes32,address)":{"params":{"_member":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is a member of the profile, otherwise 'false'"}},"isOwnerOfProfile(bytes32,address)":{"params":{"_owner":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner of the profile, otherwise 'false'"}},"isOwnerOrMemberOfProfile(bytes32,address)":{"params":{"_account":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner or member of the profile, otherwise 'false'"}},"recoverFunds(address,address)":{"details":"'msg.sender' must be the Allo owner","params":{"_recipient":"The address of the recipient","_token":"The address of the token to transfer"}},"removeMembers(bytes32,address[])":{"details":"'msg.sender' must be the pending owner of the profile.","params":{"_members":"The members to remove","_profileId":"The ID of the profile"}},"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 `account`. 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":"See {IERC165-supportsInterface}."},"updateProfileMetadata(bytes32,(uint256,string))":{"details":"'msg.sender' must be the owner of the profile.","params":{"_metadata":"The new 'Metadata' of the profile","_profileId":"The ID of the profile"}},"updateProfileName(bytes32,string)":{"details":"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.","params":{"_name":"The new name of the profile","_profileId":"The profileId of the profile"},"returns":{"anchor":"The new anchor"}},"updateProfilePendingOwner(bytes32,address)":{"details":"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.","params":{"_pendingOwner":"The new pending owner","_profileId":"The ID of the profile"}}},"version":1},"userdoc":{"kind":"user","methods":{"ALLO_OWNER()":{"notice":"Allo Owner Role for fund recovery"},"NATIVE()":{"notice":"Address of the native token"},"acceptProfileOwnership(bytes32)":{"notice":"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event."},"addMembers(bytes32,address[])":{"notice":"Adds members to the profile"},"anchorToProfileId(address)":{"notice":"This maps the anchor address to the profile ID"},"createProfile(uint256,string,(uint256,string),address,address[])":{"notice":"Creates a new profile"},"getProfileByAnchor(address)":{"notice":"Retrieve profile by anchor"},"getProfileById(bytes32)":{"notice":"Retrieve profile by profileId"},"initialize(address)":{"notice":"Initializes the contract after an upgrade"},"isMemberOfProfile(bytes32,address)":{"notice":"Checks if the given address is a member of the profile"},"isOwnerOfProfile(bytes32,address)":{"notice":"Checks if the given address is an owner of the profile"},"isOwnerOrMemberOfProfile(bytes32,address)":{"notice":"Checks if the address is an owner or member of the profile"},"profileIdToPendingOwner(bytes32)":{"notice":"This maps the profile ID to the pending owner"},"profilesById(bytes32)":{"notice":"This maps the profile ID to the profile details"},"recoverFunds(address,address)":{"notice":"Transfers any fund balance in Allo to the recipient"},"removeMembers(bytes32,address[])":{"notice":"Removes members from the profile"},"updateProfileMetadata(bytes32,(uint256,string))":{"notice":"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event."},"updateProfileName(bytes32,string)":{"notice":"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event."},"updateProfilePendingOwner(bytes32,address)":{"notice":"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Registry.sol":"Registry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":54008,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":52428,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)"},{"astId":52735,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1525,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"anchorToProfileId","offset":0,"slot":"151","type":"t_mapping(t_address,t_bytes32)"},{"astId":1531,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"profilesById","offset":0,"slot":"152","type":"t_mapping(t_bytes32,t_struct(Profile)2629_storage)"},{"astId":1536,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"profileIdToPendingOwner","offset":0,"slot":"153","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_bytes32)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_bytes32,t_struct(Profile)2629_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct IRegistry.Profile)","numberOfBytes":"32","value":"t_struct(Profile)2629_storage"},"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52423_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(Profile)2629_storage":{"encoding":"inplace","label":"struct IRegistry.Profile","numberOfBytes":"224","members":[{"astId":2617,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"id","offset":0,"slot":"0","type":"t_bytes32"},{"astId":2619,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":2621,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"name","offset":0,"slot":"2","type":"t_string_storage"},{"astId":2624,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"metadata","offset":0,"slot":"3","type":"t_struct(Metadata)3098_storage"},{"astId":2626,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"owner","offset":0,"slot":"5","type":"t_address"},{"astId":2628,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"anchor","offset":0,"slot":"6","type":"t_address"}]},"t_struct(RoleData)52423_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52420,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52422,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","id":2296,"exportedSymbols":{"AccessControlUpgradeable":[52736],"AddressUpgradeable":[53684],"Anchor":[1492],"ContextUpgradeable":[53735],"ERC165Upgradeable":[54009],"ERC20":[4491],"Errors":[3089],"IAccessControlUpgradeable":[52809],"IERC165Upgradeable":[54021],"IRegistry":[2802],"Initializable":[53191],"MathUpgradeable":[54887],"Metadata":[3098],"Native":[3106],"Registry":[2295],"SafeTransferLib":[4649],"SignedMathUpgradeable":[54992],"StringsUpgradeable":[53964],"Transfer":[3317]},"nodeType":"SourceUnit","src":"42:21126:2","nodes":[{"id":1494,"nodeType":"PragmaDirective","src":"42:23:2","nodes":[],"literals":["solidity","0.8",".19"]},{"id":1495,"nodeType":"ImportDirective","src":"89:90:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":52737,"symbolAliases":[],"unitAlias":""},{"id":1496,"nodeType":"ImportDirective","src":"180:84:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":53192,"symbolAliases":[],"unitAlias":""},{"id":1498,"nodeType":"ImportDirective","src":"265:50:2","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":1497,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"273:5:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1499,"nodeType":"ImportDirective","src":"330:36:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":2803,"symbolAliases":[],"unitAlias":""},{"id":1501,"nodeType":"ImportDirective","src":"389:36:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Anchor.sol","file":"./Anchor.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":1493,"symbolAliases":[{"foreign":{"id":1500,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"397:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1503,"nodeType":"ImportDirective","src":"426:46:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"./libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":1502,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"434:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1505,"nodeType":"ImportDirective","src":"473:50:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"./libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":1504,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"481:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1506,"nodeType":"ImportDirective","src":"524:32:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"./libraries/Native.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3107,"symbolAliases":[],"unitAlias":""},{"id":1507,"nodeType":"ImportDirective","src":"557:34:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Transfer.sol","file":"./libraries/Transfer.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3318,"symbolAliases":[],"unitAlias":""},{"id":2295,"nodeType":"ContractDefinition","src":"5237:15930:2","nodes":[{"id":1525,"nodeType":"VariableDeclaration","src":"5544:52:2","nodes":[],"constant":false,"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"5447:92:2","text":"@notice This maps the anchor address to the profile ID\n @dev anchor -> Profile.id"},"functionSelector":"4756487f","mutability":"mutable","name":"anchorToProfileId","nameLocation":"5579:17:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":1524,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1522,"name":"address","nodeType":"ElementaryTypeName","src":"5552:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5544:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5563:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"id":1531,"nodeType":"VariableDeclaration","src":"5702:47:2","nodes":[],"constant":false,"documentation":{"id":1526,"nodeType":"StructuredDocumentation","src":"5603:94:2","text":"@notice This maps the profile ID to the profile details\n @dev Profile.id -> Profile"},"functionSelector":"ee888196","mutability":"mutable","name":"profilesById","nameLocation":"5737:12:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile)"},"typeName":{"id":1530,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5710:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5702:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"Profile","nameLocations":["5721:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"5721:7:2"},"referencedDeclaration":2629,"src":"5721:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}}},"visibility":"public"},{"id":1536,"nodeType":"VariableDeclaration","src":"5859:58:2","nodes":[],"constant":false,"documentation":{"id":1532,"nodeType":"StructuredDocumentation","src":"5756:98:2","text":"@notice This maps the profile ID to the pending owner\n @dev Profile.id -> pending owner"},"functionSelector":"50d005e0","mutability":"mutable","name":"profileIdToPendingOwner","nameLocation":"5894:23:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":1535,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5867:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5859:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1534,"name":"address","nodeType":"ElementaryTypeName","src":"5878:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"id":1542,"nodeType":"VariableDeclaration","src":"5974:60:2","nodes":[],"constant":true,"documentation":{"id":1537,"nodeType":"StructuredDocumentation","src":"5924:45:2","text":"@notice Allo Owner Role for fund recovery"},"functionSelector":"cfda7e0a","mutability":"constant","name":"ALLO_OWNER","nameLocation":"5998:10:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5974:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"414c4c4f5f4f574e4552","id":1540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6021:12:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e6882747","typeString":"literal_string \"ALLO_OWNER\""},"value":"ALLO_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e6882747","typeString":"literal_string \"ALLO_OWNER\""}],"id":1539,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6011:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6011:23:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":1553,"nodeType":"ModifierDefinition","src":"6360:108:2","nodes":[],"body":{"id":1552,"nodeType":"Block","src":"6406:62:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1548,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1545,"src":"6439:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1547,"name":"_checkOnlyProfileOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"6416:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":1549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6416:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1550,"nodeType":"ExpressionStatement","src":"6416:34:2"},{"id":1551,"nodeType":"PlaceholderStatement","src":"6460:1:2"}]},"documentation":{"id":1543,"nodeType":"StructuredDocumentation","src":"6177:178:2","text":"@notice Checks if the caller is the profile owner\n @dev Reverts `UNAUTHORIZED()` if the caller is not the profile owner\n @param _profileId The ID of the profile"},"name":"onlyProfileOwner","nameLocation":"6369:16:2","parameters":{"id":1546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1545,"mutability":"mutable","name":"_profileId","nameLocation":"6394:10:2","nodeType":"VariableDeclaration","scope":1553,"src":"6386:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6386:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6385:20:2"},"virtual":false,"visibility":"internal"},{"id":1578,"nodeType":"FunctionDefinition","src":"6841:257:2","nodes":[],"body":{"id":1577,"nodeType":"Block","src":"6903:195:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1562,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"6968:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6986:1:2","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":1564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6978:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1563,"name":"address","nodeType":"ElementaryTypeName","src":"6978:7:2","typeDescriptions":{}}},"id":1566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6978:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6968:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1571,"nodeType":"IfStatement","src":"6964:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1568,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"6997:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6997:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1570,"nodeType":"RevertStatement","src":"6990:21:2"}},{"expression":{"arguments":[{"id":1573,"name":"ALLO_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"7072:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1574,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"7084:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1572,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"7061:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7061:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1576,"nodeType":"ExpressionStatement","src":"7061:30:2"}]},"documentation":{"id":1554,"nodeType":"StructuredDocumentation","src":"6608:228:2","text":"@notice Initializes the contract after an upgrade\n @dev During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\n @param _owner The owner of the contract"},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"31","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6900:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":1560,"kind":"modifierInvocation","modifierName":{"id":1558,"name":"reinitializer","nameLocations":["6886:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":53126,"src":"6886:13:2"},"nodeType":"ModifierInvocation","src":"6886:16:2"}],"name":"initialize","nameLocation":"6850:10:2","parameters":{"id":1557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"_owner","nameLocation":"6869:6:2","nodeType":"VariableDeclaration","scope":1578,"src":"6861:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1555,"name":"address","nodeType":"ElementaryTypeName","src":"6861:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6860:16:2"},"returnParameters":{"id":1561,"nodeType":"ParameterList","parameters":[],"src":"6903:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1592,"nodeType":"FunctionDefinition","src":"7472:131:2","nodes":[],"body":{"id":1591,"nodeType":"Block","src":"7555:48:2","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1587,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7572:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1589,"indexExpression":{"id":1588,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"7585:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7572:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"functionReturnParameters":1586,"id":1590,"nodeType":"Return","src":"7565:31:2"}]},"baseFunctions":[2685],"documentation":{"id":1579,"nodeType":"StructuredDocumentation","src":"7240:227:2","text":"@notice Retrieve profile by profileId\n @dev Used when you have the 'profileId' and want to retrieve the profile\n @param _profileId The ID of the profile\n @return The Profile details for the `_profileId`"},"functionSelector":"0114cf0a","implemented":true,"kind":"function","modifiers":[],"name":"getProfileById","nameLocation":"7481:14:2","parameters":{"id":1582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1581,"mutability":"mutable","name":"_profileId","nameLocation":"7504:10:2","nodeType":"VariableDeclaration","scope":1592,"src":"7496:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7496:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7495:20:2"},"returnParameters":{"id":1586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1592,"src":"7539:14:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1584,"nodeType":"UserDefinedTypeName","pathNode":{"id":1583,"name":"Profile","nameLocations":["7539:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7539:7:2"},"referencedDeclaration":2629,"src":"7539:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7538:16:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1612,"nodeType":"FunctionDefinition","src":"7837:187:2","nodes":[],"body":{"id":1611,"nodeType":"Block","src":"7921:103:2","nodes":[],"statements":[{"assignments":[1602],"declarations":[{"constant":false,"id":1602,"mutability":"mutable","name":"profileId","nameLocation":"7939:9:2","nodeType":"VariableDeclaration","scope":1611,"src":"7931:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7931:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1606,"initialValue":{"baseExpression":{"id":1603,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7951:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1605,"indexExpression":{"id":1604,"name":"_anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"7969:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7951:26:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7931:46:2"},{"expression":{"baseExpression":{"id":1607,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7994:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1609,"indexExpression":{"id":1608,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"8007:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7994:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"functionReturnParameters":1600,"id":1610,"nodeType":"Return","src":"7987:30:2"}]},"baseFunctions":[2694],"documentation":{"id":1593,"nodeType":"StructuredDocumentation","src":"7609:223:2","text":"@notice Retrieve profile by anchor\n @dev Used when you have the 'anchor' address and want to retrieve the profile\n @param _anchor The anchor of the profile\n @return Profile details for the `_anchor`"},"functionSelector":"dd93da43","implemented":true,"kind":"function","modifiers":[],"name":"getProfileByAnchor","nameLocation":"7846:18:2","parameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1595,"mutability":"mutable","name":"_anchor","nameLocation":"7873:7:2","nodeType":"VariableDeclaration","scope":1612,"src":"7865:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1594,"name":"address","nodeType":"ElementaryTypeName","src":"7865:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7864:17:2"},"returnParameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"7905:14:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1598,"nodeType":"UserDefinedTypeName","pathNode":{"id":1597,"name":"Profile","nameLocations":["7905:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7905:7:2"},"referencedDeclaration":2629,"src":"7905:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7904:16:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1756,"nodeType":"FunctionDefinition","src":"8781:1901:2","nodes":[],"body":{"id":1755,"nodeType":"Block","src":"8984:1698:2","nodes":[],"statements":[{"assignments":[1631],"declarations":[{"constant":false,"id":1631,"mutability":"mutable","name":"profileId","nameLocation":"9068:9:2","nodeType":"VariableDeclaration","scope":1755,"src":"9060:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9060:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1636,"initialValue":{"arguments":[{"id":1633,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9099:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1634,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9107:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1632,"name":"_generateProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2211,"src":"9080:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,address) pure returns (bytes32)"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9080:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9060:54:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1637,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"9173:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1639,"indexExpression":{"id":1638,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9186:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9173:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9197:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"9173:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9215:1:2","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":1642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9207:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1641,"name":"address","nodeType":"ElementaryTypeName","src":"9207:7:2","typeDescriptions":{}}},"id":1644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9173:44:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1649,"nodeType":"IfStatement","src":"9169:78:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1646,"name":"NONCE_NOT_AVAILABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3026,"src":"9226:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9226:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1648,"nodeType":"RevertStatement","src":"9219:28:2"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1650,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9317:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9335:1:2","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":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9327:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1651,"name":"address","nodeType":"ElementaryTypeName","src":"9327:7:2","typeDescriptions":{}}},"id":1654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9327:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9317:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1659,"nodeType":"IfStatement","src":"9313:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1656,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"9346:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9346:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1658,"nodeType":"RevertStatement","src":"9339:21:2"}},{"assignments":[1662],"declarations":[{"constant":false,"id":1662,"mutability":"mutable","name":"profile","nameLocation":"9462:7:2","nodeType":"VariableDeclaration","scope":1755,"src":"9447:22:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1661,"nodeType":"UserDefinedTypeName","pathNode":{"id":1660,"name":"Profile","nameLocations":["9447:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"9447:7:2"},"referencedDeclaration":2629,"src":"9447:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1674,"initialValue":{"arguments":[{"id":1664,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9498:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1665,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9528:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1666,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"9554:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1667,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"9583:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":1668,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9613:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1670,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9657:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1671,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"9668:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1669,"name":"_generateAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"9641:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,string memory) returns (address)"}},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:33:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1663,"name":"Profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"9472:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Profile_$2629_storage_ptr_$","typeString":"type(struct IRegistry.Profile storage pointer)"}},"id":1673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9494:2:2","9521:5:2","9548:4:2","9573:8:2","9606:5:2","9633:6:2"],"names":["id","nonce","name","metadata","owner","anchor"],"nodeType":"FunctionCall","src":"9472:213:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"nodeType":"VariableDeclarationStatement","src":"9447:238:2"},{"expression":{"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1675,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"9696:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1677,"indexExpression":{"id":1676,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9709:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9696:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1678,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"9722:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"src":"9696:33:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1680,"nodeType":"ExpressionStatement","src":"9696:33:2"},{"expression":{"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1681,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"9739:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1684,"indexExpression":{"expression":{"id":1682,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"9757:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9765:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"9757:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9739:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1685,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9775:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9739:45:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1687,"nodeType":"ExpressionStatement","src":"9739:45:2"},{"assignments":[1689],"declarations":[{"constant":false,"id":1689,"mutability":"mutable","name":"memberLength","nameLocation":"9851:12:2","nodeType":"VariableDeclaration","scope":1755,"src":"9843:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"9843:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1692,"initialValue":{"expression":{"id":1690,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"9866:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9875:6:2","memberName":"length","nodeType":"MemberAccess","src":"9866:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9843:38:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1693,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"9942:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9942:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1696,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9962:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9972:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9976:6:2","memberName":"sender","nodeType":"MemberAccess","src":"9972:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9962:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1705,"nodeType":"IfStatement","src":"9938:92:2","trueBody":{"id":1704,"nodeType":"Block","src":"9984:46:2","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1701,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"10005:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10005:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1703,"nodeType":"RevertStatement","src":"9998:21:2"}]}},{"body":{"id":1737,"nodeType":"Block","src":"10075:367:2","statements":[{"assignments":[1713],"declarations":[{"constant":false,"id":1713,"mutability":"mutable","name":"member","nameLocation":"10097:6:2","nodeType":"VariableDeclaration","scope":1737,"src":"10089:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1712,"name":"address","nodeType":"ElementaryTypeName","src":"10089:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1717,"initialValue":{"baseExpression":{"id":1714,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"10106:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1716,"indexExpression":{"id":1715,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10115:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10106:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10089:28:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1718,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"10206:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10224:1:2","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":1720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10216:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1719,"name":"address","nodeType":"ElementaryTypeName","src":"10216:7:2","typeDescriptions":{}}},"id":1722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10216:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10206:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1727,"nodeType":"IfStatement","src":"10202:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1724,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"10235:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1726,"nodeType":"RevertStatement","src":"10228:21:2"}},{"expression":{"arguments":[{"id":1729,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10354:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1730,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"10365:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1728,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"10343:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10343:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1732,"nodeType":"ExpressionStatement","src":"10343:29:2"},{"id":1736,"nodeType":"UncheckedBlock","src":"10386:46:2","statements":[{"expression":{"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10414:3:2","subExpression":{"id":1733,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10416:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1735,"nodeType":"ExpressionStatement","src":"10414:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1709,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10056:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1710,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"10060:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10056:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1738,"initializationExpression":{"assignments":[1707],"declarations":[{"constant":false,"id":1707,"mutability":"mutable","name":"i","nameLocation":"10053:1:2","nodeType":"VariableDeclaration","scope":1738,"src":"10045:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1706,"name":"uint256","nodeType":"ElementaryTypeName","src":"10045:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1708,"nodeType":"VariableDeclarationStatement","src":"10045:9:2"},"nodeType":"ForStatement","src":"10040:402:2"},{"eventCall":{"arguments":[{"id":1740,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10527:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1741,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10538:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10546:5:2","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":2619,"src":"10538:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1743,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10553:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10561:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2621,"src":"10553:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":1745,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10567:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10575:8:2","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2624,"src":"10567:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"expression":{"id":1747,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10585:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10593:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"10585:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1749,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10600:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10608:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"10600:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1739,"name":"ProfileCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"10512:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,string memory,struct Metadata memory,address,address)"}},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10512:103:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1752,"nodeType":"EmitStatement","src":"10507:108:2"},{"expression":{"id":1753,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10666:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1629,"id":1754,"nodeType":"Return","src":"10659:16:2"}]},"baseFunctions":[2742],"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"8030:746:2","text":"@notice Creates a new profile\n @dev This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event\n Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile\n Note: The 'name' and 'profileId' are used to generate the 'anchor' address\n @param _nonce Nonce used to generate profileId. Can be any integer, but should be unique\n for each profile.\n @param _name The name of the profile\n @param _metadata The metadata of the profile\n @param _owner The owner of the profile\n @param _members The members of the profile (can be set only if msg.sender == _owner)\n @return The ID for the created profile"},"functionSelector":"3a92f65f","implemented":true,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"8790:13:2","parameters":{"id":1626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1615,"mutability":"mutable","name":"_nonce","nameLocation":"8821:6:2","nodeType":"VariableDeclaration","scope":1756,"src":"8813:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1614,"name":"uint256","nodeType":"ElementaryTypeName","src":"8813:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1617,"mutability":"mutable","name":"_name","nameLocation":"8851:5:2","nodeType":"VariableDeclaration","scope":1756,"src":"8837:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1616,"name":"string","nodeType":"ElementaryTypeName","src":"8837:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"_metadata","nameLocation":"8882:9:2","nodeType":"VariableDeclaration","scope":1756,"src":"8866:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":1619,"nodeType":"UserDefinedTypeName","pathNode":{"id":1618,"name":"Metadata","nameLocations":["8866:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"8866:8:2"},"referencedDeclaration":3098,"src":"8866:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":1622,"mutability":"mutable","name":"_owner","nameLocation":"8909:6:2","nodeType":"VariableDeclaration","scope":1756,"src":"8901:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1621,"name":"address","nodeType":"ElementaryTypeName","src":"8901:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1625,"mutability":"mutable","name":"_members","nameLocation":"8942:8:2","nodeType":"VariableDeclaration","scope":1756,"src":"8925:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1623,"name":"address","nodeType":"ElementaryTypeName","src":"8925:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1624,"nodeType":"ArrayTypeName","src":"8925:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8803:153:2"},"returnParameters":{"id":1629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1756,"src":"8975:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8975:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8974:9:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1820,"nodeType":"FunctionDefinition","src":"11210:830:2","nodes":[],"body":{"id":1819,"nodeType":"Block","src":"11369:671:2","nodes":[],"statements":[{"expression":{"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1769,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11420:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1771,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11445:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1772,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11457:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1770,"name":"_generateAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"11429:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,string memory) returns (address)"}},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11420:43:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1775,"nodeType":"ExpressionStatement","src":"11420:43:2"},{"assignments":[1778],"declarations":[{"constant":false,"id":1778,"mutability":"mutable","name":"profile","nameLocation":"11554:7:2","nodeType":"VariableDeclaration","scope":1819,"src":"11538:23:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1777,"nodeType":"UserDefinedTypeName","pathNode":{"id":1776,"name":"Profile","nameLocations":["11538:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"11538:7:2"},"referencedDeclaration":2629,"src":"11538:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1782,"initialValue":{"baseExpression":{"id":1779,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"11564:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1781,"indexExpression":{"id":1780,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11577:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11538:50:2"},{"expression":{"id":1787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1783,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11627:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11635:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2621,"src":"11627:12:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1786,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11642:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"11627:20:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1788,"nodeType":"ExpressionStatement","src":"11627:20:2"},{"expression":{"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1789,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"11687:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1792,"indexExpression":{"expression":{"id":1790,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11705:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11713:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"11705:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11687:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11731:1:2","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":1794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11723:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11723:7:2","typeDescriptions":{}}},"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11723:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11687:46:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1798,"nodeType":"ExpressionStatement","src":"11687:46:2"},{"expression":{"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1799,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11774:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11782:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"11774:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1802,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11791:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11774:23:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1804,"nodeType":"ExpressionStatement","src":"11774:23:2"},{"expression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1805,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"11807:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1807,"indexExpression":{"id":1806,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11825:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11807:25:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11835:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11807:38:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1810,"nodeType":"ExpressionStatement","src":"11807:38:2"},{"eventCall":{"arguments":[{"id":1812,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11950:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1813,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11962:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1814,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11969:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1811,"name":"ProfileNameUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"11931:18:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes32,string memory,address)"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11931:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1816,"nodeType":"EmitStatement","src":"11926:50:2"},{"expression":{"id":1817,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"12027:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1768,"id":1818,"nodeType":"Return","src":"12020:13:2"}]},"baseFunctions":[2752],"documentation":{"id":1757,"nodeType":"StructuredDocumentation","src":"10688:517:2","text":"@notice Updates the name of the profile and generates new anchor.\n Emits a 'ProfileNameUpdated()' event.\n @dev Use caution when updating your profile name as it will generate a new anchor address. You can always update the name\n back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\n @param _profileId The profileId of the profile\n @param _name The new name of the profile\n @return anchor The new anchor"},"functionSelector":"cf189ff2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1764,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11320:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1765,"kind":"modifierInvocation","modifierName":{"id":1763,"name":"onlyProfileOwner","nameLocations":["11303:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"11303:16:2"},"nodeType":"ModifierInvocation","src":"11303:28:2"}],"name":"updateProfileName","nameLocation":"11219:17:2","parameters":{"id":1762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1759,"mutability":"mutable","name":"_profileId","nameLocation":"11245:10:2","nodeType":"VariableDeclaration","scope":1820,"src":"11237:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11237:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1761,"mutability":"mutable","name":"_name","nameLocation":"11271:5:2","nodeType":"VariableDeclaration","scope":1820,"src":"11257:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1760,"name":"string","nodeType":"ElementaryTypeName","src":"11257:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11236:41:2"},"returnParameters":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"anchor","nameLocation":"11357:6:2","nodeType":"VariableDeclaration","scope":1820,"src":"11349:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"11349:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11348:16:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1845,"nodeType":"FunctionDefinition","src":"12309:415:2","nodes":[],"body":{"id":1844,"nodeType":"Block","src":"12445:279:2","nodes":[],"statements":[{"expression":{"id":1837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1832,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"12553:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1834,"indexExpression":{"id":1833,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12566:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12553:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12578:8:2","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2624,"src":"12553:33:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1836,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"12589:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12553:45:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":1838,"nodeType":"ExpressionStatement","src":"12553:45:2"},{"eventCall":{"arguments":[{"id":1840,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12695:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1841,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"12707:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":1839,"name":"ProfileMetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"12672:22:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,struct Metadata memory)"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12672:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1843,"nodeType":"EmitStatement","src":"12667:50:2"}]},"baseFunctions":[2761],"documentation":{"id":1821,"nodeType":"StructuredDocumentation","src":"12046:258:2","text":"@notice Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\n @dev 'msg.sender' must be the owner of the profile.\n @param _profileId The ID of the profile\n @param _metadata The new 'Metadata' of the profile"},"functionSelector":"ac402839","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1829,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12429:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1830,"kind":"modifierInvocation","modifierName":{"id":1828,"name":"onlyProfileOwner","nameLocations":["12412:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"12412:16:2"},"nodeType":"ModifierInvocation","src":"12412:28:2"}],"name":"updateProfileMetadata","nameLocation":"12318:21:2","parameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1823,"mutability":"mutable","name":"_profileId","nameLocation":"12348:10:2","nodeType":"VariableDeclaration","scope":1845,"src":"12340:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12340:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1826,"mutability":"mutable","name":"_metadata","nameLocation":"12376:9:2","nodeType":"VariableDeclaration","scope":1845,"src":"12360:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"Metadata","nameLocations":["12360:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12360:8:2"},"referencedDeclaration":3098,"src":"12360:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"12339:47:2"},"returnParameters":{"id":1831,"nodeType":"ParameterList","parameters":[],"src":"12445:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1866,"nodeType":"FunctionDefinition","src":"12992:208:2","nodes":[],"body":{"id":1865,"nodeType":"Block","src":"13093:107:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1856,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"13128:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1857,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"13140:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1855,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"13110:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13110:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1860,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"13172:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1861,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"13184:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1859,"name":"_isMemberOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"13153:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13153:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13110:83:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1854,"id":1864,"nodeType":"Return","src":"13103:90:2"}]},"baseFunctions":[2704],"documentation":{"id":1846,"nodeType":"StructuredDocumentation","src":"12730:257:2","text":"@notice Checks if the address is an owner or member of the profile\n @param _profileId The ID of the profile\n @param _account The address to check\n @return 'true' if the address is an owner or member of the profile, otherwise 'false'"},"functionSelector":"5e8a7915","implemented":true,"kind":"function","modifiers":[],"name":"isOwnerOrMemberOfProfile","nameLocation":"13001:24:2","parameters":{"id":1851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"_profileId","nameLocation":"13034:10:2","nodeType":"VariableDeclaration","scope":1866,"src":"13026:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13026:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"_account","nameLocation":"13054:8:2","nodeType":"VariableDeclaration","scope":1866,"src":"13046:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1849,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13025:38:2"},"returnParameters":{"id":1854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1866,"src":"13087:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1852,"name":"bool","nodeType":"ElementaryTypeName","src":"13087:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13086:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1882,"nodeType":"FunctionDefinition","src":"13452:152:2","nodes":[],"body":{"id":1881,"nodeType":"Block","src":"13543:61:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1877,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1869,"src":"13578:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1878,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"13590:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1876,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"13560:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13560:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1875,"id":1880,"nodeType":"Return","src":"13553:44:2"}]},"baseFunctions":[2714],"documentation":{"id":1867,"nodeType":"StructuredDocumentation","src":"13206:241:2","text":"@notice Checks if the given address is an owner of the profile\n @param _profileId The ID of the profile\n @param _owner The address to check\n @return 'true' if the address is an owner of the profile, otherwise 'false'"},"functionSelector":"39b86b8c","implemented":true,"kind":"function","modifiers":[],"name":"isOwnerOfProfile","nameLocation":"13461:16:2","parameters":{"id":1872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1869,"mutability":"mutable","name":"_profileId","nameLocation":"13486:10:2","nodeType":"VariableDeclaration","scope":1882,"src":"13478:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13478:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1871,"mutability":"mutable","name":"_owner","nameLocation":"13506:6:2","nodeType":"VariableDeclaration","scope":1882,"src":"13498:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1870,"name":"address","nodeType":"ElementaryTypeName","src":"13498:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13477:36:2"},"returnParameters":{"id":1875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1882,"src":"13537:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1873,"name":"bool","nodeType":"ElementaryTypeName","src":"13537:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13536:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1898,"nodeType":"FunctionDefinition","src":"13857:156:2","nodes":[],"body":{"id":1897,"nodeType":"Block","src":"13950:63:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1893,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"13986:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1894,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"13998:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1892,"name":"_isMemberOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"13967:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1891,"id":1896,"nodeType":"Return","src":"13960:46:2"}]},"baseFunctions":[2724],"documentation":{"id":1883,"nodeType":"StructuredDocumentation","src":"13610:242:2","text":"@notice Checks if the given address is a member of the profile\n @param _profileId The ID of the profile\n @param _member The address to check\n @return 'true' if the address is a member of the profile, otherwise 'false'"},"functionSelector":"0ec1fbac","implemented":true,"kind":"function","modifiers":[],"name":"isMemberOfProfile","nameLocation":"13866:17:2","parameters":{"id":1888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1885,"mutability":"mutable","name":"_profileId","nameLocation":"13892:10:2","nodeType":"VariableDeclaration","scope":1898,"src":"13884:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13884:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1887,"mutability":"mutable","name":"_member","nameLocation":"13912:7:2","nodeType":"VariableDeclaration","scope":1898,"src":"13904:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1886,"name":"address","nodeType":"ElementaryTypeName","src":"13904:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13883:37:2"},"returnParameters":{"id":1891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1898,"src":"13944:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1889,"name":"bool","nodeType":"ElementaryTypeName","src":"13944:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13943:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1921,"nodeType":"FunctionDefinition","src":"14336:382:2","nodes":[],"body":{"id":1920,"nodeType":"Block","src":"14472:246:2","nodes":[],"statements":[{"expression":{"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1909,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"14530:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1911,"indexExpression":{"id":1910,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14554:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14530:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1912,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"14568:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14530:51:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1914,"nodeType":"ExpressionStatement","src":"14530:51:2"},{"eventCall":{"arguments":[{"id":1916,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14685:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1917,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"14697:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1915,"name":"ProfilePendingOwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2676,"src":"14658:26:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14658:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1919,"nodeType":"EmitStatement","src":"14653:58:2"}]},"baseFunctions":[2769],"documentation":{"id":1899,"nodeType":"StructuredDocumentation","src":"14019:312:2","text":"@notice Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\n @dev 'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\n @param _profileId The ID of the profile\n @param _pendingOwner The new pending owner"},"functionSelector":"3b66dacd","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1906,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14456:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1907,"kind":"modifierInvocation","modifierName":{"id":1905,"name":"onlyProfileOwner","nameLocations":["14439:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"14439:16:2"},"nodeType":"ModifierInvocation","src":"14439:28:2"}],"name":"updateProfilePendingOwner","nameLocation":"14345:25:2","parameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1901,"mutability":"mutable","name":"_profileId","nameLocation":"14379:10:2","nodeType":"VariableDeclaration","scope":1921,"src":"14371:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14371:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1903,"mutability":"mutable","name":"_pendingOwner","nameLocation":"14399:13:2","nodeType":"VariableDeclaration","scope":1921,"src":"14391:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1902,"name":"address","nodeType":"ElementaryTypeName","src":"14391:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14370:43:2"},"returnParameters":{"id":1908,"nodeType":"ParameterList","parameters":[],"src":"14472:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1966,"nodeType":"FunctionDefinition","src":"15016:745:2","nodes":[],"body":{"id":1965,"nodeType":"Block","src":"15077:684:2","nodes":[],"statements":[{"assignments":[1929],"declarations":[{"constant":false,"id":1929,"mutability":"mutable","name":"profile","nameLocation":"15147:7:2","nodeType":"VariableDeclaration","scope":1965,"src":"15131:23:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1928,"nodeType":"UserDefinedTypeName","pathNode":{"id":1927,"name":"Profile","nameLocations":["15131:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"15131:7:2"},"referencedDeclaration":2629,"src":"15131:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1933,"initialValue":{"baseExpression":{"id":1930,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"15157:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1932,"indexExpression":{"id":1931,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15170:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15157:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15131:50:2"},{"assignments":[1935],"declarations":[{"constant":false,"id":1935,"mutability":"mutable","name":"newOwner","nameLocation":"15290:8:2","nodeType":"VariableDeclaration","scope":1965,"src":"15282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1934,"name":"address","nodeType":"ElementaryTypeName","src":"15282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1939,"initialValue":{"baseExpression":{"id":1936,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"15301:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1938,"indexExpression":{"id":1937,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15325:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15301:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15282:54:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15414:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15418:6:2","memberName":"sender","nodeType":"MemberAccess","src":"15414:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1942,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15428:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15414:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1947,"nodeType":"IfStatement","src":"15410:54:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1944,"name":"NOT_PENDING_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"15445:17:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15445:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1946,"nodeType":"RevertStatement","src":"15438:26:2"}},{"expression":{"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1948,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1929,"src":"15550:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15558:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"15550:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1951,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15566:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15550:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1953,"nodeType":"ExpressionStatement","src":"15550:24:2"},{"expression":{"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15584:42:2","subExpression":{"baseExpression":{"id":1954,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"15591:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1956,"indexExpression":{"id":1955,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15615:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15591:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1958,"nodeType":"ExpressionStatement","src":"15584:42:2"},{"eventCall":{"arguments":[{"id":1960,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15728:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1961,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1929,"src":"15740:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15748:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"15740:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1959,"name":"ProfileOwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"15708:19:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1964,"nodeType":"EmitStatement","src":"15703:51:2"}]},"baseFunctions":[2775],"documentation":{"id":1922,"nodeType":"StructuredDocumentation","src":"14724:287:2","text":"@notice Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\n @dev 'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\n @param _profileId The ID of the profile"},"functionSelector":"2497f3c6","implemented":true,"kind":"function","modifiers":[],"name":"acceptProfileOwnership","nameLocation":"15025:22:2","parameters":{"id":1925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1924,"mutability":"mutable","name":"_profileId","nameLocation":"15056:10:2","nodeType":"VariableDeclaration","scope":1966,"src":"15048:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15048:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15047:20:2"},"returnParameters":{"id":1926,"nodeType":"ParameterList","parameters":[],"src":"15077:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2017,"nodeType":"FunctionDefinition","src":"15962:658:2","nodes":[],"body":{"id":2016,"nodeType":"Block","src":"16067:553:2","nodes":[],"statements":[{"assignments":[1979],"declarations":[{"constant":false,"id":1979,"mutability":"mutable","name":"memberLength","nameLocation":"16085:12:2","nodeType":"VariableDeclaration","scope":2016,"src":"16077:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1978,"name":"uint256","nodeType":"ElementaryTypeName","src":"16077:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1982,"initialValue":{"expression":{"id":1980,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"16100:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16109:6:2","memberName":"length","nodeType":"MemberAccess","src":"16100:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16077:38:2"},{"body":{"id":2014,"nodeType":"Block","src":"16246:368:2","statements":[{"assignments":[1990],"declarations":[{"constant":false,"id":1990,"mutability":"mutable","name":"member","nameLocation":"16268:6:2","nodeType":"VariableDeclaration","scope":2014,"src":"16260:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1989,"name":"address","nodeType":"ElementaryTypeName","src":"16260:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1994,"initialValue":{"baseExpression":{"id":1991,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"16277:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1993,"indexExpression":{"id":1992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16286:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16277:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16260:28:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1995,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"16377:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16395:1:2","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":1997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1996,"name":"address","nodeType":"ElementaryTypeName","src":"16387:7:2","typeDescriptions":{}}},"id":1999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16377:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2004,"nodeType":"IfStatement","src":"16373:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2001,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"16406:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16406:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2003,"nodeType":"RevertStatement","src":"16399:21:2"}},{"expression":{"arguments":[{"id":2006,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1969,"src":"16525:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2007,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"16537:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2005,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"16514:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16514:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2009,"nodeType":"ExpressionStatement","src":"16514:30:2"},{"id":2013,"nodeType":"UncheckedBlock","src":"16558:46:2","statements":[{"expression":{"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16586:3:2","subExpression":{"id":2010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16588:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2012,"nodeType":"ExpressionStatement","src":"16586:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16227:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1987,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"16231:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16227:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2015,"initializationExpression":{"assignments":[1984],"declarations":[{"constant":false,"id":1984,"mutability":"mutable","name":"i","nameLocation":"16224:1:2","nodeType":"VariableDeclaration","scope":2015,"src":"16216:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1983,"name":"uint256","nodeType":"ElementaryTypeName","src":"16216:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1985,"nodeType":"VariableDeclarationStatement","src":"16216:9:2"},"nodeType":"ForStatement","src":"16211:403:2"}]},"baseFunctions":[2784],"documentation":{"id":1967,"nodeType":"StructuredDocumentation","src":"15767:190:2","text":"@notice Adds members to the profile\n @dev 'msg.sender' must be the owner of the profile.\n @param _profileId The ID of the profile\n @param _members The members to add"},"functionSelector":"5063f361","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1975,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1969,"src":"16055:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1976,"kind":"modifierInvocation","modifierName":{"id":1974,"name":"onlyProfileOwner","nameLocations":["16038:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"16038:16:2"},"nodeType":"ModifierInvocation","src":"16038:28:2"}],"name":"addMembers","nameLocation":"15971:10:2","parameters":{"id":1973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1969,"mutability":"mutable","name":"_profileId","nameLocation":"15990:10:2","nodeType":"VariableDeclaration","scope":2017,"src":"15982:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15982:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1972,"mutability":"mutable","name":"_members","nameLocation":"16019:8:2","nodeType":"VariableDeclaration","scope":2017,"src":"16002:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1970,"name":"address","nodeType":"ElementaryTypeName","src":"16002:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1971,"nodeType":"ArrayTypeName","src":"16002:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15981:47:2"},"returnParameters":{"id":1977,"nodeType":"ParameterList","parameters":[],"src":"16067:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2054,"nodeType":"FunctionDefinition","src":"16837:500:2","nodes":[],"body":{"id":2053,"nodeType":"Block","src":"16945:392:2","nodes":[],"statements":[{"assignments":[2030],"declarations":[{"constant":false,"id":2030,"mutability":"mutable","name":"memberLength","nameLocation":"16963:12:2","nodeType":"VariableDeclaration","scope":2053,"src":"16955:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2029,"name":"uint256","nodeType":"ElementaryTypeName","src":"16955:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2033,"initialValue":{"expression":{"id":2031,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"16978:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:6:2","memberName":"length","nodeType":"MemberAccess","src":"16978:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16955:38:2"},{"body":{"id":2051,"nodeType":"Block","src":"17129:202:2","statements":[{"expression":{"arguments":[{"id":2041,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"17237:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":2042,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"17249:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2044,"indexExpression":{"id":2043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17258:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17249:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2040,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"17225:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17225:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2046,"nodeType":"ExpressionStatement","src":"17225:36:2"},{"id":2050,"nodeType":"UncheckedBlock","src":"17275:46:2","statements":[{"expression":{"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17303:3:2","subExpression":{"id":2047,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17305:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2049,"nodeType":"ExpressionStatement","src":"17303:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2037,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17110:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2038,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"17114:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17110:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2052,"initializationExpression":{"assignments":[2035],"declarations":[{"constant":false,"id":2035,"mutability":"mutable","name":"i","nameLocation":"17107:1:2","nodeType":"VariableDeclaration","scope":2052,"src":"17099:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"17099:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2036,"nodeType":"VariableDeclarationStatement","src":"17099:9:2"},"nodeType":"ForStatement","src":"17094:237:2"}]},"baseFunctions":[2793],"documentation":{"id":2018,"nodeType":"StructuredDocumentation","src":"16626:206:2","text":"@notice Removes members from the profile\n @dev 'msg.sender' must be the pending owner of the profile.\n @param _profileId The ID of the profile\n @param _members The members to remove"},"functionSelector":"e0cf1e4c","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2026,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"16933:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2027,"kind":"modifierInvocation","modifierName":{"id":2025,"name":"onlyProfileOwner","nameLocations":["16916:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"16916:16:2"},"nodeType":"ModifierInvocation","src":"16916:28:2"}],"name":"removeMembers","nameLocation":"16846:13:2","parameters":{"id":2024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2020,"mutability":"mutable","name":"_profileId","nameLocation":"16868:10:2","nodeType":"VariableDeclaration","scope":2054,"src":"16860:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16860:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2023,"mutability":"mutable","name":"_members","nameLocation":"16897:8:2","nodeType":"VariableDeclaration","scope":2054,"src":"16880:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2021,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2022,"nodeType":"ArrayTypeName","src":"16880:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"16859:47:2"},"returnParameters":{"id":2028,"nodeType":"ParameterList","parameters":[],"src":"16945:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2071,"nodeType":"FunctionDefinition","src":"17659:152:2","nodes":[],"body":{"id":2070,"nodeType":"Block","src":"17725:86:2","nodes":[],"statements":[{"condition":{"id":2065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17739:42:2","subExpression":{"arguments":[{"id":2061,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"17758:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":2062,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17770:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17774:6:2","memberName":"sender","nodeType":"MemberAccess","src":"17770:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2060,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"17740:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17740:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2069,"nodeType":"IfStatement","src":"17735:69:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2066,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"17790:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17790:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2068,"nodeType":"RevertStatement","src":"17783:21:2"}}]},"documentation":{"id":2055,"nodeType":"StructuredDocumentation","src":"17479:175:2","text":"@notice Checks if the caller is the owner of the profile\n @dev Internal function used by modifier 'onlyProfileOwner'\n @param _profileId The ID of the profile"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyProfileOwner","nameLocation":"17668:22:2","parameters":{"id":2058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2057,"mutability":"mutable","name":"_profileId","nameLocation":"17699:10:2","nodeType":"VariableDeclaration","scope":2071,"src":"17691:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17691:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17690:20:2"},"returnParameters":{"id":2059,"nodeType":"ParameterList","parameters":[],"src":"17725:0:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2192,"nodeType":"FunctionDefinition","src":"18166:969:2","nodes":[],"body":{"id":2191,"nodeType":"Block","src":"18266:869:2","nodes":[],"statements":[{"assignments":[2082],"declarations":[{"constant":false,"id":2082,"mutability":"mutable","name":"encodedData","nameLocation":"18289:11:2","nodeType":"VariableDeclaration","scope":2191,"src":"18276:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2081,"name":"bytes","nodeType":"ElementaryTypeName","src":"18276:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2088,"initialValue":{"arguments":[{"id":2085,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18314:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2086,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"18326:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2083,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18303:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18307:6:2","memberName":"encode","nodeType":"MemberAccess","src":"18303:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18303:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18276:56:2"},{"assignments":[2090],"declarations":[{"constant":false,"id":2090,"mutability":"mutable","name":"encodedConstructorArgs","nameLocation":"18355:22:2","nodeType":"VariableDeclaration","scope":2191,"src":"18342:35:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2089,"name":"bytes","nodeType":"ElementaryTypeName","src":"18342:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2099,"initialValue":{"arguments":[{"id":2093,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18391:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2096,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18411:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18403:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2094,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:2","typeDescriptions":{}}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18403:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18380:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18384:6:2","memberName":"encode","nodeType":"MemberAccess","src":"18380:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18380:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18342:75:2"},{"assignments":[2101],"declarations":[{"constant":false,"id":2101,"mutability":"mutable","name":"bytecode","nameLocation":"18441:8:2","nodeType":"VariableDeclaration","scope":2191,"src":"18428:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2100,"name":"bytes","nodeType":"ElementaryTypeName","src":"18428:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2110,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":2105,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"18474:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}],"id":2104,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18469:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18469:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Anchor_$1492","typeString":"type(contract Anchor)"}},"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18482:12:2","memberName":"creationCode","nodeType":"MemberAccess","src":"18469:25:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2108,"name":"encodedConstructorArgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"18496:22:2","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"}],"expression":{"id":2102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18452:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18456:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"18452:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18452:67:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18428:91:2"},{"assignments":[2112],"declarations":[{"constant":false,"id":2112,"mutability":"mutable","name":"salt","nameLocation":"18538:4:2","nodeType":"VariableDeclaration","scope":2191,"src":"18530:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2116,"initialValue":{"arguments":[{"id":2114,"name":"encodedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"18555:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2113,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18545:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18545:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18530:37:2"},{"assignments":[2118],"declarations":[{"constant":false,"id":2118,"mutability":"mutable","name":"preComputedAddress","nameLocation":"18586:18:2","nodeType":"VariableDeclaration","scope":2191,"src":"18578:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2117,"name":"address","nodeType":"ElementaryTypeName","src":"18578:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2145,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786666","id":2130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18678:4:2","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":2129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18671:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2128,"name":"bytes1","nodeType":"ElementaryTypeName","src":"18671:6:2","typeDescriptions":{}}},"id":2131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18671:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":2134,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18693:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18685:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2132,"name":"address","nodeType":"ElementaryTypeName","src":"18685:7:2","typeDescriptions":{}}},"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18685:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2136,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"18700:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2138,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2101,"src":"18716:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2137,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18706:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18706:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18654:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18658:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"18654:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18654:72:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2125,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18644:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18644:83:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18636:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"18636:7:2","typeDescriptions":{}}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18636:92:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18628:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2121,"name":"uint160","nodeType":"ElementaryTypeName","src":"18628:7:2","typeDescriptions":{}}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18628:101:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18607:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2119,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:2","typeDescriptions":{}}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:132:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18578:161:2"},{"clauses":[{"block":{"id":2168,"nodeType":"Block","src":"18918:50:2","statements":[{"expression":{"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2161,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"18932:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2164,"name":"_anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2159,"src":"18949:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}],"id":2163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18941:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2162,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:2","typeDescriptions":{}}},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18941:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18932:25:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2167,"nodeType":"ExpressionStatement","src":"18932:25:2"}]},"errorName":"","id":2169,"nodeType":"TryCatchClause","parameters":{"id":2160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2159,"mutability":"mutable","name":"_anchor","nameLocation":"18909:7:2","nodeType":"VariableDeclaration","scope":2169,"src":"18902:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"},"typeName":{"id":2158,"nodeType":"UserDefinedTypeName","pathNode":{"id":2157,"name":"Anchor","nameLocations":["18902:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":1492,"src":"18902:6:2"},"referencedDeclaration":1492,"src":"18902:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"visibility":"internal"}],"src":"18901:16:2"},"src":"18893:75:2"},{"block":{"id":2188,"nodeType":"Block","src":"18975:154:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":2173,"name":"preComputedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"19008:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19000:8:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"19000:8:2","stateMutability":"payable","typeDescriptions":{}}},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19000:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":2170,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"18993:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18993:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19029:9:2","memberName":"profileId","nodeType":"MemberAccess","referencedDeclaration":1408,"src":"18993:45:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18993:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2178,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"19044:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18993:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2183,"nodeType":"IfStatement","src":"18989:88:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2180,"name":"ANCHOR_ERROR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"19063:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19063:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2182,"nodeType":"RevertStatement","src":"19056:21:2"}},{"expression":{"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2184,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"19091:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2185,"name":"preComputedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"19100:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19091:27:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2187,"nodeType":"ExpressionStatement","src":"19091:27:2"}]},"errorName":"","id":2189,"nodeType":"TryCatchClause","src":"18969:160:2"}],"externalCall":{"arguments":[{"id":2151,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18866:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2154,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18886:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2152,"name":"address","nodeType":"ElementaryTypeName","src":"18878:7:2","typeDescriptions":{}}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18843:10:2","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_Anchor_$1492_$","typeString":"function (bytes32,address) returns (contract Anchor)"},"typeName":{"id":2147,"nodeType":"UserDefinedTypeName","pathNode":{"id":2146,"name":"Anchor","nameLocations":["18847:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":1492,"src":"18847:6:2"},"referencedDeclaration":1492,"src":"18847:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}}},"id":2150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":2149,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"18860:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"18843:22:2","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_Anchor_$1492_$salt","typeString":"function (bytes32,address) returns (contract Anchor)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18843:49:2","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"id":2190,"nodeType":"TryStatement","src":"18839:290:2"}]},"documentation":{"id":2072,"nodeType":"StructuredDocumentation","src":"17817:344:2","text":"@notice Generates and deploys the anchor for the given 'profileId' and name\n @dev Internal function used by 'createProfile()' and 'updateProfileName()' to create and anchor.\n @param _profileId The ID of the profile\n @param _name The name of the profile\n @return anchor The address of the deployed anchor contract"},"implemented":true,"kind":"function","modifiers":[],"name":"_generateAnchor","nameLocation":"18175:15:2","parameters":{"id":2077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2074,"mutability":"mutable","name":"_profileId","nameLocation":"18199:10:2","nodeType":"VariableDeclaration","scope":2192,"src":"18191:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18191:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2076,"mutability":"mutable","name":"_name","nameLocation":"18225:5:2","nodeType":"VariableDeclaration","scope":2192,"src":"18211:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2075,"name":"string","nodeType":"ElementaryTypeName","src":"18211:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18190:41:2"},"returnParameters":{"id":2080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2079,"mutability":"mutable","name":"anchor","nameLocation":"18258:6:2","nodeType":"VariableDeclaration","scope":2192,"src":"18250:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2078,"name":"address","nodeType":"ElementaryTypeName","src":"18250:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18249:16:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2211,"nodeType":"FunctionDefinition","src":"19465:159:2","nodes":[],"body":{"id":2210,"nodeType":"Block","src":"19557:67:2","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":2205,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"19601:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2206,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"19609:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19584:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19588:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"19584:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19584:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2202,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19574:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19574:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2201,"id":2209,"nodeType":"Return","src":"19567:50:2"}]},"documentation":{"id":2193,"nodeType":"StructuredDocumentation","src":"19141:319:2","text":"@notice Generates the 'profileId' based on msg.sender and nonce\n @dev Internal function used by 'createProfile()' to generate profileId.\n @param _nonce Nonce provided by the caller to generate 'profileId'\n @param _owner The owner of the profile\n @return 'profileId' The ID of the profile"},"implemented":true,"kind":"function","modifiers":[],"name":"_generateProfileId","nameLocation":"19474:18:2","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2195,"mutability":"mutable","name":"_nonce","nameLocation":"19501:6:2","nodeType":"VariableDeclaration","scope":2211,"src":"19493:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2194,"name":"uint256","nodeType":"ElementaryTypeName","src":"19493:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"_owner","nameLocation":"19517:6:2","nodeType":"VariableDeclaration","scope":2211,"src":"19509:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"19509:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19492:32:2"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2211,"src":"19548:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19548:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19547:9:2"},"scope":2295,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2229,"nodeType":"FunctionDefinition","src":"19963:156:2","nodes":[],"body":{"id":2228,"nodeType":"Block","src":"20055:64:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":2221,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"20072:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":2223,"indexExpression":{"id":2222,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"20085:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20072:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":2224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20097:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"20072:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2225,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"20106:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20072:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2220,"id":2227,"nodeType":"Return","src":"20065:47:2"}]},"documentation":{"id":2212,"nodeType":"StructuredDocumentation","src":"19630:328:2","text":"@notice Checks if an address is the owner of the profile\n @dev Internal function used to determine if an address is the profile owner\n @param _profileId The 'profileId' of the profile\n @param _owner The address to check\n @return 'true' if the address is an owner of the profile, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOwnerOfProfile","nameLocation":"19972:17:2","parameters":{"id":2217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2214,"mutability":"mutable","name":"_profileId","nameLocation":"19998:10:2","nodeType":"VariableDeclaration","scope":2229,"src":"19990:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19990:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2216,"mutability":"mutable","name":"_owner","nameLocation":"20018:6:2","nodeType":"VariableDeclaration","scope":2229,"src":"20010:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2215,"name":"address","nodeType":"ElementaryTypeName","src":"20010:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19989:36:2"},"returnParameters":{"id":2220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2229,"src":"20049:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2218,"name":"bool","nodeType":"ElementaryTypeName","src":"20049:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20048:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2245,"nodeType":"FunctionDefinition","src":"20464:146:2","nodes":[],"body":{"id":2244,"nodeType":"Block","src":"20558:52:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":2240,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"20583:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2241,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2234,"src":"20595:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2239,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"20575:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20575:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2238,"id":2243,"nodeType":"Return","src":"20568:35:2"}]},"documentation":{"id":2230,"nodeType":"StructuredDocumentation","src":"20125:334:2","text":"@notice Checks if an address is a member of the profile\n @dev Internal function used to determine if an address is a member of the profile\n @param _profileId The 'profileId' of the profile\n @param _member The address to check\n @return 'true' if the address is a member of the profile, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isMemberOfProfile","nameLocation":"20473:18:2","parameters":{"id":2235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2232,"mutability":"mutable","name":"_profileId","nameLocation":"20500:10:2","nodeType":"VariableDeclaration","scope":2245,"src":"20492:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20492:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2234,"mutability":"mutable","name":"_member","nameLocation":"20520:7:2","nodeType":"VariableDeclaration","scope":2245,"src":"20512:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2233,"name":"address","nodeType":"ElementaryTypeName","src":"20512:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20491:37:2"},"returnParameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2245,"src":"20552:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2236,"name":"bool","nodeType":"ElementaryTypeName","src":"20552:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20551:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2294,"nodeType":"FunctionDefinition","src":"20847:318:2","nodes":[],"body":{"id":2293,"nodeType":"Block","src":"20935:230:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2256,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"20949:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20971:1:2","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":2258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20963:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2257,"name":"address","nodeType":"ElementaryTypeName","src":"20963:7:2","typeDescriptions":{}}},"id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20949:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2265,"nodeType":"IfStatement","src":"20945:51:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2262,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"20982:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20982:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2264,"nodeType":"RevertStatement","src":"20975:21:2"}},{"assignments":[2267],"declarations":[{"constant":false,"id":2267,"mutability":"mutable","name":"amount","nameLocation":"21015:6:2","nodeType":"VariableDeclaration","scope":2293,"src":"21007:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2266,"name":"uint256","nodeType":"ElementaryTypeName","src":"21007:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2286,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2268,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21024:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2269,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"21034:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21024:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":2282,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21099:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21091:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2280,"name":"address","nodeType":"ElementaryTypeName","src":"21091:7:2","typeDescriptions":{}}},"id":2283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21091:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":2277,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21073:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2276,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"21067:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$4491_$","typeString":"type(contract ERC20)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$4491","typeString":"contract ERC20"}},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21081:9:2","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":4200,"src":"21067:23:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21024:81:2","trueExpression":{"expression":{"arguments":[{"id":2273,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21051:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21043:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2271,"name":"address","nodeType":"ElementaryTypeName","src":"21043:7:2","typeDescriptions":{}}},"id":2274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21043:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21057:7:2","memberName":"balance","nodeType":"MemberAccess","src":"21043:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21007:98:2"},{"expression":{"arguments":[{"id":2288,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21131:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2289,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"21139:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2290,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"21151:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2287,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"21115:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21115:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2292,"nodeType":"ExpressionStatement","src":"21115:43:2"}]},"baseFunctions":[2801],"documentation":{"id":2246,"nodeType":"StructuredDocumentation","src":"20616:226:2","text":"@notice Transfers any fund balance in Allo to the recipient\n @dev 'msg.sender' must be the Allo owner\n @param _token The address of the token to transfer\n @param _recipient The address of the recipient"},"functionSelector":"24ae6a27","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2253,"name":"ALLO_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"20923:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2254,"kind":"modifierInvocation","modifierName":{"id":2252,"name":"onlyRole","nameLocations":["20914:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":52442,"src":"20914:8:2"},"nodeType":"ModifierInvocation","src":"20914:20:2"}],"name":"recoverFunds","nameLocation":"20856:12:2","parameters":{"id":2251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"_token","nameLocation":"20877:6:2","nodeType":"VariableDeclaration","scope":2294,"src":"20869:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2247,"name":"address","nodeType":"ElementaryTypeName","src":"20869:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2250,"mutability":"mutable","name":"_recipient","nameLocation":"20893:10:2","nodeType":"VariableDeclaration","scope":2294,"src":"20885:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2249,"name":"address","nodeType":"ElementaryTypeName","src":"20885:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20868:36:2"},"returnParameters":{"id":2255,"nodeType":"ParameterList","parameters":[],"src":"20935:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":1509,"name":"IRegistry","nameLocations":["5258:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"5258:9:2"},"id":1510,"nodeType":"InheritanceSpecifier","src":"5258:9:2"},{"baseName":{"id":1511,"name":"Initializable","nameLocations":["5269:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":53191,"src":"5269:13:2"},"id":1512,"nodeType":"InheritanceSpecifier","src":"5269:13:2"},{"baseName":{"id":1513,"name":"Native","nameLocations":["5284:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"5284:6:2"},"id":1514,"nodeType":"InheritanceSpecifier","src":"5284:6:2"},{"baseName":{"id":1515,"name":"AccessControlUpgradeable","nameLocations":["5292:24:2"],"nodeType":"IdentifierPath","referencedDeclaration":52736,"src":"5292:24:2"},"id":1516,"nodeType":"InheritanceSpecifier","src":"5292:24:2"},{"baseName":{"id":1517,"name":"Transfer","nameLocations":["5318:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3317,"src":"5318:8:2"},"id":1518,"nodeType":"InheritanceSpecifier","src":"5318:8:2"},{"baseName":{"id":1519,"name":"Errors","nameLocations":["5328:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"5328:6:2"},"id":1520,"nodeType":"InheritanceSpecifier","src":"5328:6:2"}],"canonicalName":"Registry","contractDependencies":[1492],"contractKind":"contract","documentation":{"id":1508,"nodeType":"StructuredDocumentation","src":"4584:653:2","text":"@title Registry Contract\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice Registry contract for creating and managing profiles\n @dev This contract is used to create and manage profiles for the Allo protocol\n It is also used to deploy the anchor contract for each profile which acts as a proxy\n for the profile and is used to receive funds and execute transactions on behalf of the profile\n The Registry is also used to add and remove members from a profile and update the profile 'Metadata'"},"fullyImplemented":true,"linearizedBaseContracts":[2295,3089,3317,52736,3106,54009,54021,52809,53735,53191,2802],"name":"Registry","nameLocation":"5246:8:2","scope":2296,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117]}],"license":"AGPL-3.0-only"},"id":2} \ No newline at end of file +{"abi":[{"type":"function","name":"ALLO_OWNER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"acceptProfileOwnership","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"anchorToProfileId","inputs":[{"name":"","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"createProfile","inputs":[{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_name","type":"string","internalType":"string"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_owner","type":"address","internalType":"address"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"nonpayable"},{"type":"function","name":"getProfileByAnchor","inputs":[{"name":"_anchor","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getProfileById","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IRegistry.Profile","components":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}]}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_owner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isOwnerOrMemberOfProfile","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"profileIdToPendingOwner","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profilesById","inputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"id","type":"bytes32","internalType":"bytes32"},{"name":"nonce","type":"uint256","internalType":"uint256"},{"name":"name","type":"string","internalType":"string"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","internalType":"address"},{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"recoverFunds","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_recipient","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeMembers","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_members","type":"address[]","internalType":"address[]"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"updateProfileMetadata","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfileName","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_name","type":"string","internalType":"string"}],"outputs":[{"name":"anchor","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"updateProfilePendingOwner","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_pendingOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"ProfileCreated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"nonce","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"owner","type":"address","indexed":false,"internalType":"address"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileMetadataUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"ProfileNameUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"name","type":"string","indexed":false,"internalType":"string"},{"name":"anchor","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfileOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"owner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProfilePendingOwnerUpdated","inputs":[{"name":"profileId","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"pendingOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"ALLOCATION_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"ALLOCATION_NOT_ENDED","inputs":[]},{"type":"error","name":"ALREADY_INITIALIZED","inputs":[]},{"type":"error","name":"AMOUNT_MISMATCH","inputs":[]},{"type":"error","name":"ANCHOR_ERROR","inputs":[]},{"type":"error","name":"ARRAY_MISMATCH","inputs":[]},{"type":"error","name":"INVALID","inputs":[]},{"type":"error","name":"INVALID_ADDRESS","inputs":[]},{"type":"error","name":"INVALID_FEE","inputs":[]},{"type":"error","name":"INVALID_METADATA","inputs":[]},{"type":"error","name":"INVALID_REGISTRATION","inputs":[]},{"type":"error","name":"IS_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"MISMATCH","inputs":[]},{"type":"error","name":"NONCE_NOT_AVAILABLE","inputs":[]},{"type":"error","name":"NOT_APPROVED_STRATEGY","inputs":[]},{"type":"error","name":"NOT_ENOUGH_FUNDS","inputs":[]},{"type":"error","name":"NOT_IMPLEMENTED","inputs":[]},{"type":"error","name":"NOT_INITIALIZED","inputs":[]},{"type":"error","name":"NOT_PENDING_OWNER","inputs":[]},{"type":"error","name":"POOL_ACTIVE","inputs":[]},{"type":"error","name":"POOL_INACTIVE","inputs":[]},{"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED","inputs":[]},{"type":"error","name":"RECIPIENT_ERROR","inputs":[{"name":"recipientId","type":"address","internalType":"address"}]},{"type":"error","name":"RECIPIENT_NOT_ACCEPTED","inputs":[]},{"type":"error","name":"REGISTRATION_NOT_ACTIVE","inputs":[]},{"type":"error","name":"UNAUTHORIZED","inputs":[]},{"type":"error","name":"ZERO_ADDRESS","inputs":[]}],"bytecode":{"object":"0x608060405234801561001057600080fd5b50612e96806100206000396000f3fe60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220cdc427901f944eab413c9e6a1953326681cbf57c8d1bb72ca90249af1605f34f64736f6c63430008130033a26469706673582212203329b083b1925ebe3ab387f775426e0d559db963680c045a28cf2ca908a06cb364736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040523480156200001157600080fd5b5060043610620001d15760003560e01c806350d005e01162000101578063c4d66de811620000a3578063d547741f116200007a578063d547741f1462000480578063dd93da431462000497578063e0cf1e4c14620004ae578063ee88819614620004c557600080fd5b8063c4d66de8146200042a578063cf189ff21462000441578063cfda7e0a146200045857600080fd5b8063a0cf0aea11620000d8578063a0cf0aea14620003ee578063a217fddf146200040a578063ac402839146200041357600080fd5b806350d005e014620003565780635e8a7915146200039b57806391d1485414620003b257600080fd5b80632f2ff15d11620001775780633a92f65f116200014e5780633a92f65f14620002ee5780633b66dacd14620003055780634756487f146200031c5780635063f361146200033f57600080fd5b80632f2ff15d14620002a957806336568abe14620002c057806339b86b8c14620002d757600080fd5b8063248a9ca311620001ac578063248a9ca314620002445780632497f3c6146200027957806324ae6a27146200029257600080fd5b80630114cf0a14620001d657806301ffc9a714620002055780630ec1fbac146200022d575b600080fd5b620001ed620001e736600462001c07565b620004f0565b604051620001fc919062001c9e565b60405180910390f35b6200021c6200021636600462001d1f565b620006a7565b6040519015158152602001620001fc565b6200021c6200023e36600462001d80565b62000741565b6200026a6200025536600462001c07565b60009081526065602052604090206001015490565b604051908152602001620001fc565b620002906200028a36600462001c07565b62000756565b005b62000290620002a336600462001daf565b62000835565b62000290620002ba36600462001d80565b62000951565b62000290620002d136600462001d80565b6200097f565b6200021c620002e836600462001d80565b62000a13565b6200026a620002ff36600462001fa7565b62000a39565b620002906200031636600462001d80565b62000cea565b6200026a6200032d36600462002056565b60976020526000908152604090205481565b620002906200035036600462002074565b62000d61565b620003826200036736600462001c07565b6099602052600090815260409020546001600160a01b031681565b6040516001600160a01b039091168152602001620001fc565b6200021c620003ac36600462001d80565b62000ded565b6200021c620003c336600462001d80565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6200038273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b6200026a600081565b6200029062000424366004620020bf565b62000e20565b620002906200043b36600462002056565b62000e93565b620003826200045236600462002100565b62000fd7565b6200026a7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274781565b620002906200049136600462001d80565b620010a5565b620001ed620004a836600462002056565b620010ce565b62000290620004bf36600462002074565b62001297565b620004dc620004d636600462001c07565b620012e2565b604051620001fc9695949392919062002141565b620004fa62001ba4565b609860008381526020019081526020016000206040518060c001604052908160008201548152602001600182015481526020016002820180546200053e906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200056c906200219d565b8015620005bd5780601f106200059157610100808354040283529160200191620005bd565b820191906000526020600020905b8154815290600101906020018083116200059f57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620005f2906200219d565b80601f016020809104026020016040519081016040528092919081815260200182805462000620906200219d565b8015620006715780601f10620006455761010080835404028352916020019162000671565b820191906000526020600020905b8154815290600101906020018083116200065357829003601f168201915b50505091909252505050815260058201546001600160a01b03908116602083015260069092015490911660409091015292915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806200073b57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60006200074f838362001462565b9392505050565b60008181526098602090815260408083206099909252909120546001600160a01b0316338114620007b3576040517fb4d48c1000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6005820180546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff199283161783556000868152609960209081526040918290208054909416909355925492519216825284917ffd9ad63830df7bdf1586c8293dc88a30864cb43e9037e7afdb2c7210facf217d91015b60405180910390a2505050565b7f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274762000861816200148e565b6001600160a01b038216620008895760405163538ba4f960e01b815260040160405180910390fd5b60006001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee146200093a576040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038516906370a0823190602401602060405180830381865afa1580156200090e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009349190620021d9565b6200093c565b475b90506200094b8484836200149d565b50505050565b6000828152606560205260409020600101546200096e816200148e565b6200097a8383620014e7565b505050565b6001600160a01b038116331462000a035760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b62000a0f82826200158b565b5050565b6000828152609860205260408120600501546001600160a01b038381169116146200074f565b60008062000a4887856200160f565b6000818152609860205260409020600601549091506001600160a01b03161562000a9e576040517f527e059000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03841662000ac65760405163538ba4f960e01b815260040160405180910390fd5b60006040518060c00160405280838152602001898152602001888152602001878152602001866001600160a01b0316815260200162000b06848a6200165e565b6001600160a01b0316905260008381526098602090815260409182902083518155908301516001820155908201519192508291600282019062000b4a908262002245565b5060608201518051600383019081556020820151600484019062000b6f908262002245565b505050608082015160058201805473ffffffffffffffffffffffffffffffffffffffff199081166001600160a01b039384161790915560a0938401516006909301805490911692821692909217909155908201511660009081526097602052604090208290558351801580159062000bf057506001600160a01b0386163314155b1562000c0f5760405163075fd2b160e01b815260040160405180910390fd5b60005b8181101562000c8657600086828151811062000c325762000c3262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000c705760405163538ba4f960e01b815260040160405180910390fd5b62000c7c8582620014e7565b5060010162000c12565b50827f1e28352ff00d67474b59b87e6817d6ba65daa0130446266db8640214d8b8060983602001518460400151856060015186608001518760a0015160405162000cd595949392919062002328565b60405180910390a25090979650505050505050565b8162000cf6816200186c565b600083815260996020908152604091829020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038616908117909155915191825284917f21fe5cd61055ef88f636a264885b927f3ec2b380b6053a6b4a7495a6336a95c8910162000828565b8162000d6d816200186c565b815160005b8181101562000de657600084828151811062000d925762000d9262002312565b6020026020010151905060006001600160a01b0316816001600160a01b03160362000dd05760405163538ba4f960e01b815260040160405180910390fd5b62000ddc8682620014e7565b5060010162000d72565b5050505050565b6000828152609860205260408120600501546001600160a01b03838116911614806200074f57506200074f838362001462565b8162000e2c816200186c565b6000838152609860209081526040909120835160038201908155918401518492916004019062000e5d908262002245565b50905050827fa366054a574e4f861cb295fd23b5440c5119c1ba329c36f5dfeb5643537cb0f3836040516200082891906200237d565b600054600190610100900460ff1615801562000eb6575060005460ff8083169116105b62000f2a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620009fa565b6000805461ffff191660ff8316176101001790556001600160a01b03821662000f665760405163538ba4f960e01b815260040160405180910390fd5b62000f927f815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e688274783620014e7565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b60008262000fe5816200186c565b62000ff184846200165e565b60008581526098602052604090209092506002810162001012858262002245565b506006810180546001600160a01b03908116600090815260976020526040808220829055835473ffffffffffffffffffffffffffffffffffffffff19169287169283179093559081528190208690555185907f54cd733148631b9ff1cb945f2d0dcd33c0692e154763bfa2f35e2d10a76c432f9062001095908790879062002392565b60405180910390a2505092915050565b600082815260656020526040902060010154620010c2816200148e565b6200097a83836200158b565b620010d862001ba4565b6001600160a01b0382166000908152609760209081526040808320548084526098835292819020815160c0810183528154815260018201549381019390935260028101805491928401916200112d906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200115b906200219d565b8015620011ac5780601f106200118057610100808354040283529160200191620011ac565b820191906000526020600020905b8154815290600101906020018083116200118e57829003601f168201915b505050505081526020016003820160405180604001604052908160008201548152602001600182018054620011e1906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200120f906200219d565b8015620012605780601f10620012345761010080835404028352916020019162001260565b820191906000526020600020905b8154815290600101906020018083116200124257829003601f168201915b50505091909252505050815260058201546001600160a01b0390811660208301526006909201549091166040909101529392505050565b81620012a3816200186c565b815160005b8181101562000de657620012d985858381518110620012cb57620012cb62002312565b60200260200101516200158b565b600101620012a8565b609860205260009081526040902080546001820154600283018054929391926200130c906200219d565b80601f01602080910402602001604051908101604052809291908181526020018280546200133a906200219d565b80156200138b5780601f106200135f576101008083540402835291602001916200138b565b820191906000526020600020905b8154815290600101906020018083116200136d57829003601f168201915b5050505050908060030160405180604001604052908160008201548152602001600182018054620013bc906200219d565b80601f0160208091040260200160405190810160405280929190818152602001828054620013ea906200219d565b80156200143b5780601f106200140f576101008083540402835291602001916200143b565b820191906000526020600020905b8154815290600101906020018083116200141d57829003601f168201915b50505091909252505050600582015460069092015490916001600160a01b03908116911686565b60008281526065602090815260408083206001600160a01b038516845290915281205460ff166200074f565b6200149a8133620018a7565b50565b7fffffffffffffffffffffffff11111111111111111111111111111111111111126001600160a01b03841601620014da576200097a828262001925565b6200097a83838362001942565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620015473390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60008281526065602090815260408083206001600160a01b038516845290915290205460ff161562000a0f5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b600082826040516020016200164092919091825260601b6bffffffffffffffffffffffff1916602082015260340190565b60405160208183030381529060405280519060200120905092915050565b600080838360405160200162001676929190620023bf565b60408051808303601f1901815282825260208301879052308383015281518084038301815260608401928390529093509160009190620016b99060800162001bf9565b601f1982820381018352601f909101166040819052620016df91908490602001620023da565b60408051601f198184030181529082905284516020868101919091208251828401207fff00000000000000000000000000000000000000000000000000000000000000928501929092526bffffffffffffffffffffffff193060601b166021850152603584018190526055840191909152909250906000906075016040516020818303038152906040528051906020012060001c9050818830604051620017869062001bf9565b9182526001600160a01b031660208201526040018190604051809103906000f590508015620017b25760015b6200185e5787816001600160a01b03166308386eba6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181d9190620021d9565b1462001855576040517f113b81f000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80955062001861565b95505b505050505092915050565b6000818152609860205260409020600501546001600160a01b031633146200149a5760405163075fd2b160e01b815260040160405180910390fd5b60008281526065602090815260408083206001600160a01b038516845290915290205460ff1662000a0f57620018dd8162001992565b620018ea836020620019a5565b604051602001620018fd9291906200240d565b60408051601f198184030181529082905262461bcd60e51b8252620009fa9160040162002492565b60008060008084865af162000a0f5763b12d13eb6000526004601cfd5b81601452806034526fa9059cbb00000000000000000000000060005260206000604460106000875af13d15600160005114171662001988576390b8ec186000526004601cfd5b6000603452505050565b60606200073b6001600160a01b03831660145b60606000620019b6836002620024bd565b620019c3906002620024d7565b67ffffffffffffffff811115620019de57620019de62001dde565b6040519080825280601f01601f19166020018201604052801562001a09576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811062001a435762001a4362002312565b60200101906001600160f81b031916908160001a9053507f78000000000000000000000000000000000000000000000000000000000000008160018151811062001a915762001a9162002312565b60200101906001600160f81b031916908160001a905350600062001ab7846002620024bd565b62001ac4906001620024d7565b90505b600181111562001b53577f303132333435363738396162636465660000000000000000000000000000000085600f166010811062001b095762001b0962002312565b1a60f81b82828151811062001b225762001b2262002312565b60200101906001600160f81b031916908160001a90535060049490941c9362001b4b81620024ed565b905062001ac7565b5083156200074f5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401620009fa565b6040518060c0016040528060008019168152602001600081526020016060815260200162001be5604051806040016040528060008152602001606081525090565b815260006020820181905260409091015290565b610959806200250883390190565b60006020828403121562001c1a57600080fd5b5035919050565b60005b8381101562001c3e57818101518382015260200162001c24565b50506000910152565b6000815180845262001c6181602086016020860162001c21565b601f01601f19169290920160200192915050565b80518252600060208201516040602085015262001c96604085018262001c47565b949350505050565b6020815281516020820152602082015160408201526000604083015160c0606084015262001cd060e084018262001c47565b90506060840151601f1984830301608085015262001cef828262001c75565b91505060808401516001600160a01b0380821660a08601528060a08701511660c086015250508091505092915050565b60006020828403121562001d3257600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200074f57600080fd5b80356001600160a01b038116811462001d7b57600080fd5b919050565b6000806040838503121562001d9457600080fd5b8235915062001da66020840162001d63565b90509250929050565b6000806040838503121562001dc357600080fd5b62001dce8362001d63565b915062001da66020840162001d63565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562001e205762001e2062001dde565b604052919050565b600082601f83011262001e3a57600080fd5b813567ffffffffffffffff81111562001e575762001e5762001dde565b62001e6c601f8201601f191660200162001df4565b81815284602083860101111562001e8257600080fd5b816020850160208301376000918101602001919091529392505050565b60006040828403121562001eb257600080fd5b6040516040810167ffffffffffffffff828210818311171562001ed95762001ed962001dde565b8160405282935084358352602085013591508082111562001ef957600080fd5b5062001f088582860162001e28565b6020830152505092915050565b600082601f83011262001f2757600080fd5b8135602067ffffffffffffffff82111562001f465762001f4662001dde565b8160051b62001f5782820162001df4565b928352848101820192828101908785111562001f7257600080fd5b83870192505b8483101562001f9c5762001f8c8362001d63565b8252918301919083019062001f78565b979650505050505050565b600080600080600060a0868803121562001fc057600080fd5b85359450602086013567ffffffffffffffff8082111562001fe057600080fd5b62001fee89838a0162001e28565b955060408801359150808211156200200557600080fd5b6200201389838a0162001e9f565b9450620020236060890162001d63565b935060808801359150808211156200203a57600080fd5b50620020498882890162001f15565b9150509295509295909350565b6000602082840312156200206957600080fd5b6200074f8262001d63565b600080604083850312156200208857600080fd5b82359150602083013567ffffffffffffffff811115620020a757600080fd5b620020b58582860162001f15565b9150509250929050565b60008060408385031215620020d357600080fd5b82359150602083013567ffffffffffffffff811115620020f257600080fd5b620020b58582860162001e9f565b600080604083850312156200211457600080fd5b82359150602083013567ffffffffffffffff8111156200213357600080fd5b620020b58582860162001e28565b86815285602082015260c0604082015260006200216260c083018762001c47565b828103606084015262002176818762001c75565b9150506001600160a01b03808516608084015280841660a084015250979650505050505050565b600181811c90821680620021b257607f821691505b602082108103620021d357634e487b7160e01b600052602260045260246000fd5b50919050565b600060208284031215620021ec57600080fd5b5051919050565b601f8211156200097a57600081815260208120601f850160051c810160208610156200221c5750805b601f850160051c820191505b818110156200223d5782815560010162002228565b505050505050565b815167ffffffffffffffff81111562002262576200226262001dde565b6200227a816200227384546200219d565b84620021f3565b602080601f831160018114620022b25760008415620022995750858301515b600019600386901b1c1916600185901b1785556200223d565b600085815260208120601f198616915b82811015620022e357888601518255948401946001909101908401620022c2565b5085821015620023025787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b85815260a0602082015260006200234360a083018762001c47565b828103604084015262002357818762001c75565b9150506001600160a01b0380851660608401528084166080840152509695505050505050565b6020815260006200074f602083018462001c75565b604081526000620023a7604083018562001c47565b90506001600160a01b03831660208301529392505050565b82815260406020820152600062001c96604083018462001c47565b60008351620023ee81846020880162001c21565b8351908301906200240481836020880162001c21565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516200244781601785016020880162001c21565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516200248681602884016020880162001c21565b01602801949350505050565b6020815260006200074f602083018462001c47565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200073b576200073b620024a7565b808201808211156200073b576200073b620024a7565b600081620024ff57620024ff620024a7565b50600019019056fe60c060405234801561001057600080fd5b5060405161095938038061095983398101604081905261002f91610043565b6001600160a01b031660805260a052610080565b6000806040838503121561005657600080fd5b825160208401519092506001600160a01b038116811461007557600080fd5b809150509250929050565b60805160a0516108a76100b26000396000818160c701526102e8015260008181610166015261031701526108a76000f3fe6080604052600436106100745760003560e01c80637b1039991161004e5780637b10399914610154578063b61d27f6146101a0578063bc197c81146101cd578063f23a6e611461021257600080fd5b806301ffc9a71461008057806308386eba146100b5578063150b7a02146100f757600080fd5b3661007b57005b600080fd5b34801561008c57600080fd5b506100a061009b366004610471565b610257565b60405190151581526020015b60405180910390f35b3480156100c157600080fd5b506100e97f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100ac565b34801561010357600080fd5b5061013b61011236600461058e565b7f150b7a0200000000000000000000000000000000000000000000000000000000949350505050565b6040516001600160e01b031990911681526020016100ac565b34801561016057600080fd5b506101887f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100ac565b3480156101ac57600080fd5b506101c06101bb3660046105f6565b6102c0565b6040516100ac9190610671565b3480156101d957600080fd5b5061013b6101e8366004610724565b7fbc197c810000000000000000000000000000000000000000000000000000000095945050505050565b34801561021e57600080fd5b5061013b61022d3660046107ce565b7ff23a6e610000000000000000000000000000000000000000000000000000000095945050505050565b60006001600160e01b031982167f4e2312e00000000000000000000000000000000000000000000000000000000014806102ba57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316145b92915050565b6040517f39b86b8c0000000000000000000000000000000000000000000000000000000081527f000000000000000000000000000000000000000000000000000000000000000060048201523360248201526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906339b86b8c90604401602060405180830381865afa158015610366573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061038a9190610833565b6103c0576040517f075fd2b100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0384166103e7576040516384aed38d60e01b815260040160405180910390fd5b600080856001600160a01b031685856040516104039190610855565b60006040518083038185875af1925050503d8060008114610440576040519150601f19603f3d011682016040523d82523d6000602084013e610445565b606091505b509150915081610468576040516384aed38d60e01b815260040160405180910390fd5b95945050505050565b60006020828403121561048357600080fd5b81356001600160e01b03198116811461049b57600080fd5b9392505050565b80356001600160a01b03811681146104b957600080fd5b919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715610516576105166104be565b604052919050565b600082601f83011261052f57600080fd5b813567ffffffffffffffff811115610549576105496104be565b61055c601f8201601f19166020016104ed565b81815284602083860101111561057157600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080608085870312156105a457600080fd5b6105ad856104a2565b93506105bb602086016104a2565b925060408501359150606085013567ffffffffffffffff8111156105de57600080fd5b6105ea8782880161051e565b91505092959194509250565b60008060006060848603121561060b57600080fd5b610614846104a2565b925060208401359150604084013567ffffffffffffffff81111561063757600080fd5b6106438682870161051e565b9150509250925092565b60005b83811015610668578181015183820152602001610650565b50506000910152565b602081526000825180602084015261069081604085016020870161064d565b601f01601f19169190910160400192915050565b600082601f8301126106b557600080fd5b8135602067ffffffffffffffff8211156106d1576106d16104be565b8160051b6106e08282016104ed565b92835284810182019282810190878511156106fa57600080fd5b83870192505b8483101561071957823582529183019190830190610700565b979650505050505050565b600080600080600060a0868803121561073c57600080fd5b610745866104a2565b9450610753602087016104a2565b9350604086013567ffffffffffffffff8082111561077057600080fd5b61077c89838a016106a4565b9450606088013591508082111561079257600080fd5b61079e89838a016106a4565b935060808801359150808211156107b457600080fd5b506107c18882890161051e565b9150509295509295909350565b600080600080600060a086880312156107e657600080fd5b6107ef866104a2565b94506107fd602087016104a2565b93506040860135925060608601359150608086013567ffffffffffffffff81111561082757600080fd5b6107c18882890161051e565b60006020828403121561084557600080fd5b8151801515811461049b57600080fd5b6000825161086781846020870161064d565b919091019291505056fea2646970667358221220cdc427901f944eab413c9e6a1953326681cbf57c8d1bb72ca90249af1605f34f64736f6c63430008130033a26469706673582212203329b083b1925ebe3ab387f775426e0d559db963680c045a28cf2ca908a06cb364736f6c63430008130033","sourceMap":"5237:15930:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7472:131;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3050:213:44;;;;;;:::i;:::-;;:::i;:::-;;;2428:14:145;;2421:22;2403:41;;2391:2;2376:18;3050:213:44;2263:187:145;13857:156:2;;;;;;:::i;:::-;;:::i;4855:129:44:-;;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;;;;3061:25:145;;;3049:2;3034:18;4855:129:44;2915:177:145;15016:745:2;;;;;;:::i;:::-;;:::i;:::-;;20847:318;;;;;;:::i;:::-;;:::i;5280:145:44:-;;;;;;:::i;:::-;;:::i;6389:214::-;;;;;;:::i;:::-;;:::i;13452:152:2:-;;;;;;:::i;:::-;;:::i;8781:1901::-;;;;;;:::i;:::-;;:::i;14336:382::-;;;;;;:::i;:::-;;:::i;5544:52::-;;;;;;:::i;:::-;;;;;;;;;;;;;;15962:658;;;;;;:::i;:::-;;:::i;5859:58::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;5859:58:2;;;;;;-1:-1:-1;;;;;7424:55:145;;;7406:74;;7394:2;7379:18;5859:58:2;7260:226:145;12992:208:2;;;;;;:::i;:::-;;:::i;3350:145:44:-;;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;;;;3350:145;4412:75:9;;4445:42;4412:75;;2320:49:44;;2365:4;2320:49;;12309:415:2;;;;;;:::i;:::-;;:::i;6841:257::-;;;;;;:::i;:::-;;:::i;11210:830::-;;;;;;:::i;:::-;;:::i;5974:60::-;;6011:23;5974:60;;5705:147:44;;;;;;:::i;:::-;;:::i;7837:187:2:-;;;;;;:::i;:::-;;:::i;16837:500::-;;;;;;:::i;:::-;;:::i;5702:47::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;;;;;:::i;7472:131::-;7539:14;;:::i;:::-;7572:12;:24;7585:10;7572:24;;;;;;;;;;;7565:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7565:31:2;;;;-1:-1:-1;;;7565:31:2;;;;;;-1:-1:-1;;;;;7565:31:2;;;;;;;;;;;;;;;;;;;;;7472:131;-1:-1:-1;;7472:131:2:o;3050:213:44:-;3135:4;3158:58;;;3173:43;3158:58;;:98;;-1:-1:-1;1204:36:54;1189:51;;;;3220:36:44;3151:105;3050:213;-1:-1:-1;;3050:213:44:o;13857:156:2:-;13944:4;13967:39;13986:10;13998:7;13967:18;:39::i;:::-;13960:46;13857:156;-1:-1:-1;;;13857:156:2:o;15016:745::-;15131:23;15157:24;;;:12;:24;;;;;;;;15301:23;:35;;;;;;;-1:-1:-1;;;;;15301:35:2;15414:10;:22;;15410:54;;15445:19;;;;;;;;;;;;;;15410:54;15550:13;;;:24;;-1:-1:-1;;;;;15550:24:2;;;-1:-1:-1;;15550:24:2;;;;;;-1:-1:-1;15591:35:2;;;:23;:35;;;;;;;;;15584:42;;;;;;;;15740:13;;15708:46;;15740:13;;7406:74:145;;15591:35:2;;15708:46;;7379:18:145;15708:46:2;;;;;;;;15077:684;;15016:745;:::o;20847:318::-;6011:23;2798:16:44;2809:4;2798:10;:16::i;:::-;-1:-1:-1;;;;;20949:24:2;::::1;20945:51;;20982:14;;-1:-1:-1::0;;;20982:14:2::1;;;;;;;;;;;20945:51;21007:14;-1:-1:-1::0;;;;;21024:16:2;::::1;4445:42:9;21024:16:2;:81;;21067:38;::::0;;;;21099:4:::1;21067:38;::::0;::::1;7406:74:145::0;-1:-1:-1;;;;;21067:23:2;::::1;::::0;::::1;::::0;7379:18:145;;21067:38:2::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21024:81;;;21043:21;21024:81;21007:98;;21115:43;21131:6;21139:10;21151:6;21115:15;:43::i;:::-;20935:230;20847:318:::0;;;:::o;5280:145:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;:::-;5280:145:::0;;;:::o;6389:214::-;-1:-1:-1;;;;;6484:23:44;;965:10:52;6484:23:44;6476:83;;;;-1:-1:-1;;;6476:83:44;;9935:2:145;6476:83:44;;;9917:21:145;9974:2;9954:18;;;9947:30;10013:34;9993:18;;;9986:62;10084:17;10064:18;;;10057:45;10119:19;;6476:83:44;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;:::-;6389:214;;:::o;13452:152:2:-;13537:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13560:37;19963:156;8781:1901;8975:7;9060:17;9080:34;9099:6;9107;9080:18;:34::i;:::-;9215:1;9173:23;;;:12;:23;;;;;:30;;;9060:54;;-1:-1:-1;;;;;;9173:30:2;:44;9169:78;;9226:21;;;;;;;;;;;;;;9169:78;-1:-1:-1;;;;;9317:20:2;;9313:47;;9346:14;;-1:-1:-1;;;9346:14:2;;;;;;;;;;;9313:47;9447:22;9472:213;;;;;;;;9498:9;9472:213;;;;9528:6;9472:213;;;;9554:5;9472:213;;;;9583:9;9472:213;;;;9613:6;-1:-1:-1;;;;;9472:213:2;;;;;9641:33;9657:9;9668:5;9641:15;:33::i;:::-;-1:-1:-1;;;;;9472:213:2;;;9696:23;;;;:12;:23;;;;;;;;;:33;;;;;;;;;;;;;;;;9447:238;;-1:-1:-1;9447:238:2;;9696:33;;;;;;;;:::i;:::-;-1:-1:-1;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;9696:33:2;;;;;;;;;-1:-1:-1;;9696:33:2;;;-1:-1:-1;;;;;9696:33:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9757:14;;;;9739:33;-1:-1:-1;9739:33:2;;;:17;:33;;;;;:45;;;9866:15;;9942:16;;;;;:40;;-1:-1:-1;;;;;;9962:20:2;;9972:10;9962:20;;9942:40;9938:92;;;10005:14;;-1:-1:-1;;;10005:14:2;;;;;;;;;;;9938:92;10045:9;10040:402;10060:12;10056:1;:16;10040:402;;;10089:14;10106:8;10115:1;10106:11;;;;;;;;:::i;:::-;;;;;;;10089:28;;10224:1;-1:-1:-1;;;;;10206:20:2;:6;-1:-1:-1;;;;;10206:20:2;;10202:47;;10235:14;;-1:-1:-1;;;10235:14:2;;;;;;;;;;;10202:47;10343:29;10354:9;10365:6;10343:10;:29::i;:::-;-1:-1:-1;10414:3:2;;10040:402;;;;10527:9;10512:103;10538:7;:13;;;10553:7;:12;;;10567:7;:16;;;10585:7;:13;;;10600:7;:14;;;10512:103;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;10666:9:2;;8781:1901;-1:-1:-1;;;;;;;8781:1901:2:o;14336:382::-;14456:10;6416:34;6439:10;6416:22;:34::i;:::-;14530:35:::1;::::0;;;:23:::1;:35;::::0;;;;;;;;:51;;-1:-1:-1;;14530:51:2::1;-1:-1:-1::0;;;;;14530:51:2;::::1;::::0;;::::1;::::0;;;14658:53;;7406:74:145;;;14530:35:2;;14658:53:::1;::::0;7379:18:145;14658:53:2::1;7260:226:145::0;15962:658:2;16055:10;6416:34;6439:10;6416:22;:34::i;:::-;16100:15;;16077:20:::1;16211:403;16231:12;16227:1;:16;16211:403;;;16260:14;16277:8;16286:1;16277:11;;;;;;;;:::i;:::-;;;;;;;16260:28;;16395:1;-1:-1:-1::0;;;;;16377:20:2::1;:6;-1:-1:-1::0;;;;;16377:20:2::1;::::0;16373:47:::1;;16406:14;;-1:-1:-1::0;;;16406:14:2::1;;;;;;;;;;;16373:47;16514:30;16525:10;16537:6;16514:10;:30::i;:::-;-1:-1:-1::0;16586:3:2::1;;16211:403;;;;16067:553;15962:658:::0;;;:::o;12992:208::-;13087:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:40:2;;;:30;;:40;13110:83;;;;13153:40;13172:10;13184:8;13153:18;:40::i;12309:415::-;12429:10;6416:34;6439:10;6416:22;:34::i;:::-;12553:24:::1;::::0;;;:12:::1;:24;::::0;;;;;;;:45;;:33:::1;::::0;::::1;:45:::0;;;;;::::1;::::0;12589:9;;12553:33;:45;;;::::1;::::0;;::::1;:::i;:::-;;;;;12695:10;12672:45;12707:9;12672:45;;;;;;:::i;6841:257::-:0;4882:13:48;;6900:1:2;;4882:13:48;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:48;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:48;;13734:2:145;4873:99:48;;;13716:21:145;13773:2;13753:18;;;13746:30;13812:34;13792:18;;;13785:62;13883:16;13863:18;;;13856:44;13917:19;;4873:99:48;13532:410:145;4873:99:48;4982:12;:22;;-1:-1:-1;;5014:20:48;4982:22;;;5014:20;4982:22;5014:20;;;-1:-1:-1;;;;;6968:20:2;::::1;6964:47;;6997:14;;-1:-1:-1::0;;;6997:14:2::1;;;;;;;;;;;6964:47;7061:30;6011:23;7084:6;7061:10;:30::i;:::-;5071:5:48::0;5055:21;;-1:-1:-1;;5055:21:48;;;5091:20;;14119:4:145;14107:17;;14089:36;;5091:20:48;;14077:2:145;14062:18;5091:20:48;;;;;;;6841:257:2;;:::o;11210:830::-;11349:14;11320:10;6416:34;6439:10;6416:22;:34::i;:::-;11429::::1;11445:10;11457:5;11429:15;:34::i;:::-;11538:23;11564:24:::0;;;:12:::1;:24;::::0;;;;11420:43;;-1:-1:-1;11627:12:2::1;::::0;::::1;:20;11642:5:::0;11627:12;:20:::1;:::i;:::-;-1:-1:-1::0;11705:14:2::1;::::0;::::1;::::0;;-1:-1:-1;;;;;11705:14:2;;::::1;11731:1;11687:33:::0;;;:17:::1;:33;::::0;;;;;:46;;;11774:23;;-1:-1:-1;;11774:23:2::1;::::0;;::::1;::::0;;::::1;::::0;;;11807:25;;;;;;:38;;;11931:45;11807:38;;11931:45:::1;::::0;::::1;::::0;11962:5;;11774:23;;11931:45:::1;:::i;:::-;;;;;;;;12020:13;11210:830:::0;;;;;:::o;5705:147:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;7837:187:2:-:0;7905:14;;:::i;:::-;-1:-1:-1;;;;;7951:26:2;;7931:17;7951:26;;;:17;:26;;;;;;;;;7994:23;;;:12;:23;;;;;;7987:30;;;;;;;;;;;;;;;;;;;;;;;;;;;7994:23;;7987:30;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;7987:30:2;;;;-1:-1:-1;;;7987:30:2;;;;;;-1:-1:-1;;;;;7987:30:2;;;;;;;;;;;;;;;;;;;;;7837:187;-1:-1:-1;;;7837:187:2:o;16837:500::-;16933:10;6416:34;6439:10;6416:22;:34::i;:::-;16978:15;;16955:20:::1;17094:237;17114:12;17110:1;:16;17094:237;;;17225:36;17237:10;17249:8;17258:1;17249:11;;;;;;;;:::i;:::-;;;;;;;17225;:36::i;:::-;17303:3;;17094:237;;5702:47:::0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5702:47:2;;;;-1:-1:-1;;;5702:47:2;;;;;;;;;;;-1:-1:-1;;;;;5702:47:2;;;;;;:::o;20464:146::-;20552:4;3459:12:44;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;20575:28:2;3350:145:44;3789:103;3855:30;3866:4;965:10:52;3855::44;:30::i;:::-;3789:103;:::o;6721:269:10:-;6815:16;-1:-1:-1;;;;;6815:16:10;;;6811:173;;6847:45;6879:3;6884:7;6847:31;:45::i;6811:173::-;6923:50;6952:6;6960:3;6965:7;6923:28;:50::i;7938:233:44:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:44;;;;;;;;;:36;;-1:-1:-1;;8059:36:44;8091:4;8059:36;;;8141:12;965:10:52;;886:96;8141:12:44;-1:-1:-1;;;;;8114:40:44;8132:7;-1:-1:-1;;;;;8114:40:44;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;8342:234::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:44;;;;;;;;;;:37;;-1:-1:-1;;8463:37:44;;;8519:40;965:10:52;;8463:12:44;;8519:40;;8495:5;8519:40;8342:234;;:::o;19465:159:2:-;19548:7;19601:6;19609;19584:32;;;;;;;;14638:19:145;;;14695:2;14691:15;-1:-1:-1;;14687:53:145;14682:2;14673:12;;14666:75;14766:2;14757:12;;14481:294;19584:32:2;;;;;;;;;;;;;19574:43;;;;;;19567:50;;19465:159;;;;:::o;18166:969::-;18250:14;18276:24;18314:10;18326:5;18303:29;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;18303:29:2;;;;;;;18380:37;;15250:25:145;;;18411:4:2;15291:18:145;;;15284:83;18380:37:2;;;;;;;;;15223:18:145;;;18380:37:2;;;;18303:29;;-1:-1:-1;18380:37:2;-1:-1:-1;;15223:18:145;18469:25:2;;;;;:::i;:::-;-1:-1:-1;;18469:25:2;;;;;;;;;;;;;;;;18452:67;;18469:25;18496:22;;18469:25;18452:67;;:::i;:::-;;;;-1:-1:-1;;18452:67:2;;;;;;;;;;18545:22;;18452:67;18545:22;;;;;;;18706:19;;;;;;18671:12;18654:72;;;16086:92:145;;;;-1:-1:-1;;18693:4:2;16215:2:145;16211:15;16207:53;16194:11;;;16187:74;16277:12;;;16270:28;;;16314:12;;;16307:28;;;;18452:67:2;;-1:-1:-1;18545:22:2;18530:12;;16351::145;;18654:72:2;;;;;;;;;;;;18644:83;;;;;;18636:92;;18578:161;;18860:4;18866:10;18886:4;18843:49;;;;;:::i;:::-;15250:25:145;;;-1:-1:-1;;;;;15311:55:145;15306:2;15291:18;;15284:83;15238:2;15223:18;18843:49:2;;;;;;;;;;;;;;;;;;18839:290;;19044:10;19008:18;-1:-1:-1;;;;;18993:45:2;;:47;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:61;18989:88;;19063:14;;;;;;;;;;;;;;18989:88;19100:18;19091:27;;18839:290;;;18949:7;-1:-1:-1;18839:290:2;18266:869;;;;;18166:969;;;;:::o;17659:152::-;20049:4;20072:24;;;:12;:24;;;;;:30;;;-1:-1:-1;;;;;20072:30:2;17770:10;20072:40;17735:69;;17790:14;;-1:-1:-1;;;17790:14:2;;;;;;;;;;;4173:501:44;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:44;;;;;;;;;;-1:-1:-1;;;4299:358:44;;;;;;;:::i;2455:490:14:-;2711:4;2705;2699;2693;2685:6;2681:2;2674:5;2669:47;2659:270;;2822:10;2816:4;2809:24;2910:4;2904;2897:18;11454:1189;11617:2;11611:4;11604:16;11674:6;11668:4;11661:20;11814:34;11808:4;11801:48;12272:4;12266;12260;12254;12251:1;12244:5;12237;12232:45;12192:16;12185:24;12181:1;12174:4;12168:11;12165:18;12162:48;11890:405;11863:655;;12411:10;12405:4;12398:24;12499:4;12493;12486:18;11863:655;12625:1;12619:4;12612:15;11454:1189;;;:::o;2473:149:53:-;2531:13;2563:52;-1:-1:-1;;;;;2575:22:53;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:53;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:53;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:53;;;;;;;;-1:-1:-1;2096:9:53;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:53;;;;;;;;-1:-1:-1;2207:1:53;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:53;;2228:55;;;;-1:-1:-1;;;2228:55:53;;18440:2:145;2228:55:53;;;18422:21:145;;;18459:18;;;18452:30;18518:34;18498:18;;;18491:62;18570:18;;2228:55:53;18238:356:145;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;:::o;14:180:145:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:145;;14:180;-1:-1:-1;14:180:145:o;199:250::-;284:1;294:113;308:6;305:1;302:13;294:113;;;384:11;;;378:18;365:11;;;358:39;330:2;323:10;294:113;;;-1:-1:-1;;441:1:145;423:16;;416:27;199:250::o;454:271::-;496:3;534:5;528:12;561:6;556:3;549:19;577:76;646:6;639:4;634:3;630:14;623:4;616:5;612:16;577:76;:::i;:::-;707:2;686:15;-1:-1:-1;;682:29:145;673:39;;;;714:4;669:50;;454:271;-1:-1:-1;;454:271:145:o;730:252::-;817:5;811:12;806:3;799:25;781:3;870:4;863:5;859:16;853:23;908:4;901;896:3;892:14;885:28;929:47;970:4;965:3;961:14;947:12;929:47;:::i;:::-;922:54;730:252;-1:-1:-1;;;;730:252:145:o;987:934::-;1166:2;1155:9;1148:21;1211:6;1205:13;1200:2;1189:9;1185:18;1178:41;1273:2;1265:6;1261:15;1255:22;1250:2;1239:9;1235:18;1228:50;1129:4;1325:2;1317:6;1313:15;1307:22;1365:4;1360:2;1349:9;1345:18;1338:32;1393:52;1440:3;1429:9;1425:19;1411:12;1393:52;:::i;:::-;1379:66;;1494:2;1486:6;1482:15;1476:22;1567:2;1563:7;1551:9;1543:6;1539:22;1535:36;1529:3;1518:9;1514:19;1507:65;1595:50;1638:6;1622:14;1595:50;:::i;:::-;1581:64;;;1694:3;1686:6;1682:16;1676:23;-1:-1:-1;;;;;1817:2:145;1801:14;1797:23;1791:3;1780:9;1776:19;1769:52;1888:2;1881:3;1873:6;1869:16;1863:23;1859:32;1852:4;1841:9;1837:20;1830:62;;;1909:6;1901:14;;;987:934;;;;:::o;1926:332::-;1984:6;2037:2;2025:9;2016:7;2012:23;2008:32;2005:52;;;2053:1;2050;2043:12;2005:52;2092:9;2079:23;2142:66;2135:5;2131:78;2124:5;2121:89;2111:117;;2224:1;2221;2214:12;2455:196;2523:20;;-1:-1:-1;;;;;2572:54:145;;2562:65;;2552:93;;2641:1;2638;2631:12;2552:93;2455:196;;;:::o;2656:254::-;2724:6;2732;2785:2;2773:9;2764:7;2760:23;2756:32;2753:52;;;2801:1;2798;2791:12;2753:52;2837:9;2824:23;2814:33;;2866:38;2900:2;2889:9;2885:18;2866:38;:::i;:::-;2856:48;;2656:254;;;;;:::o;3097:260::-;3165:6;3173;3226:2;3214:9;3205:7;3201:23;3197:32;3194:52;;;3242:1;3239;3232:12;3194:52;3265:29;3284:9;3265:29;:::i;:::-;3255:39;;3313:38;3347:2;3336:9;3332:18;3313:38;:::i;3362:184::-;-1:-1:-1;;;3411:1:145;3404:88;3511:4;3508:1;3501:15;3535:4;3532:1;3525:15;3551:275;3622:2;3616:9;3687:2;3668:13;;-1:-1:-1;;3664:27:145;3652:40;;3722:18;3707:34;;3743:22;;;3704:62;3701:88;;;3769:18;;:::i;:::-;3805:2;3798:22;3551:275;;-1:-1:-1;3551:275:145:o;3831:531::-;3874:5;3927:3;3920:4;3912:6;3908:17;3904:27;3894:55;;3945:1;3942;3935:12;3894:55;3981:6;3968:20;4007:18;4003:2;4000:26;3997:52;;;4029:18;;:::i;:::-;4073:55;4116:2;4097:13;;-1:-1:-1;;4093:27:145;4122:4;4089:38;4073:55;:::i;:::-;4153:2;4144:7;4137:19;4199:3;4192:4;4187:2;4179:6;4175:15;4171:26;4168:35;4165:55;;;4216:1;4213;4206:12;4165:55;4281:2;4274:4;4266:6;4262:17;4255:4;4246:7;4242:18;4229:55;4329:1;4304:16;;;4322:4;4300:27;4293:38;;;;4308:7;3831:531;-1:-1:-1;;;3831:531:145:o;4367:610::-;4422:5;4470:4;4458:9;4453:3;4449:19;4445:30;4442:50;;;4488:1;4485;4478:12;4442:50;4521:4;4515:11;4565:4;4557:6;4553:17;4589:18;4657:6;4645:10;4642:22;4637:2;4625:10;4622:18;4619:46;4616:72;;;4668:18;;:::i;:::-;4710:10;4704:4;4697:24;4739:6;4730:15;;4782:9;4769:23;4761:6;4754:39;4844:2;4833:9;4829:18;4816:32;4802:46;;4871:2;4863:6;4860:14;4857:34;;;4887:1;4884;4877:12;4857:34;;4924:46;4966:3;4957:6;4946:9;4942:22;4924:46;:::i;:::-;4919:2;4911:6;4907:15;4900:71;;;4367:610;;;;:::o;4982:718::-;5036:5;5089:3;5082:4;5074:6;5070:17;5066:27;5056:55;;5107:1;5104;5097:12;5056:55;5143:6;5130:20;5169:4;5192:18;5188:2;5185:26;5182:52;;;5214:18;;:::i;:::-;5260:2;5257:1;5253:10;5283:28;5307:2;5303;5299:11;5283:28;:::i;:::-;5345:15;;;5415;;;5411:24;;;5376:12;;;;5447:15;;;5444:35;;;5475:1;5472;5465:12;5444:35;5511:2;5503:6;5499:15;5488:26;;5523:148;5539:6;5534:3;5531:15;5523:148;;;5605:23;5624:3;5605:23;:::i;:::-;5593:36;;5556:12;;;;5649;;;;5523:148;;;5689:5;4982:718;-1:-1:-1;;;;;;;4982:718:145:o;5705:938::-;5861:6;5869;5877;5885;5893;5946:3;5934:9;5925:7;5921:23;5917:33;5914:53;;;5963:1;5960;5953:12;5914:53;5999:9;5986:23;5976:33;;6060:2;6049:9;6045:18;6032:32;6083:18;6124:2;6116:6;6113:14;6110:34;;;6140:1;6137;6130:12;6110:34;6163:50;6205:7;6196:6;6185:9;6181:22;6163:50;:::i;:::-;6153:60;;6266:2;6255:9;6251:18;6238:32;6222:48;;6295:2;6285:8;6282:16;6279:36;;;6311:1;6308;6301:12;6279:36;6334:61;6387:7;6376:8;6365:9;6361:24;6334:61;:::i;:::-;6324:71;;6414:38;6448:2;6437:9;6433:18;6414:38;:::i;:::-;6404:48;;6505:3;6494:9;6490:19;6477:33;6461:49;;6535:2;6525:8;6522:16;6519:36;;;6551:1;6548;6541:12;6519:36;;6574:63;6629:7;6618:8;6607:9;6603:24;6574:63;:::i;:::-;6564:73;;;5705:938;;;;;;;;:::o;6648:186::-;6707:6;6760:2;6748:9;6739:7;6735:23;6731:32;6728:52;;;6776:1;6773;6766:12;6728:52;6799:29;6818:9;6799:29;:::i;6839:416::-;6932:6;6940;6993:2;6981:9;6972:7;6968:23;6964:32;6961:52;;;7009:1;7006;6999:12;6961:52;7045:9;7032:23;7022:33;;7106:2;7095:9;7091:18;7078:32;7133:18;7125:6;7122:30;7119:50;;;7165:1;7162;7155:12;7119:50;7188:61;7241:7;7232:6;7221:9;7217:22;7188:61;:::i;:::-;7178:71;;;6839:416;;;;;:::o;7491:415::-;7585:6;7593;7646:2;7634:9;7625:7;7621:23;7617:32;7614:52;;;7662:1;7659;7652:12;7614:52;7698:9;7685:23;7675:33;;7759:2;7748:9;7744:18;7731:32;7786:18;7778:6;7775:30;7772:50;;;7818:1;7815;7808:12;7772:50;7841:59;7892:7;7883:6;7872:9;7868:22;7841:59;:::i;7911:390::-;7989:6;7997;8050:2;8038:9;8029:7;8025:23;8021:32;8018:52;;;8066:1;8063;8056:12;8018:52;8102:9;8089:23;8079:33;;8163:2;8152:9;8148:18;8135:32;8190:18;8182:6;8179:30;8176:50;;;8222:1;8219;8212:12;8176:50;8245;8287:7;8278:6;8267:9;8263:22;8245:50;:::i;8306:791::-;8647:6;8636:9;8629:25;8690:6;8685:2;8674:9;8670:18;8663:34;8733:3;8728:2;8717:9;8713:18;8706:31;8610:4;8760:46;8801:3;8790:9;8786:19;8778:6;8760:46;:::i;:::-;8854:9;8846:6;8842:22;8837:2;8826:9;8822:18;8815:50;8882:42;8917:6;8909;8882:42;:::i;:::-;8874:50;;;-1:-1:-1;;;;;9034:2:145;9026:6;9022:15;9016:3;9005:9;9001:19;8994:44;9087:2;9079:6;9075:15;9069:3;9058:9;9054:19;9047:44;;8306:791;;;;;;;;;:::o;9102:437::-;9181:1;9177:12;;;;9224;;;9245:61;;9299:4;9291:6;9287:17;9277:27;;9245:61;9352:2;9344:6;9341:14;9321:18;9318:38;9315:218;;-1:-1:-1;;;9386:1:145;9379:88;9490:4;9487:1;9480:15;9518:4;9515:1;9508:15;9315:218;;9102:437;;;:::o;9544:184::-;9614:6;9667:2;9655:9;9646:7;9642:23;9638:32;9635:52;;;9683:1;9680;9673:12;9635:52;-1:-1:-1;9706:16:145;;9544:184;-1:-1:-1;9544:184:145:o;10275:545::-;10377:2;10372:3;10369:11;10366:448;;;10413:1;10438:5;10434:2;10427:17;10483:4;10479:2;10469:19;10553:2;10541:10;10537:19;10534:1;10530:27;10524:4;10520:38;10589:4;10577:10;10574:20;10571:47;;;-1:-1:-1;10612:4:145;10571:47;10667:2;10662:3;10658:12;10655:1;10651:20;10645:4;10641:31;10631:41;;10722:82;10740:2;10733:5;10730:13;10722:82;;;10785:17;;;10766:1;10755:13;10722:82;;;10726:3;;;10275:545;;;:::o;10996:1352::-;11122:3;11116:10;11149:18;11141:6;11138:30;11135:56;;;11171:18;;:::i;:::-;11200:97;11290:6;11250:38;11282:4;11276:11;11250:38;:::i;:::-;11244:4;11200:97;:::i;:::-;11352:4;;11416:2;11405:14;;11433:1;11428:663;;;;12135:1;12152:6;12149:89;;;-1:-1:-1;12204:19:145;;;12198:26;12149:89;-1:-1:-1;;10953:1:145;10949:11;;;10945:24;10941:29;10931:40;10977:1;10973:11;;;10928:57;12251:81;;11398:944;;11428:663;10222:1;10215:14;;;10259:4;10246:18;;-1:-1:-1;;11464:20:145;;;11582:236;11596:7;11593:1;11590:14;11582:236;;;11685:19;;;11679:26;11664:42;;11777:27;;;;11745:1;11733:14;;;;11612:19;;11582:236;;;11586:3;11846:6;11837:7;11834:19;11831:201;;;11907:19;;;11901:26;-1:-1:-1;;11990:1:145;11986:14;;;12002:3;11982:24;11978:37;11974:42;11959:58;11944:74;;11831:201;-1:-1:-1;;;;;12078:1:145;12062:14;;;12058:22;12045:36;;-1:-1:-1;10996:1352:145:o;12353:184::-;-1:-1:-1;;;12402:1:145;12395:88;12502:4;12499:1;12492:15;12526:4;12523:1;12516:15;12542:719;12855:6;12844:9;12837:25;12898:3;12893:2;12882:9;12878:18;12871:31;12818:4;12925:46;12966:3;12955:9;12951:19;12943:6;12925:46;:::i;:::-;13019:9;13011:6;13007:22;13002:2;12991:9;12987:18;12980:50;13047:42;13082:6;13074;13047:42;:::i;:::-;13039:50;;;-1:-1:-1;;;;;13198:2:145;13190:6;13186:15;13181:2;13170:9;13166:18;13159:43;13251:2;13243:6;13239:15;13233:3;13222:9;13218:19;13211:44;;12542:719;;;;;;;;:::o;13266:261::-;13447:2;13436:9;13429:21;13410:4;13467:54;13517:2;13506:9;13502:18;13494:6;13467:54;:::i;14136:340::-;14313:2;14302:9;14295:21;14276:4;14333:45;14374:2;14363:9;14359:18;14351:6;14333:45;:::i;:::-;14325:53;;-1:-1:-1;;;;;14418:6:145;14414:55;14409:2;14398:9;14394:18;14387:83;14136:340;;;;;:::o;14780:291::-;14957:6;14946:9;14939:25;15000:2;14995;14984:9;14980:18;14973:30;14920:4;15020:45;15061:2;15050:9;15046:18;15038:6;15020:45;:::i;15378:492::-;15553:3;15591:6;15585:13;15607:66;15666:6;15661:3;15654:4;15646:6;15642:17;15607:66;:::i;:::-;15736:13;;15695:16;;;;15758:70;15736:13;15695:16;15805:4;15793:17;;15758:70;:::i;:::-;15844:20;;15378:492;-1:-1:-1;;;;15378:492:145:o;16563:812::-;16974:25;16969:3;16962:38;16944:3;17029:6;17023:13;17045:75;17113:6;17108:2;17103:3;17099:12;17092:4;17084:6;17080:17;17045:75;:::i;:::-;17184:19;17179:2;17139:16;;;17171:11;;;17164:40;17229:13;;17251:76;17229:13;17313:2;17305:11;;17298:4;17286:17;;17251:76;:::i;:::-;17347:17;17366:2;17343:26;;16563:812;-1:-1:-1;;;;16563:812:145:o;17380:220::-;17529:2;17518:9;17511:21;17492:4;17549:45;17590:2;17579:9;17575:18;17567:6;17549:45;:::i;17605:184::-;-1:-1:-1;;;17654:1:145;17647:88;17754:4;17751:1;17744:15;17778:4;17775:1;17768:15;17794:168;17867:9;;;17898;;17915:15;;;17909:22;;17895:37;17885:71;;17936:18;;:::i;17967:125::-;18032:9;;;18053:10;;;18050:36;;;18066:18;;:::i;18097:136::-;18136:3;18164:5;18154:39;;18173:18;;:::i;:::-;-1:-1:-1;;;18209:18:145;;18097:136::o","linkReferences":{}},"methodIdentifiers":{"ALLO_OWNER()":"cfda7e0a","DEFAULT_ADMIN_ROLE()":"a217fddf","NATIVE()":"a0cf0aea","acceptProfileOwnership(bytes32)":"2497f3c6","addMembers(bytes32,address[])":"5063f361","anchorToProfileId(address)":"4756487f","createProfile(uint256,string,(uint256,string),address,address[])":"3a92f65f","getProfileByAnchor(address)":"dd93da43","getProfileById(bytes32)":"0114cf0a","getRoleAdmin(bytes32)":"248a9ca3","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address)":"c4d66de8","isMemberOfProfile(bytes32,address)":"0ec1fbac","isOwnerOfProfile(bytes32,address)":"39b86b8c","isOwnerOrMemberOfProfile(bytes32,address)":"5e8a7915","profileIdToPendingOwner(bytes32)":"50d005e0","profilesById(bytes32)":"ee888196","recoverFunds(address,address)":"24ae6a27","removeMembers(bytes32,address[])":"e0cf1e4c","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","supportsInterface(bytes4)":"01ffc9a7","updateProfileMetadata(bytes32,(uint256,string))":"ac402839","updateProfileName(bytes32,string)":"cf189ff2","updateProfilePendingOwner(bytes32,address)":"3b66dacd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"ALLOCATION_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALLOCATION_NOT_ENDED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ALREADY_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AMOUNT_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ANCHOR_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ARRAY_MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_ADDRESS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_FEE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_METADATA\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"INVALID_REGISTRATION\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"IS_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"MISMATCH\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NONCE_NOT_AVAILABLE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_APPROVED_STRATEGY\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_ENOUGH_FUNDS\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_IMPLEMENTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_INITIALIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NOT_PENDING_OWNER\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"POOL_INACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_ALREADY_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"recipientId\",\"type\":\"address\"}],\"name\":\"RECIPIENT_ERROR\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RECIPIENT_NOT_ACCEPTED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"REGISTRATION_NOT_ACTIVE\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UNAUTHORIZED\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZERO_ADDRESS\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"}],\"name\":\"ProfileMetadataUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"name\":\"ProfileNameUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ProfileOwnerUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"pendingOwner\",\"type\":\"address\"}],\"name\":\"ProfilePendingOwnerUpdated\",\"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\":\"ALLO_OWNER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"acceptProfileOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"addMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"anchorToProfileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"createProfile\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_anchor\",\"type\":\"address\"}],\"name\":\"getProfileByAnchor\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"}],\"name\":\"getProfileById\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"internalType\":\"struct IRegistry.Profile\",\"name\":\"\",\"type\":\"tuple\"}],\"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\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_owner\",\"type\":\"address\"}],\"name\":\"isOwnerOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_account\",\"type\":\"address\"}],\"name\":\"isOwnerOrMemberOfProfile\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profileIdToPendingOwner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"profilesById\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"id\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"nonce\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_recipient\",\"type\":\"address\"}],\"name\":\"recoverFunds\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address[]\",\"name\":\"_members\",\"type\":\"address[]\"}],\"name\":\"removeMembers\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"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\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"updateProfileMetadata\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"}],\"name\":\"updateProfileName\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"anchor\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_pendingOwner\",\"type\":\"address\"}],\"name\":\"updateProfilePendingOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"@thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \",\"details\":\"This contract is used to create and manage profiles for the Allo protocol It is also used to deploy the anchor contract for each profile which acts as a proxy for the profile and is used to receive funds and execute transactions on behalf of the profile The Registry is also used to add and remove members from a profile and update the profile 'Metadata'\",\"errors\":{\"ANCHOR_ERROR()\":[{\"details\":\"Thrown if the anchor creation fails\"}],\"NONCE_NOT_AVAILABLE()\":[{\"details\":\"Thrown when the nonce passed has been used or not available\"}],\"NOT_PENDING_OWNER()\":[{\"details\":\"Thrown when the 'msg.sender' is not the pending owner on ownership transfer\"}]},\"events\":{\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"ProfileCreated(bytes32,uint256,string,(uint256,string),address,address)\":{\"details\":\"Emitted when a profile is created. This will return your anchor address.\"},\"ProfileMetadataUpdated(bytes32,(uint256,string))\":{\"details\":\"Emitted when a profile's metadata is updated.\"},\"ProfileNameUpdated(bytes32,string,address)\":{\"details\":\"Emitted when a profile name is updated. This will update the anchor when the name is updated and return it.\"},\"ProfileOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile owner is updated.\"},\"ProfilePendingOwnerUpdated(bytes32,address)\":{\"details\":\"Emitted when a profile pending owner is updated.\"},\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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\":{\"acceptProfileOwnership(bytes32)\":{\"details\":\"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\",\"params\":{\"_profileId\":\"The ID of the profile\"}},\"addMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_members\":\"The members to add\",\"_profileId\":\"The ID of the profile\"}},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"details\":\"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address\",\"params\":{\"_members\":\"The members of the profile (can be set only if msg.sender == _owner)\",\"_metadata\":\"The metadata of the profile\",\"_name\":\"The name of the profile\",\"_nonce\":\"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.\",\"_owner\":\"The owner of the profile\"},\"returns\":{\"_0\":\"The ID for the created profile\"}},\"getProfileByAnchor(address)\":{\"details\":\"Used when you have the 'anchor' address and want to retrieve the profile\",\"params\":{\"_anchor\":\"The anchor of the profile\"},\"returns\":{\"_0\":\"Profile details for the `_anchor`\"}},\"getProfileById(bytes32)\":{\"details\":\"Used when you have the 'profileId' and want to retrieve the profile\",\"params\":{\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"The Profile details for the `_profileId`\"}},\"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`.\"},\"initialize(address)\":{\"details\":\"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\",\"params\":{\"_owner\":\"The owner of the contract\"}},\"isMemberOfProfile(bytes32,address)\":{\"params\":{\"_member\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is a member of the profile, otherwise 'false'\"}},\"isOwnerOfProfile(bytes32,address)\":{\"params\":{\"_owner\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner of the profile, otherwise 'false'\"}},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"params\":{\"_account\":\"The address to check\",\"_profileId\":\"The ID of the profile\"},\"returns\":{\"_0\":\"'true' if the address is an owner or member of the profile, otherwise 'false'\"}},\"recoverFunds(address,address)\":{\"details\":\"'msg.sender' must be the Allo owner\",\"params\":{\"_recipient\":\"The address of the recipient\",\"_token\":\"The address of the token to transfer\"}},\"removeMembers(bytes32,address[])\":{\"details\":\"'msg.sender' must be the pending owner of the profile.\",\"params\":{\"_members\":\"The members to remove\",\"_profileId\":\"The ID of the profile\"}},\"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 `account`. 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\":\"See {IERC165-supportsInterface}.\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"details\":\"'msg.sender' must be the owner of the profile.\",\"params\":{\"_metadata\":\"The new 'Metadata' of the profile\",\"_profileId\":\"The ID of the profile\"}},\"updateProfileName(bytes32,string)\":{\"details\":\"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\",\"params\":{\"_name\":\"The new name of the profile\",\"_profileId\":\"The profileId of the profile\"},\"returns\":{\"anchor\":\"The new anchor\"}},\"updateProfilePendingOwner(bytes32,address)\":{\"details\":\"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\",\"params\":{\"_pendingOwner\":\"The new pending owner\",\"_profileId\":\"The ID of the profile\"}}},\"stateVariables\":{\"anchorToProfileId\":{\"details\":\"anchor -> Profile.id\"},\"profileIdToPendingOwner\":{\"details\":\"Profile.id -> pending owner\"},\"profilesById\":{\"details\":\"Profile.id -> Profile\"}},\"title\":\"Registry Contract\",\"version\":1},\"userdoc\":{\"errors\":{\"ALLOCATION_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is active.\"}],\"ALLOCATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when the allocation is not active.\"}],\"ALLOCATION_NOT_ENDED()\":[{\"notice\":\"Thrown when the allocation is not ended.\"}],\"ALREADY_INITIALIZED()\":[{\"notice\":\"Thrown when data is already intialized\"}],\"AMOUNT_MISMATCH()\":[{\"notice\":\"Thrown when the amount of tokens sent does not match the amount of tokens expected\"}],\"ARRAY_MISMATCH()\":[{\"notice\":\"Thrown when two arrays length are not equal\"}],\"INVALID()\":[{\"notice\":\"Thrown as a general error when input / data is invalid\"}],\"INVALID_ADDRESS()\":[{\"notice\":\"Thrown when an invalid address is used\"}],\"INVALID_FEE()\":[{\"notice\":\"Thrown when the fee is below 1e18 which is the fee percentage denominator\"}],\"INVALID_METADATA()\":[{\"notice\":\"Thrown when the metadata is invalid.\"}],\"INVALID_REGISTRATION()\":[{\"notice\":\"Thrown when the registration is invalid.\"}],\"IS_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is approved and should be cloned\"}],\"MISMATCH()\":[{\"notice\":\"Thrown when mismatch in decoding data\"}],\"NOT_APPROVED_STRATEGY()\":[{\"notice\":\"Thrown when the strategy is not approved\"}],\"NOT_ENOUGH_FUNDS()\":[{\"notice\":\"Thrown when not enough funds are available\"}],\"NOT_IMPLEMENTED()\":[{\"notice\":\"Thrown when the function is not implemented\"}],\"NOT_INITIALIZED()\":[{\"notice\":\"Thrown when data is yet to be initialized\"}],\"POOL_ACTIVE()\":[{\"notice\":\"Thrown when a pool is already active\"}],\"POOL_INACTIVE()\":[{\"notice\":\"Thrown when a pool is inactive\"}],\"RECIPIENT_ALREADY_ACCEPTED()\":[{\"notice\":\"Thrown when recipient is already accepted.\"}],\"RECIPIENT_ERROR(address)\":[{\"notice\":\"Thrown when there is an error in recipient.\"}],\"RECIPIENT_NOT_ACCEPTED()\":[{\"notice\":\"Thrown when the recipient is not accepted.\"}],\"REGISTRATION_NOT_ACTIVE()\":[{\"notice\":\"Thrown when registration is not active.\"}],\"UNAUTHORIZED()\":[{\"notice\":\"Thrown when user is not authorized\"}],\"ZERO_ADDRESS()\":[{\"notice\":\"Thrown when address is the zero address\"}]},\"kind\":\"user\",\"methods\":{\"ALLO_OWNER()\":{\"notice\":\"Allo Owner Role for fund recovery\"},\"NATIVE()\":{\"notice\":\"Address of the native token\"},\"acceptProfileOwnership(bytes32)\":{\"notice\":\"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\"},\"addMembers(bytes32,address[])\":{\"notice\":\"Adds members to the profile\"},\"anchorToProfileId(address)\":{\"notice\":\"This maps the anchor address to the profile ID\"},\"createProfile(uint256,string,(uint256,string),address,address[])\":{\"notice\":\"Creates a new profile\"},\"getProfileByAnchor(address)\":{\"notice\":\"Retrieve profile by anchor\"},\"getProfileById(bytes32)\":{\"notice\":\"Retrieve profile by profileId\"},\"initialize(address)\":{\"notice\":\"Initializes the contract after an upgrade\"},\"isMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is a member of the profile\"},\"isOwnerOfProfile(bytes32,address)\":{\"notice\":\"Checks if the given address is an owner of the profile\"},\"isOwnerOrMemberOfProfile(bytes32,address)\":{\"notice\":\"Checks if the address is an owner or member of the profile\"},\"profileIdToPendingOwner(bytes32)\":{\"notice\":\"This maps the profile ID to the pending owner\"},\"profilesById(bytes32)\":{\"notice\":\"This maps the profile ID to the profile details\"},\"recoverFunds(address,address)\":{\"notice\":\"Transfers any fund balance in Allo to the recipient\"},\"removeMembers(bytes32,address[])\":{\"notice\":\"Removes members from the profile\"},\"updateProfileMetadata(bytes32,(uint256,string))\":{\"notice\":\"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\"},\"updateProfileName(bytes32,string)\":{\"notice\":\"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event.\"},\"updateProfilePendingOwner(bytes32,address)\":{\"notice\":\"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\"}},\"notice\":\"Registry contract for creating and managing profiles\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/contracts/core/Registry.sol\":\"Registry\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"ALLOCATION_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"ALLOCATION_NOT_ENDED"},{"inputs":[],"type":"error","name":"ALREADY_INITIALIZED"},{"inputs":[],"type":"error","name":"AMOUNT_MISMATCH"},{"inputs":[],"type":"error","name":"ANCHOR_ERROR"},{"inputs":[],"type":"error","name":"ARRAY_MISMATCH"},{"inputs":[],"type":"error","name":"INVALID"},{"inputs":[],"type":"error","name":"INVALID_ADDRESS"},{"inputs":[],"type":"error","name":"INVALID_FEE"},{"inputs":[],"type":"error","name":"INVALID_METADATA"},{"inputs":[],"type":"error","name":"INVALID_REGISTRATION"},{"inputs":[],"type":"error","name":"IS_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"MISMATCH"},{"inputs":[],"type":"error","name":"NONCE_NOT_AVAILABLE"},{"inputs":[],"type":"error","name":"NOT_APPROVED_STRATEGY"},{"inputs":[],"type":"error","name":"NOT_ENOUGH_FUNDS"},{"inputs":[],"type":"error","name":"NOT_IMPLEMENTED"},{"inputs":[],"type":"error","name":"NOT_INITIALIZED"},{"inputs":[],"type":"error","name":"NOT_PENDING_OWNER"},{"inputs":[],"type":"error","name":"POOL_ACTIVE"},{"inputs":[],"type":"error","name":"POOL_INACTIVE"},{"inputs":[],"type":"error","name":"RECIPIENT_ALREADY_ACCEPTED"},{"inputs":[{"internalType":"address","name":"recipientId","type":"address"}],"type":"error","name":"RECIPIENT_ERROR"},{"inputs":[],"type":"error","name":"RECIPIENT_NOT_ACCEPTED"},{"inputs":[],"type":"error","name":"REGISTRATION_NOT_ACTIVE"},{"inputs":[],"type":"error","name":"UNAUTHORIZED"},{"inputs":[],"type":"error","name":"ZERO_ADDRESS"},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"uint256","name":"nonce","type":"uint256","indexed":false},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false},{"internalType":"address","name":"owner","type":"address","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"ProfileMetadataUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"string","name":"name","type":"string","indexed":false},{"internalType":"address","name":"anchor","type":"address","indexed":false}],"type":"event","name":"ProfileNameUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"owner","type":"address","indexed":false}],"type":"event","name":"ProfileOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"profileId","type":"bytes32","indexed":true},{"internalType":"address","name":"pendingOwner","type":"address","indexed":false}],"type":"event","name":"ProfilePendingOwnerUpdated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"ALLO_OWNER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"acceptProfileOwnership"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"addMembers"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function","name":"anchorToProfileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"createProfile","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"_anchor","type":"address"}],"stateMutability":"view","type":"function","name":"getProfileByAnchor","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getProfileById","outputs":[{"internalType":"struct IRegistry.Profile","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_owner","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"stateMutability":"view","type":"function","name":"isOwnerOrMemberOfProfile","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profileIdToPendingOwner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function","name":"profilesById","outputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"string","name":"name","type":"string"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"recoverFunds"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address[]","name":"_members","type":"address[]"}],"stateMutability":"nonpayable","type":"function","name":"removeMembers"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"updateProfileMetadata"},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"string","name":"_name","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"updateProfileName","outputs":[{"internalType":"address","name":"anchor","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_pendingOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"updateProfilePendingOwner"}],"devdoc":{"kind":"dev","methods":{"acceptProfileOwnership(bytes32)":{"details":"'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.","params":{"_profileId":"The ID of the profile"}},"addMembers(bytes32,address[])":{"details":"'msg.sender' must be the owner of the profile.","params":{"_members":"The members to add","_profileId":"The ID of the profile"}},"createProfile(uint256,string,(uint256,string),address,address[])":{"details":"This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile Note: The 'name' and 'profileId' are used to generate the 'anchor' address","params":{"_members":"The members of the profile (can be set only if msg.sender == _owner)","_metadata":"The metadata of the profile","_name":"The name of the profile","_nonce":"Nonce used to generate profileId. Can be any integer, but should be unique for each profile.","_owner":"The owner of the profile"},"returns":{"_0":"The ID for the created profile"}},"getProfileByAnchor(address)":{"details":"Used when you have the 'anchor' address and want to retrieve the profile","params":{"_anchor":"The anchor of the profile"},"returns":{"_0":"Profile details for the `_anchor`"}},"getProfileById(bytes32)":{"details":"Used when you have the 'profileId' and want to retrieve the profile","params":{"_profileId":"The ID of the profile"},"returns":{"_0":"The Profile details for the `_profileId`"}},"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`."},"initialize(address)":{"details":"During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'","params":{"_owner":"The owner of the contract"}},"isMemberOfProfile(bytes32,address)":{"params":{"_member":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is a member of the profile, otherwise 'false'"}},"isOwnerOfProfile(bytes32,address)":{"params":{"_owner":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner of the profile, otherwise 'false'"}},"isOwnerOrMemberOfProfile(bytes32,address)":{"params":{"_account":"The address to check","_profileId":"The ID of the profile"},"returns":{"_0":"'true' if the address is an owner or member of the profile, otherwise 'false'"}},"recoverFunds(address,address)":{"details":"'msg.sender' must be the Allo owner","params":{"_recipient":"The address of the recipient","_token":"The address of the token to transfer"}},"removeMembers(bytes32,address[])":{"details":"'msg.sender' must be the pending owner of the profile.","params":{"_members":"The members to remove","_profileId":"The ID of the profile"}},"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 `account`. 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":"See {IERC165-supportsInterface}."},"updateProfileMetadata(bytes32,(uint256,string))":{"details":"'msg.sender' must be the owner of the profile.","params":{"_metadata":"The new 'Metadata' of the profile","_profileId":"The ID of the profile"}},"updateProfileName(bytes32,string)":{"details":"Use caution when updating your profile name as it will generate a new anchor address. You can always update the name back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.","params":{"_name":"The new name of the profile","_profileId":"The profileId of the profile"},"returns":{"anchor":"The new anchor"}},"updateProfilePendingOwner(bytes32,address)":{"details":"'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.","params":{"_pendingOwner":"The new pending owner","_profileId":"The ID of the profile"}}},"version":1},"userdoc":{"kind":"user","methods":{"ALLO_OWNER()":{"notice":"Allo Owner Role for fund recovery"},"NATIVE()":{"notice":"Address of the native token"},"acceptProfileOwnership(bytes32)":{"notice":"Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event."},"addMembers(bytes32,address[])":{"notice":"Adds members to the profile"},"anchorToProfileId(address)":{"notice":"This maps the anchor address to the profile ID"},"createProfile(uint256,string,(uint256,string),address,address[])":{"notice":"Creates a new profile"},"getProfileByAnchor(address)":{"notice":"Retrieve profile by anchor"},"getProfileById(bytes32)":{"notice":"Retrieve profile by profileId"},"initialize(address)":{"notice":"Initializes the contract after an upgrade"},"isMemberOfProfile(bytes32,address)":{"notice":"Checks if the given address is a member of the profile"},"isOwnerOfProfile(bytes32,address)":{"notice":"Checks if the given address is an owner of the profile"},"isOwnerOrMemberOfProfile(bytes32,address)":{"notice":"Checks if the address is an owner or member of the profile"},"profileIdToPendingOwner(bytes32)":{"notice":"This maps the profile ID to the pending owner"},"profilesById(bytes32)":{"notice":"This maps the profile ID to the profile details"},"recoverFunds(address,address)":{"notice":"Transfers any fund balance in Allo to the recipient"},"removeMembers(bytes32,address[])":{"notice":"Removes members from the profile"},"updateProfileMetadata(bytes32,(uint256,string))":{"notice":"Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event."},"updateProfileName(bytes32,string)":{"notice":"Updates the name of the profile and generates new anchor. Emits a 'ProfileNameUpdated()' event."},"updateProfilePendingOwner(bytes32,address)":{"notice":"Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event."}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/contracts/core/Registry.sol":"Registry"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":54008,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"51","type":"t_array(t_uint256)50_storage"},{"astId":52428,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"_roles","offset":0,"slot":"101","type":"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)"},{"astId":52735,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":1525,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"anchorToProfileId","offset":0,"slot":"151","type":"t_mapping(t_address,t_bytes32)"},{"astId":1531,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"profilesById","offset":0,"slot":"152","type":"t_mapping(t_bytes32,t_struct(Profile)2629_storage)"},{"astId":1536,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"profileIdToPendingOwner","offset":0,"slot":"153","type":"t_mapping(t_bytes32,t_address)"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_bytes32)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bytes32)","numberOfBytes":"32","value":"t_bytes32"},"t_mapping(t_bytes32,t_address)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => address)","numberOfBytes":"32","value":"t_address"},"t_mapping(t_bytes32,t_struct(Profile)2629_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct IRegistry.Profile)","numberOfBytes":"32","value":"t_struct(Profile)2629_storage"},"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52423_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Metadata)3098_storage":{"encoding":"inplace","label":"struct Metadata","numberOfBytes":"64","members":[{"astId":3094,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"protocol","offset":0,"slot":"0","type":"t_uint256"},{"astId":3097,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"pointer","offset":0,"slot":"1","type":"t_string_storage"}]},"t_struct(Profile)2629_storage":{"encoding":"inplace","label":"struct IRegistry.Profile","numberOfBytes":"224","members":[{"astId":2617,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"id","offset":0,"slot":"0","type":"t_bytes32"},{"astId":2619,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":2621,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"name","offset":0,"slot":"2","type":"t_string_storage"},{"astId":2624,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"metadata","offset":0,"slot":"3","type":"t_struct(Metadata)3098_storage"},{"astId":2626,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"owner","offset":0,"slot":"5","type":"t_address"},{"astId":2628,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"anchor","offset":0,"slot":"6","type":"t_address"}]},"t_struct(RoleData)52423_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52420,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52422,"contract":"lib/allo-v2/contracts/core/Registry.sol:Registry","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","id":2296,"exportedSymbols":{"AccessControlUpgradeable":[52736],"AddressUpgradeable":[53684],"Anchor":[1492],"ContextUpgradeable":[53735],"ERC165Upgradeable":[54009],"ERC20":[4491],"Errors":[3089],"IAccessControlUpgradeable":[52809],"IERC165Upgradeable":[54021],"IRegistry":[2802],"Initializable":[53191],"MathUpgradeable":[54887],"Metadata":[3098],"Native":[3106],"Registry":[2295],"SafeTransferLib":[4649],"SignedMathUpgradeable":[54992],"StringsUpgradeable":[53964],"Transfer":[3317]},"nodeType":"SourceUnit","src":"42:21126:2","nodes":[{"id":1494,"nodeType":"PragmaDirective","src":"42:23:2","nodes":[],"literals":["solidity","0.8",".19"]},{"id":1495,"nodeType":"ImportDirective","src":"89:90:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":52737,"symbolAliases":[],"unitAlias":""},{"id":1496,"nodeType":"ImportDirective","src":"180:84:2","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":53192,"symbolAliases":[],"unitAlias":""},{"id":1498,"nodeType":"ImportDirective","src":"265:50:2","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":1497,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"273:5:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1499,"nodeType":"ImportDirective","src":"330:36:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"./interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":2803,"symbolAliases":[],"unitAlias":""},{"id":1501,"nodeType":"ImportDirective","src":"389:36:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Anchor.sol","file":"./Anchor.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":1493,"symbolAliases":[{"foreign":{"id":1500,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"397:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1503,"nodeType":"ImportDirective","src":"426:46:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Errors.sol","file":"./libraries/Errors.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3090,"symbolAliases":[{"foreign":{"id":1502,"name":"Errors","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3089,"src":"434:6:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1505,"nodeType":"ImportDirective","src":"473:50:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"./libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":1504,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"481:8:2","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":1506,"nodeType":"ImportDirective","src":"524:32:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Native.sol","file":"./libraries/Native.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3107,"symbolAliases":[],"unitAlias":""},{"id":1507,"nodeType":"ImportDirective","src":"557:34:2","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Transfer.sol","file":"./libraries/Transfer.sol","nameLocation":"-1:-1:-1","scope":2296,"sourceUnit":3318,"symbolAliases":[],"unitAlias":""},{"id":2295,"nodeType":"ContractDefinition","src":"5237:15930:2","nodes":[{"id":1525,"nodeType":"VariableDeclaration","src":"5544:52:2","nodes":[],"constant":false,"documentation":{"id":1521,"nodeType":"StructuredDocumentation","src":"5447:92:2","text":"@notice This maps the anchor address to the profile ID\n @dev anchor -> Profile.id"},"functionSelector":"4756487f","mutability":"mutable","name":"anchorToProfileId","nameLocation":"5579:17:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"typeName":{"id":1524,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1522,"name":"address","nodeType":"ElementaryTypeName","src":"5552:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"5544:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1523,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5563:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}},"visibility":"public"},{"id":1531,"nodeType":"VariableDeclaration","src":"5702:47:2","nodes":[],"constant":false,"documentation":{"id":1526,"nodeType":"StructuredDocumentation","src":"5603:94:2","text":"@notice This maps the profile ID to the profile details\n @dev Profile.id -> Profile"},"functionSelector":"ee888196","mutability":"mutable","name":"profilesById","nameLocation":"5737:12:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile)"},"typeName":{"id":1530,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1527,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5710:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5702:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1529,"nodeType":"UserDefinedTypeName","pathNode":{"id":1528,"name":"Profile","nameLocations":["5721:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"5721:7:2"},"referencedDeclaration":2629,"src":"5721:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}}},"visibility":"public"},{"id":1536,"nodeType":"VariableDeclaration","src":"5859:58:2","nodes":[],"constant":false,"documentation":{"id":1532,"nodeType":"StructuredDocumentation","src":"5756:98:2","text":"@notice This maps the profile ID to the pending owner\n @dev Profile.id -> pending owner"},"functionSelector":"50d005e0","mutability":"mutable","name":"profileIdToPendingOwner","nameLocation":"5894:23:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"typeName":{"id":1535,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":1533,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5867:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Mapping","src":"5859:27:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":1534,"name":"address","nodeType":"ElementaryTypeName","src":"5878:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},"visibility":"public"},{"id":1542,"nodeType":"VariableDeclaration","src":"5974:60:2","nodes":[],"constant":true,"documentation":{"id":1537,"nodeType":"StructuredDocumentation","src":"5924:45:2","text":"@notice Allo Owner Role for fund recovery"},"functionSelector":"cfda7e0a","mutability":"constant","name":"ALLO_OWNER","nameLocation":"5998:10:2","scope":2295,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1538,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5974:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"414c4c4f5f4f574e4552","id":1540,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"6021:12:2","typeDescriptions":{"typeIdentifier":"t_stringliteral_815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e6882747","typeString":"literal_string \"ALLO_OWNER\""},"value":"ALLO_OWNER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_815b5a78dc333d344c7df9da23c04dbd432015cc701876ddb9ffe850e6882747","typeString":"literal_string \"ALLO_OWNER\""}],"id":1539,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"6011:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":1541,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6011:23:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":1553,"nodeType":"ModifierDefinition","src":"6360:108:2","nodes":[],"body":{"id":1552,"nodeType":"Block","src":"6406:62:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1548,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1545,"src":"6439:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":1547,"name":"_checkOnlyProfileOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2071,"src":"6416:22:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$returns$__$","typeString":"function (bytes32) view"}},"id":1549,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6416:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1550,"nodeType":"ExpressionStatement","src":"6416:34:2"},{"id":1551,"nodeType":"PlaceholderStatement","src":"6460:1:2"}]},"documentation":{"id":1543,"nodeType":"StructuredDocumentation","src":"6177:178:2","text":"@notice Checks if the caller is the profile owner\n @dev Reverts `UNAUTHORIZED()` if the caller is not the profile owner\n @param _profileId The ID of the profile"},"name":"onlyProfileOwner","nameLocation":"6369:16:2","parameters":{"id":1546,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1545,"mutability":"mutable","name":"_profileId","nameLocation":"6394:10:2","nodeType":"VariableDeclaration","scope":1553,"src":"6386:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1544,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6386:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"6385:20:2"},"virtual":false,"visibility":"internal"},{"id":1578,"nodeType":"FunctionDefinition","src":"6841:257:2","nodes":[],"body":{"id":1577,"nodeType":"Block","src":"6903:195:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1567,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1562,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"6968:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1565,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6986:1:2","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":1564,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6978:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1563,"name":"address","nodeType":"ElementaryTypeName","src":"6978:7:2","typeDescriptions":{}}},"id":1566,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6978:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6968:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1571,"nodeType":"IfStatement","src":"6964:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1568,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"6997:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1569,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6997:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1570,"nodeType":"RevertStatement","src":"6990:21:2"}},{"expression":{"arguments":[{"id":1573,"name":"ALLO_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"7072:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1574,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1556,"src":"7084:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1572,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"7061:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1575,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7061:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1576,"nodeType":"ExpressionStatement","src":"7061:30:2"}]},"documentation":{"id":1554,"nodeType":"StructuredDocumentation","src":"6608:228:2","text":"@notice Initializes the contract after an upgrade\n @dev During upgrade -> a higher version should be passed to reinitializer. Reverts if the '_owner' is the 'address(0)'\n @param _owner The owner of the contract"},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"31","id":1559,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6900:1:2","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"}],"id":1560,"kind":"modifierInvocation","modifierName":{"id":1558,"name":"reinitializer","nameLocations":["6886:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":53126,"src":"6886:13:2"},"nodeType":"ModifierInvocation","src":"6886:16:2"}],"name":"initialize","nameLocation":"6850:10:2","parameters":{"id":1557,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1556,"mutability":"mutable","name":"_owner","nameLocation":"6869:6:2","nodeType":"VariableDeclaration","scope":1578,"src":"6861:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1555,"name":"address","nodeType":"ElementaryTypeName","src":"6861:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6860:16:2"},"returnParameters":{"id":1561,"nodeType":"ParameterList","parameters":[],"src":"6903:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1592,"nodeType":"FunctionDefinition","src":"7472:131:2","nodes":[],"body":{"id":1591,"nodeType":"Block","src":"7555:48:2","nodes":[],"statements":[{"expression":{"baseExpression":{"id":1587,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7572:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1589,"indexExpression":{"id":1588,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1581,"src":"7585:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7572:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"functionReturnParameters":1586,"id":1590,"nodeType":"Return","src":"7565:31:2"}]},"baseFunctions":[2685],"documentation":{"id":1579,"nodeType":"StructuredDocumentation","src":"7240:227:2","text":"@notice Retrieve profile by profileId\n @dev Used when you have the 'profileId' and want to retrieve the profile\n @param _profileId The ID of the profile\n @return The Profile details for the `_profileId`"},"functionSelector":"0114cf0a","implemented":true,"kind":"function","modifiers":[],"name":"getProfileById","nameLocation":"7481:14:2","parameters":{"id":1582,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1581,"mutability":"mutable","name":"_profileId","nameLocation":"7504:10:2","nodeType":"VariableDeclaration","scope":1592,"src":"7496:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1580,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7496:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"7495:20:2"},"returnParameters":{"id":1586,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1585,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1592,"src":"7539:14:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1584,"nodeType":"UserDefinedTypeName","pathNode":{"id":1583,"name":"Profile","nameLocations":["7539:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7539:7:2"},"referencedDeclaration":2629,"src":"7539:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7538:16:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1612,"nodeType":"FunctionDefinition","src":"7837:187:2","nodes":[],"body":{"id":1611,"nodeType":"Block","src":"7921:103:2","nodes":[],"statements":[{"assignments":[1602],"declarations":[{"constant":false,"id":1602,"mutability":"mutable","name":"profileId","nameLocation":"7939:9:2","nodeType":"VariableDeclaration","scope":1611,"src":"7931:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1601,"name":"bytes32","nodeType":"ElementaryTypeName","src":"7931:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1606,"initialValue":{"baseExpression":{"id":1603,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"7951:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1605,"indexExpression":{"id":1604,"name":"_anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1595,"src":"7969:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7951:26:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"7931:46:2"},{"expression":{"baseExpression":{"id":1607,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"7994:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1609,"indexExpression":{"id":1608,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1602,"src":"8007:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"7994:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"functionReturnParameters":1600,"id":1610,"nodeType":"Return","src":"7987:30:2"}]},"baseFunctions":[2694],"documentation":{"id":1593,"nodeType":"StructuredDocumentation","src":"7609:223:2","text":"@notice Retrieve profile by anchor\n @dev Used when you have the 'anchor' address and want to retrieve the profile\n @param _anchor The anchor of the profile\n @return Profile details for the `_anchor`"},"functionSelector":"dd93da43","implemented":true,"kind":"function","modifiers":[],"name":"getProfileByAnchor","nameLocation":"7846:18:2","parameters":{"id":1596,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1595,"mutability":"mutable","name":"_anchor","nameLocation":"7873:7:2","nodeType":"VariableDeclaration","scope":1612,"src":"7865:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1594,"name":"address","nodeType":"ElementaryTypeName","src":"7865:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"7864:17:2"},"returnParameters":{"id":1600,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1599,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1612,"src":"7905:14:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1598,"nodeType":"UserDefinedTypeName","pathNode":{"id":1597,"name":"Profile","nameLocations":["7905:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"7905:7:2"},"referencedDeclaration":2629,"src":"7905:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"src":"7904:16:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1756,"nodeType":"FunctionDefinition","src":"8781:1901:2","nodes":[],"body":{"id":1755,"nodeType":"Block","src":"8984:1698:2","nodes":[],"statements":[{"assignments":[1631],"declarations":[{"constant":false,"id":1631,"mutability":"mutable","name":"profileId","nameLocation":"9068:9:2","nodeType":"VariableDeclaration","scope":1755,"src":"9060:17:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1630,"name":"bytes32","nodeType":"ElementaryTypeName","src":"9060:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":1636,"initialValue":{"arguments":[{"id":1633,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9099:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1634,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9107:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1632,"name":"_generateProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2211,"src":"9080:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_uint256_$_t_address_$returns$_t_bytes32_$","typeString":"function (uint256,address) pure returns (bytes32)"}},"id":1635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9080:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"9060:54:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":1637,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"9173:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1639,"indexExpression":{"id":1638,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9186:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9173:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1640,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9197:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"9173:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":1643,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9215:1:2","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":1642,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9207:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1641,"name":"address","nodeType":"ElementaryTypeName","src":"9207:7:2","typeDescriptions":{}}},"id":1644,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9173:44:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1649,"nodeType":"IfStatement","src":"9169:78:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1646,"name":"NONCE_NOT_AVAILABLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3026,"src":"9226:19:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9226:21:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1648,"nodeType":"RevertStatement","src":"9219:28:2"}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1655,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1650,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9317:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1653,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9335:1:2","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":1652,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9327:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1651,"name":"address","nodeType":"ElementaryTypeName","src":"9327:7:2","typeDescriptions":{}}},"id":1654,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9327:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9317:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1659,"nodeType":"IfStatement","src":"9313:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1656,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"9346:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1657,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9346:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1658,"nodeType":"RevertStatement","src":"9339:21:2"}},{"assignments":[1662],"declarations":[{"constant":false,"id":1662,"mutability":"mutable","name":"profile","nameLocation":"9462:7:2","nodeType":"VariableDeclaration","scope":1755,"src":"9447:22:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1661,"nodeType":"UserDefinedTypeName","pathNode":{"id":1660,"name":"Profile","nameLocations":["9447:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"9447:7:2"},"referencedDeclaration":2629,"src":"9447:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1674,"initialValue":{"arguments":[{"id":1664,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9498:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1665,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1615,"src":"9528:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":1666,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"9554:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1667,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1620,"src":"9583:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":1668,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9613:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":1670,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9657:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1671,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1617,"src":"9668:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1669,"name":"_generateAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"9641:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,string memory) returns (address)"}},"id":1672,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9641:33:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1663,"name":"Profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2629,"src":"9472:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Profile_$2629_storage_ptr_$","typeString":"type(struct IRegistry.Profile storage pointer)"}},"id":1673,"isConstant":false,"isLValue":false,"isPure":false,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["9494:2:2","9521:5:2","9548:4:2","9573:8:2","9606:5:2","9633:6:2"],"names":["id","nonce","name","metadata","owner","anchor"],"nodeType":"FunctionCall","src":"9472:213:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"nodeType":"VariableDeclarationStatement","src":"9447:238:2"},{"expression":{"id":1679,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1675,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"9696:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1677,"indexExpression":{"id":1676,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9709:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9696:23:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1678,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"9722:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"src":"9696:33:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1680,"nodeType":"ExpressionStatement","src":"9696:33:2"},{"expression":{"id":1686,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1681,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"9739:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1684,"indexExpression":{"expression":{"id":1682,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"9757:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1683,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9765:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"9757:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9739:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1685,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"9775:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9739:45:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1687,"nodeType":"ExpressionStatement","src":"9739:45:2"},{"assignments":[1689],"declarations":[{"constant":false,"id":1689,"mutability":"mutable","name":"memberLength","nameLocation":"9851:12:2","nodeType":"VariableDeclaration","scope":1755,"src":"9843:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1688,"name":"uint256","nodeType":"ElementaryTypeName","src":"9843:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1692,"initialValue":{"expression":{"id":1690,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"9866:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1691,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9875:6:2","memberName":"length","nodeType":"MemberAccess","src":"9866:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"9843:38:2"},{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1700,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1695,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1693,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"9942:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":1694,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9957:1:2","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9942:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1699,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1696,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1622,"src":"9962:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":1697,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"9972:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1698,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9976:6:2","memberName":"sender","nodeType":"MemberAccess","src":"9972:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9962:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"9942:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1705,"nodeType":"IfStatement","src":"9938:92:2","trueBody":{"id":1704,"nodeType":"Block","src":"9984:46:2","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1701,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"10005:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10005:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1703,"nodeType":"RevertStatement","src":"9998:21:2"}]}},{"body":{"id":1737,"nodeType":"Block","src":"10075:367:2","statements":[{"assignments":[1713],"declarations":[{"constant":false,"id":1713,"mutability":"mutable","name":"member","nameLocation":"10097:6:2","nodeType":"VariableDeclaration","scope":1737,"src":"10089:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1712,"name":"address","nodeType":"ElementaryTypeName","src":"10089:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1717,"initialValue":{"baseExpression":{"id":1714,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1625,"src":"10106:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1716,"indexExpression":{"id":1715,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10115:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"10106:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10089:28:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1723,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1718,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"10206:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1721,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10224:1:2","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":1720,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10216:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1719,"name":"address","nodeType":"ElementaryTypeName","src":"10216:7:2","typeDescriptions":{}}},"id":1722,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10216:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10206:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1727,"nodeType":"IfStatement","src":"10202:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1724,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"10235:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10235:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1726,"nodeType":"RevertStatement","src":"10228:21:2"}},{"expression":{"arguments":[{"id":1729,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10354:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1730,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1713,"src":"10365:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1728,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"10343:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1731,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10343:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1732,"nodeType":"ExpressionStatement","src":"10343:29:2"},{"id":1736,"nodeType":"UncheckedBlock","src":"10386:46:2","statements":[{"expression":{"id":1734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"10414:3:2","subExpression":{"id":1733,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10416:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":1735,"nodeType":"ExpressionStatement","src":"10414:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1711,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1709,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1707,"src":"10056:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1710,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1689,"src":"10060:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10056:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1738,"initializationExpression":{"assignments":[1707],"declarations":[{"constant":false,"id":1707,"mutability":"mutable","name":"i","nameLocation":"10053:1:2","nodeType":"VariableDeclaration","scope":1738,"src":"10045:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1706,"name":"uint256","nodeType":"ElementaryTypeName","src":"10045:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1708,"nodeType":"VariableDeclarationStatement","src":"10045:9:2"},"nodeType":"ForStatement","src":"10040:402:2"},{"eventCall":{"arguments":[{"id":1740,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10527:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1741,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10538:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1742,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10546:5:2","memberName":"nonce","nodeType":"MemberAccess","referencedDeclaration":2619,"src":"10538:13:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"expression":{"id":1743,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10553:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1744,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10561:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2621,"src":"10553:12:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"expression":{"id":1745,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10567:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1746,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10575:8:2","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2624,"src":"10567:16:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"expression":{"id":1747,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10585:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1748,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10593:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"10585:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":1749,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1662,"src":"10600:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":1750,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10608:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"10600:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1739,"name":"ProfileCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2645,"src":"10512:14:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_address_$returns$__$","typeString":"function (bytes32,uint256,string memory,struct Metadata memory,address,address)"}},"id":1751,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10512:103:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1752,"nodeType":"EmitStatement","src":"10507:108:2"},{"expression":{"id":1753,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1631,"src":"10666:9:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":1629,"id":1754,"nodeType":"Return","src":"10659:16:2"}]},"baseFunctions":[2742],"documentation":{"id":1613,"nodeType":"StructuredDocumentation","src":"8030:746:2","text":"@notice Creates a new profile\n @dev This will also generate the 'profileId' and 'anchor' address, emits a 'ProfileCreated()' event\n Note: The 'nonce' is used to generate the 'profileId' and should be unique for each profile\n Note: The 'name' and 'profileId' are used to generate the 'anchor' address\n @param _nonce Nonce used to generate profileId. Can be any integer, but should be unique\n for each profile.\n @param _name The name of the profile\n @param _metadata The metadata of the profile\n @param _owner The owner of the profile\n @param _members The members of the profile (can be set only if msg.sender == _owner)\n @return The ID for the created profile"},"functionSelector":"3a92f65f","implemented":true,"kind":"function","modifiers":[],"name":"createProfile","nameLocation":"8790:13:2","parameters":{"id":1626,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1615,"mutability":"mutable","name":"_nonce","nameLocation":"8821:6:2","nodeType":"VariableDeclaration","scope":1756,"src":"8813:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1614,"name":"uint256","nodeType":"ElementaryTypeName","src":"8813:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":1617,"mutability":"mutable","name":"_name","nameLocation":"8851:5:2","nodeType":"VariableDeclaration","scope":1756,"src":"8837:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1616,"name":"string","nodeType":"ElementaryTypeName","src":"8837:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":1620,"mutability":"mutable","name":"_metadata","nameLocation":"8882:9:2","nodeType":"VariableDeclaration","scope":1756,"src":"8866:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":1619,"nodeType":"UserDefinedTypeName","pathNode":{"id":1618,"name":"Metadata","nameLocations":["8866:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"8866:8:2"},"referencedDeclaration":3098,"src":"8866:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":1622,"mutability":"mutable","name":"_owner","nameLocation":"8909:6:2","nodeType":"VariableDeclaration","scope":1756,"src":"8901:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1621,"name":"address","nodeType":"ElementaryTypeName","src":"8901:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":1625,"mutability":"mutable","name":"_members","nameLocation":"8942:8:2","nodeType":"VariableDeclaration","scope":1756,"src":"8925:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1623,"name":"address","nodeType":"ElementaryTypeName","src":"8925:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1624,"nodeType":"ArrayTypeName","src":"8925:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"8803:153:2"},"returnParameters":{"id":1629,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1628,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1756,"src":"8975:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1627,"name":"bytes32","nodeType":"ElementaryTypeName","src":"8975:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"8974:9:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1820,"nodeType":"FunctionDefinition","src":"11210:830:2","nodes":[],"body":{"id":1819,"nodeType":"Block","src":"11369:671:2","nodes":[],"statements":[{"expression":{"id":1774,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":1769,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11420:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":1771,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11445:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1772,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11457:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":1770,"name":"_generateAnchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2192,"src":"11429:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_string_memory_ptr_$returns$_t_address_$","typeString":"function (bytes32,string memory) returns (address)"}},"id":1773,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11429:34:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11420:43:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1775,"nodeType":"ExpressionStatement","src":"11420:43:2"},{"assignments":[1778],"declarations":[{"constant":false,"id":1778,"mutability":"mutable","name":"profile","nameLocation":"11554:7:2","nodeType":"VariableDeclaration","scope":1819,"src":"11538:23:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1777,"nodeType":"UserDefinedTypeName","pathNode":{"id":1776,"name":"Profile","nameLocations":["11538:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"11538:7:2"},"referencedDeclaration":2629,"src":"11538:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1782,"initialValue":{"baseExpression":{"id":1779,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"11564:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1781,"indexExpression":{"id":1780,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11577:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11564:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11538:50:2"},{"expression":{"id":1787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1783,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11627:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1785,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11635:4:2","memberName":"name","nodeType":"MemberAccess","referencedDeclaration":2621,"src":"11627:12:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1786,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11642:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"11627:20:2","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":1788,"nodeType":"ExpressionStatement","src":"11627:20:2"},{"expression":{"id":1797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1789,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"11687:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1792,"indexExpression":{"expression":{"id":1790,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11705:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1791,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11713:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"11705:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11687:33:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":1795,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11731:1:2","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":1794,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11723:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes32_$","typeString":"type(bytes32)"},"typeName":{"id":1793,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11723:7:2","typeDescriptions":{}}},"id":1796,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11723:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11687:46:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1798,"nodeType":"ExpressionStatement","src":"11687:46:2"},{"expression":{"id":1803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1799,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1778,"src":"11774:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"11782:6:2","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"11774:14:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1802,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11791:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11774:23:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1804,"nodeType":"ExpressionStatement","src":"11774:23:2"},{"expression":{"id":1809,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1805,"name":"anchorToProfileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1525,"src":"11807:17:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bytes32_$","typeString":"mapping(address => bytes32)"}},"id":1807,"indexExpression":{"id":1806,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11825:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11807:25:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1808,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11835:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11807:38:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":1810,"nodeType":"ExpressionStatement","src":"11807:38:2"},{"eventCall":{"arguments":[{"id":1812,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11950:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1813,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1761,"src":"11962:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},{"id":1814,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"11969:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1811,"name":"ProfileNameUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2654,"src":"11931:18:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (bytes32,string memory,address)"}},"id":1815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11931:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1816,"nodeType":"EmitStatement","src":"11926:50:2"},{"expression":{"id":1817,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1767,"src":"12027:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":1768,"id":1818,"nodeType":"Return","src":"12020:13:2"}]},"baseFunctions":[2752],"documentation":{"id":1757,"nodeType":"StructuredDocumentation","src":"10688:517:2","text":"@notice Updates the name of the profile and generates new anchor.\n Emits a 'ProfileNameUpdated()' event.\n @dev Use caution when updating your profile name as it will generate a new anchor address. You can always update the name\n back to the original name to get the original anchor address. 'msg.sender' must be the owner of the profile.\n @param _profileId The profileId of the profile\n @param _name The new name of the profile\n @return anchor The new anchor"},"functionSelector":"cf189ff2","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1764,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1759,"src":"11320:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1765,"kind":"modifierInvocation","modifierName":{"id":1763,"name":"onlyProfileOwner","nameLocations":["11303:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"11303:16:2"},"nodeType":"ModifierInvocation","src":"11303:28:2"}],"name":"updateProfileName","nameLocation":"11219:17:2","parameters":{"id":1762,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1759,"mutability":"mutable","name":"_profileId","nameLocation":"11245:10:2","nodeType":"VariableDeclaration","scope":1820,"src":"11237:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1758,"name":"bytes32","nodeType":"ElementaryTypeName","src":"11237:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1761,"mutability":"mutable","name":"_name","nameLocation":"11271:5:2","nodeType":"VariableDeclaration","scope":1820,"src":"11257:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":1760,"name":"string","nodeType":"ElementaryTypeName","src":"11257:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"11236:41:2"},"returnParameters":{"id":1768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1767,"mutability":"mutable","name":"anchor","nameLocation":"11357:6:2","nodeType":"VariableDeclaration","scope":1820,"src":"11349:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1766,"name":"address","nodeType":"ElementaryTypeName","src":"11349:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11348:16:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1845,"nodeType":"FunctionDefinition","src":"12309:415:2","nodes":[],"body":{"id":1844,"nodeType":"Block","src":"12445:279:2","nodes":[],"statements":[{"expression":{"id":1837,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":1832,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"12553:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1834,"indexExpression":{"id":1833,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12566:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12553:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":1835,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"12578:8:2","memberName":"metadata","nodeType":"MemberAccess","referencedDeclaration":2624,"src":"12553:33:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1836,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"12589:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},"src":"12553:45:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage","typeString":"struct Metadata storage ref"}},"id":1838,"nodeType":"ExpressionStatement","src":"12553:45:2"},{"eventCall":{"arguments":[{"id":1840,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12695:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1841,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1826,"src":"12707:9:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":1839,"name":"ProfileMetadataUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2662,"src":"12672:22:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,struct Metadata memory)"}},"id":1842,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12672:45:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1843,"nodeType":"EmitStatement","src":"12667:50:2"}]},"baseFunctions":[2761],"documentation":{"id":1821,"nodeType":"StructuredDocumentation","src":"12046:258:2","text":"@notice Update the 'Metadata' of the profile. Emits a 'ProfileMetadataUpdated()' event.\n @dev 'msg.sender' must be the owner of the profile.\n @param _profileId The ID of the profile\n @param _metadata The new 'Metadata' of the profile"},"functionSelector":"ac402839","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1829,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1823,"src":"12429:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1830,"kind":"modifierInvocation","modifierName":{"id":1828,"name":"onlyProfileOwner","nameLocations":["12412:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"12412:16:2"},"nodeType":"ModifierInvocation","src":"12412:28:2"}],"name":"updateProfileMetadata","nameLocation":"12318:21:2","parameters":{"id":1827,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1823,"mutability":"mutable","name":"_profileId","nameLocation":"12348:10:2","nodeType":"VariableDeclaration","scope":1845,"src":"12340:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1822,"name":"bytes32","nodeType":"ElementaryTypeName","src":"12340:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1826,"mutability":"mutable","name":"_metadata","nameLocation":"12376:9:2","nodeType":"VariableDeclaration","scope":1845,"src":"12360:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":1825,"nodeType":"UserDefinedTypeName","pathNode":{"id":1824,"name":"Metadata","nameLocations":["12360:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12360:8:2"},"referencedDeclaration":3098,"src":"12360:8:2","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"12339:47:2"},"returnParameters":{"id":1831,"nodeType":"ParameterList","parameters":[],"src":"12445:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1866,"nodeType":"FunctionDefinition","src":"12992:208:2","nodes":[],"body":{"id":1865,"nodeType":"Block","src":"13093:107:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":1863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":1856,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"13128:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1857,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"13140:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1855,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"13110:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13110:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":1860,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1848,"src":"13172:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1861,"name":"_account","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1850,"src":"13184:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1859,"name":"_isMemberOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"13153:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1862,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13153:40:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"13110:83:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1854,"id":1864,"nodeType":"Return","src":"13103:90:2"}]},"baseFunctions":[2704],"documentation":{"id":1846,"nodeType":"StructuredDocumentation","src":"12730:257:2","text":"@notice Checks if the address is an owner or member of the profile\n @param _profileId The ID of the profile\n @param _account The address to check\n @return 'true' if the address is an owner or member of the profile, otherwise 'false'"},"functionSelector":"5e8a7915","implemented":true,"kind":"function","modifiers":[],"name":"isOwnerOrMemberOfProfile","nameLocation":"13001:24:2","parameters":{"id":1851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1848,"mutability":"mutable","name":"_profileId","nameLocation":"13034:10:2","nodeType":"VariableDeclaration","scope":1866,"src":"13026:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1847,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13026:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1850,"mutability":"mutable","name":"_account","nameLocation":"13054:8:2","nodeType":"VariableDeclaration","scope":1866,"src":"13046:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1849,"name":"address","nodeType":"ElementaryTypeName","src":"13046:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13025:38:2"},"returnParameters":{"id":1854,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1853,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1866,"src":"13087:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1852,"name":"bool","nodeType":"ElementaryTypeName","src":"13087:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13086:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1882,"nodeType":"FunctionDefinition","src":"13452:152:2","nodes":[],"body":{"id":1881,"nodeType":"Block","src":"13543:61:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1877,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1869,"src":"13578:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1878,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1871,"src":"13590:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1876,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"13560:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1879,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13560:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1875,"id":1880,"nodeType":"Return","src":"13553:44:2"}]},"baseFunctions":[2714],"documentation":{"id":1867,"nodeType":"StructuredDocumentation","src":"13206:241:2","text":"@notice Checks if the given address is an owner of the profile\n @param _profileId The ID of the profile\n @param _owner The address to check\n @return 'true' if the address is an owner of the profile, otherwise 'false'"},"functionSelector":"39b86b8c","implemented":true,"kind":"function","modifiers":[],"name":"isOwnerOfProfile","nameLocation":"13461:16:2","parameters":{"id":1872,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1869,"mutability":"mutable","name":"_profileId","nameLocation":"13486:10:2","nodeType":"VariableDeclaration","scope":1882,"src":"13478:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1868,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13478:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1871,"mutability":"mutable","name":"_owner","nameLocation":"13506:6:2","nodeType":"VariableDeclaration","scope":1882,"src":"13498:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1870,"name":"address","nodeType":"ElementaryTypeName","src":"13498:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13477:36:2"},"returnParameters":{"id":1875,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1874,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1882,"src":"13537:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1873,"name":"bool","nodeType":"ElementaryTypeName","src":"13537:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13536:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1898,"nodeType":"FunctionDefinition","src":"13857:156:2","nodes":[],"body":{"id":1897,"nodeType":"Block","src":"13950:63:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":1893,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1885,"src":"13986:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1894,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1887,"src":"13998:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1892,"name":"_isMemberOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2245,"src":"13967:18:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":1895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13967:39:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":1891,"id":1896,"nodeType":"Return","src":"13960:46:2"}]},"baseFunctions":[2724],"documentation":{"id":1883,"nodeType":"StructuredDocumentation","src":"13610:242:2","text":"@notice Checks if the given address is a member of the profile\n @param _profileId The ID of the profile\n @param _member The address to check\n @return 'true' if the address is a member of the profile, otherwise 'false'"},"functionSelector":"0ec1fbac","implemented":true,"kind":"function","modifiers":[],"name":"isMemberOfProfile","nameLocation":"13866:17:2","parameters":{"id":1888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1885,"mutability":"mutable","name":"_profileId","nameLocation":"13892:10:2","nodeType":"VariableDeclaration","scope":1898,"src":"13884:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1884,"name":"bytes32","nodeType":"ElementaryTypeName","src":"13884:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1887,"mutability":"mutable","name":"_member","nameLocation":"13912:7:2","nodeType":"VariableDeclaration","scope":1898,"src":"13904:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1886,"name":"address","nodeType":"ElementaryTypeName","src":"13904:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13883:37:2"},"returnParameters":{"id":1891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1890,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":1898,"src":"13944:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":1889,"name":"bool","nodeType":"ElementaryTypeName","src":"13944:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"13943:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":1921,"nodeType":"FunctionDefinition","src":"14336:382:2","nodes":[],"body":{"id":1920,"nodeType":"Block","src":"14472:246:2","nodes":[],"statements":[{"expression":{"id":1913,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":1909,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"14530:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1911,"indexExpression":{"id":1910,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14554:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14530:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1912,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"14568:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14530:51:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1914,"nodeType":"ExpressionStatement","src":"14530:51:2"},{"eventCall":{"arguments":[{"id":1916,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14685:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":1917,"name":"_pendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1903,"src":"14697:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1915,"name":"ProfilePendingOwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2676,"src":"14658:26:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1918,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14658:53:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1919,"nodeType":"EmitStatement","src":"14653:58:2"}]},"baseFunctions":[2769],"documentation":{"id":1899,"nodeType":"StructuredDocumentation","src":"14019:312:2","text":"@notice Updates the pending owner of the profile. Emits a 'ProfilePendingOwnership()' event.\n @dev 'msg.sender' must be the owner of the profile. [1]*This is step one of two when transferring ownership.\n @param _profileId The ID of the profile\n @param _pendingOwner The new pending owner"},"functionSelector":"3b66dacd","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1906,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1901,"src":"14456:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1907,"kind":"modifierInvocation","modifierName":{"id":1905,"name":"onlyProfileOwner","nameLocations":["14439:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"14439:16:2"},"nodeType":"ModifierInvocation","src":"14439:28:2"}],"name":"updateProfilePendingOwner","nameLocation":"14345:25:2","parameters":{"id":1904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1901,"mutability":"mutable","name":"_profileId","nameLocation":"14379:10:2","nodeType":"VariableDeclaration","scope":1921,"src":"14371:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1900,"name":"bytes32","nodeType":"ElementaryTypeName","src":"14371:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1903,"mutability":"mutable","name":"_pendingOwner","nameLocation":"14399:13:2","nodeType":"VariableDeclaration","scope":1921,"src":"14391:21:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1902,"name":"address","nodeType":"ElementaryTypeName","src":"14391:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14370:43:2"},"returnParameters":{"id":1908,"nodeType":"ParameterList","parameters":[],"src":"14472:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":1966,"nodeType":"FunctionDefinition","src":"15016:745:2","nodes":[],"body":{"id":1965,"nodeType":"Block","src":"15077:684:2","nodes":[],"statements":[{"assignments":[1929],"declarations":[{"constant":false,"id":1929,"mutability":"mutable","name":"profile","nameLocation":"15147:7:2","nodeType":"VariableDeclaration","scope":1965,"src":"15131:23:2","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"},"typeName":{"id":1928,"nodeType":"UserDefinedTypeName","pathNode":{"id":1927,"name":"Profile","nameLocations":["15131:7:2"],"nodeType":"IdentifierPath","referencedDeclaration":2629,"src":"15131:7:2"},"referencedDeclaration":2629,"src":"15131:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile"}},"visibility":"internal"}],"id":1933,"initialValue":{"baseExpression":{"id":1930,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"15157:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":1932,"indexExpression":{"id":1931,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15170:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15157:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15131:50:2"},{"assignments":[1935],"declarations":[{"constant":false,"id":1935,"mutability":"mutable","name":"newOwner","nameLocation":"15290:8:2","nodeType":"VariableDeclaration","scope":1965,"src":"15282:16:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1934,"name":"address","nodeType":"ElementaryTypeName","src":"15282:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1939,"initialValue":{"baseExpression":{"id":1936,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"15301:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1938,"indexExpression":{"id":1937,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15325:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15301:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15282:54:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":1943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":1940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15414:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":1941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15418:6:2","memberName":"sender","nodeType":"MemberAccess","src":"15414:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":1942,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15428:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15414:22:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":1947,"nodeType":"IfStatement","src":"15410:54:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":1944,"name":"NOT_PENDING_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3029,"src":"15445:17:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":1945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15445:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1946,"nodeType":"RevertStatement","src":"15438:26:2"}},{"expression":{"id":1952,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":1948,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1929,"src":"15550:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1950,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15558:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"15550:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":1951,"name":"newOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1935,"src":"15566:8:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15550:24:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1953,"nodeType":"ExpressionStatement","src":"15550:24:2"},{"expression":{"id":1957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"15584:42:2","subExpression":{"baseExpression":{"id":1954,"name":"profileIdToPendingOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1536,"src":"15591:23:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_address_$","typeString":"mapping(bytes32 => address)"}},"id":1956,"indexExpression":{"id":1955,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15615:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15591:35:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1958,"nodeType":"ExpressionStatement","src":"15584:42:2"},{"eventCall":{"arguments":[{"id":1960,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1924,"src":"15728:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":1961,"name":"profile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1929,"src":"15740:7:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage_ptr","typeString":"struct IRegistry.Profile storage pointer"}},"id":1962,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"15748:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"15740:13:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":1959,"name":"ProfileOwnerUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2669,"src":"15708:19:2","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":1963,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15708:46:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":1964,"nodeType":"EmitStatement","src":"15703:51:2"}]},"baseFunctions":[2775],"documentation":{"id":1922,"nodeType":"StructuredDocumentation","src":"14724:287:2","text":"@notice Transfers the ownership of the profile to the pending owner and Emits a 'ProfileOwnerUdpated()' event.\n @dev 'msg.sender' must be the pending owner of the profile. [2]*This is step two of two when transferring ownership.\n @param _profileId The ID of the profile"},"functionSelector":"2497f3c6","implemented":true,"kind":"function","modifiers":[],"name":"acceptProfileOwnership","nameLocation":"15025:22:2","parameters":{"id":1925,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1924,"mutability":"mutable","name":"_profileId","nameLocation":"15056:10:2","nodeType":"VariableDeclaration","scope":1966,"src":"15048:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1923,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15048:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"15047:20:2"},"returnParameters":{"id":1926,"nodeType":"ParameterList","parameters":[],"src":"15077:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2017,"nodeType":"FunctionDefinition","src":"15962:658:2","nodes":[],"body":{"id":2016,"nodeType":"Block","src":"16067:553:2","nodes":[],"statements":[{"assignments":[1979],"declarations":[{"constant":false,"id":1979,"mutability":"mutable","name":"memberLength","nameLocation":"16085:12:2","nodeType":"VariableDeclaration","scope":2016,"src":"16077:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1978,"name":"uint256","nodeType":"ElementaryTypeName","src":"16077:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1982,"initialValue":{"expression":{"id":1980,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"16100:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1981,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16109:6:2","memberName":"length","nodeType":"MemberAccess","src":"16100:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16077:38:2"},{"body":{"id":2014,"nodeType":"Block","src":"16246:368:2","statements":[{"assignments":[1990],"declarations":[{"constant":false,"id":1990,"mutability":"mutable","name":"member","nameLocation":"16268:6:2","nodeType":"VariableDeclaration","scope":2014,"src":"16260:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":1989,"name":"address","nodeType":"ElementaryTypeName","src":"16260:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":1994,"initialValue":{"baseExpression":{"id":1991,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1972,"src":"16277:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":1993,"indexExpression":{"id":1992,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16286:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16277:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16260:28:2"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2000,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1995,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"16377:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":1998,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16395:1:2","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":1997,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16387:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":1996,"name":"address","nodeType":"ElementaryTypeName","src":"16387:7:2","typeDescriptions":{}}},"id":1999,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16387:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"16377:20:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2004,"nodeType":"IfStatement","src":"16373:47:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2001,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"16406:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16406:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2003,"nodeType":"RevertStatement","src":"16399:21:2"}},{"expression":{"arguments":[{"id":2006,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1969,"src":"16525:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2007,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1990,"src":"16537:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2005,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"16514:10:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2008,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16514:30:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2009,"nodeType":"ExpressionStatement","src":"16514:30:2"},{"id":2013,"nodeType":"UncheckedBlock","src":"16558:46:2","statements":[{"expression":{"id":2011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"16586:3:2","subExpression":{"id":2010,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16588:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2012,"nodeType":"ExpressionStatement","src":"16586:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":1988,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":1986,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1984,"src":"16227:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":1987,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1979,"src":"16231:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16227:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2015,"initializationExpression":{"assignments":[1984],"declarations":[{"constant":false,"id":1984,"mutability":"mutable","name":"i","nameLocation":"16224:1:2","nodeType":"VariableDeclaration","scope":2015,"src":"16216:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":1983,"name":"uint256","nodeType":"ElementaryTypeName","src":"16216:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":1985,"nodeType":"VariableDeclarationStatement","src":"16216:9:2"},"nodeType":"ForStatement","src":"16211:403:2"}]},"baseFunctions":[2784],"documentation":{"id":1967,"nodeType":"StructuredDocumentation","src":"15767:190:2","text":"@notice Adds members to the profile\n @dev 'msg.sender' must be the owner of the profile.\n @param _profileId The ID of the profile\n @param _members The members to add"},"functionSelector":"5063f361","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":1975,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1969,"src":"16055:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":1976,"kind":"modifierInvocation","modifierName":{"id":1974,"name":"onlyProfileOwner","nameLocations":["16038:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"16038:16:2"},"nodeType":"ModifierInvocation","src":"16038:28:2"}],"name":"addMembers","nameLocation":"15971:10:2","parameters":{"id":1973,"nodeType":"ParameterList","parameters":[{"constant":false,"id":1969,"mutability":"mutable","name":"_profileId","nameLocation":"15990:10:2","nodeType":"VariableDeclaration","scope":2017,"src":"15982:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":1968,"name":"bytes32","nodeType":"ElementaryTypeName","src":"15982:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":1972,"mutability":"mutable","name":"_members","nameLocation":"16019:8:2","nodeType":"VariableDeclaration","scope":2017,"src":"16002:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":1970,"name":"address","nodeType":"ElementaryTypeName","src":"16002:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":1971,"nodeType":"ArrayTypeName","src":"16002:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"15981:47:2"},"returnParameters":{"id":1977,"nodeType":"ParameterList","parameters":[],"src":"16067:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2054,"nodeType":"FunctionDefinition","src":"16837:500:2","nodes":[],"body":{"id":2053,"nodeType":"Block","src":"16945:392:2","nodes":[],"statements":[{"assignments":[2030],"declarations":[{"constant":false,"id":2030,"mutability":"mutable","name":"memberLength","nameLocation":"16963:12:2","nodeType":"VariableDeclaration","scope":2053,"src":"16955:20:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2029,"name":"uint256","nodeType":"ElementaryTypeName","src":"16955:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2033,"initialValue":{"expression":{"id":2031,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"16978:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2032,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16987:6:2","memberName":"length","nodeType":"MemberAccess","src":"16978:15:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16955:38:2"},{"body":{"id":2051,"nodeType":"Block","src":"17129:202:2","statements":[{"expression":{"arguments":[{"id":2041,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"17237:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"baseExpression":{"id":2042,"name":"_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2023,"src":"17249:8:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":2044,"indexExpression":{"id":2043,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17258:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17249:11:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2040,"name":"_revokeRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52730,"src":"17225:11:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":2045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17225:36:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2046,"nodeType":"ExpressionStatement","src":"17225:36:2"},{"id":2050,"nodeType":"UncheckedBlock","src":"17275:46:2","statements":[{"expression":{"id":2048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":true,"src":"17303:3:2","subExpression":{"id":2047,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17305:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2049,"nodeType":"ExpressionStatement","src":"17303:3:2"}]}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":2039,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2037,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2035,"src":"17110:1:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":2038,"name":"memberLength","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2030,"src":"17114:12:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17110:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2052,"initializationExpression":{"assignments":[2035],"declarations":[{"constant":false,"id":2035,"mutability":"mutable","name":"i","nameLocation":"17107:1:2","nodeType":"VariableDeclaration","scope":2052,"src":"17099:9:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2034,"name":"uint256","nodeType":"ElementaryTypeName","src":"17099:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2036,"nodeType":"VariableDeclarationStatement","src":"17099:9:2"},"nodeType":"ForStatement","src":"17094:237:2"}]},"baseFunctions":[2793],"documentation":{"id":2018,"nodeType":"StructuredDocumentation","src":"16626:206:2","text":"@notice Removes members from the profile\n @dev 'msg.sender' must be the pending owner of the profile.\n @param _profileId The ID of the profile\n @param _members The members to remove"},"functionSelector":"e0cf1e4c","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2026,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2020,"src":"16933:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2027,"kind":"modifierInvocation","modifierName":{"id":2025,"name":"onlyProfileOwner","nameLocations":["16916:16:2"],"nodeType":"IdentifierPath","referencedDeclaration":1553,"src":"16916:16:2"},"nodeType":"ModifierInvocation","src":"16916:28:2"}],"name":"removeMembers","nameLocation":"16846:13:2","parameters":{"id":2024,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2020,"mutability":"mutable","name":"_profileId","nameLocation":"16868:10:2","nodeType":"VariableDeclaration","scope":2054,"src":"16860:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2019,"name":"bytes32","nodeType":"ElementaryTypeName","src":"16860:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2023,"mutability":"mutable","name":"_members","nameLocation":"16897:8:2","nodeType":"VariableDeclaration","scope":2054,"src":"16880:25:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":2021,"name":"address","nodeType":"ElementaryTypeName","src":"16880:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2022,"nodeType":"ArrayTypeName","src":"16880:9:2","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"16859:47:2"},"returnParameters":{"id":2028,"nodeType":"ParameterList","parameters":[],"src":"16945:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":2071,"nodeType":"FunctionDefinition","src":"17659:152:2","nodes":[],"body":{"id":2070,"nodeType":"Block","src":"17725:86:2","nodes":[],"statements":[{"condition":{"id":2065,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"17739:42:2","subExpression":{"arguments":[{"id":2061,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2057,"src":"17758:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":2062,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"17770:3:2","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":2063,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17774:6:2","memberName":"sender","nodeType":"MemberAccess","src":"17770:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2060,"name":"_isOwnerOfProfile","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2229,"src":"17740:17:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17740:41:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2069,"nodeType":"IfStatement","src":"17735:69:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2066,"name":"UNAUTHORIZED","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3017,"src":"17790:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17790:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2068,"nodeType":"RevertStatement","src":"17783:21:2"}}]},"documentation":{"id":2055,"nodeType":"StructuredDocumentation","src":"17479:175:2","text":"@notice Checks if the caller is the owner of the profile\n @dev Internal function used by modifier 'onlyProfileOwner'\n @param _profileId The ID of the profile"},"implemented":true,"kind":"function","modifiers":[],"name":"_checkOnlyProfileOwner","nameLocation":"17668:22:2","parameters":{"id":2058,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2057,"mutability":"mutable","name":"_profileId","nameLocation":"17699:10:2","nodeType":"VariableDeclaration","scope":2071,"src":"17691:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2056,"name":"bytes32","nodeType":"ElementaryTypeName","src":"17691:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"17690:20:2"},"returnParameters":{"id":2059,"nodeType":"ParameterList","parameters":[],"src":"17725:0:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2192,"nodeType":"FunctionDefinition","src":"18166:969:2","nodes":[],"body":{"id":2191,"nodeType":"Block","src":"18266:869:2","nodes":[],"statements":[{"assignments":[2082],"declarations":[{"constant":false,"id":2082,"mutability":"mutable","name":"encodedData","nameLocation":"18289:11:2","nodeType":"VariableDeclaration","scope":2191,"src":"18276:24:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2081,"name":"bytes","nodeType":"ElementaryTypeName","src":"18276:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2088,"initialValue":{"arguments":[{"id":2085,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18314:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2086,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2076,"src":"18326:5:2","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"expression":{"id":2083,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18303:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2084,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18307:6:2","memberName":"encode","nodeType":"MemberAccess","src":"18303:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2087,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18303:29:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18276:56:2"},{"assignments":[2090],"declarations":[{"constant":false,"id":2090,"mutability":"mutable","name":"encodedConstructorArgs","nameLocation":"18355:22:2","nodeType":"VariableDeclaration","scope":2191,"src":"18342:35:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2089,"name":"bytes","nodeType":"ElementaryTypeName","src":"18342:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2099,"initialValue":{"arguments":[{"id":2093,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18391:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2096,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18411:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2095,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18403:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2094,"name":"address","nodeType":"ElementaryTypeName","src":"18403:7:2","typeDescriptions":{}}},"id":2097,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18403:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2091,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18380:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2092,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18384:6:2","memberName":"encode","nodeType":"MemberAccess","src":"18380:10:2","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18380:37:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18342:75:2"},{"assignments":[2101],"declarations":[{"constant":false,"id":2101,"mutability":"mutable","name":"bytecode","nameLocation":"18441:8:2","nodeType":"VariableDeclaration","scope":2191,"src":"18428:21:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":2100,"name":"bytes","nodeType":"ElementaryTypeName","src":"18428:5:2","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":2110,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":2105,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"18474:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}],"id":2104,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18469:4:2","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":2106,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18469:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_Anchor_$1492","typeString":"type(contract Anchor)"}},"id":2107,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18482:12:2","memberName":"creationCode","nodeType":"MemberAccess","src":"18469:25:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":2108,"name":"encodedConstructorArgs","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2090,"src":"18496:22:2","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"}],"expression":{"id":2102,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18452:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2103,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18456:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"18452:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2109,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18452:67:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"18428:91:2"},{"assignments":[2112],"declarations":[{"constant":false,"id":2112,"mutability":"mutable","name":"salt","nameLocation":"18538:4:2","nodeType":"VariableDeclaration","scope":2191,"src":"18530:12:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2111,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18530:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"id":2116,"initialValue":{"arguments":[{"id":2114,"name":"encodedData","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2082,"src":"18555:11:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2113,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18545:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18545:22:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"VariableDeclarationStatement","src":"18530:37:2"},{"assignments":[2118],"declarations":[{"constant":false,"id":2118,"mutability":"mutable","name":"preComputedAddress","nameLocation":"18586:18:2","nodeType":"VariableDeclaration","scope":2191,"src":"18578:26:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2117,"name":"address","nodeType":"ElementaryTypeName","src":"18578:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":2145,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"arguments":[{"hexValue":"30786666","id":2130,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18678:4:2","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":2129,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18671:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_bytes1_$","typeString":"type(bytes1)"},"typeName":{"id":2128,"name":"bytes1","nodeType":"ElementaryTypeName","src":"18671:6:2","typeDescriptions":{}}},"id":2131,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18671:12:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes1","typeString":"bytes1"}},{"arguments":[{"id":2134,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18693:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2133,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18685:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2132,"name":"address","nodeType":"ElementaryTypeName","src":"18685:7:2","typeDescriptions":{}}},"id":2135,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18685:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2136,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"18700:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2138,"name":"bytecode","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2101,"src":"18716:8:2","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2137,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18706:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2139,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18706:19:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes1","typeString":"bytes1"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":2126,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"18654:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18658:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"18654:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18654:72:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2125,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"18644:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18644:83:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":2124,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18636:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint256_$","typeString":"type(uint256)"},"typeName":{"id":2123,"name":"uint256","nodeType":"ElementaryTypeName","src":"18636:7:2","typeDescriptions":{}}},"id":2142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18636:92:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2122,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18628:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_uint160_$","typeString":"type(uint160)"},"typeName":{"id":2121,"name":"uint160","nodeType":"ElementaryTypeName","src":"18628:7:2","typeDescriptions":{}}},"id":2143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18628:101:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint160","typeString":"uint160"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint160","typeString":"uint160"}],"id":2120,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18607:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2119,"name":"address","nodeType":"ElementaryTypeName","src":"18607:7:2","typeDescriptions":{}}},"id":2144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:132:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18578:161:2"},{"clauses":[{"block":{"id":2168,"nodeType":"Block","src":"18918:50:2","statements":[{"expression":{"id":2166,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2161,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"18932:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":2164,"name":"_anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2159,"src":"18949:7:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}],"id":2163,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18941:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2162,"name":"address","nodeType":"ElementaryTypeName","src":"18941:7:2","typeDescriptions":{}}},"id":2165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18941:16:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18932:25:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2167,"nodeType":"ExpressionStatement","src":"18932:25:2"}]},"errorName":"","id":2169,"nodeType":"TryCatchClause","parameters":{"id":2160,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2159,"mutability":"mutable","name":"_anchor","nameLocation":"18909:7:2","nodeType":"VariableDeclaration","scope":2169,"src":"18902:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"},"typeName":{"id":2158,"nodeType":"UserDefinedTypeName","pathNode":{"id":2157,"name":"Anchor","nameLocations":["18902:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":1492,"src":"18902:6:2"},"referencedDeclaration":1492,"src":"18902:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"visibility":"internal"}],"src":"18901:16:2"},"src":"18893:75:2"},{"block":{"id":2188,"nodeType":"Block","src":"18975:154:2","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"id":2179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"arguments":[{"id":2173,"name":"preComputedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"19008:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2172,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19000:8:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":2171,"name":"address","nodeType":"ElementaryTypeName","src":"19000:8:2","stateMutability":"payable","typeDescriptions":{}}},"id":2174,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19000:27:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":2170,"name":"Anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1492,"src":"18993:6:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Anchor_$1492_$","typeString":"type(contract Anchor)"}},"id":2175,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18993:35:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"id":2176,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19029:9:2","memberName":"profileId","nodeType":"MemberAccess","referencedDeclaration":1408,"src":"18993:45:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_bytes32_$","typeString":"function () view external returns (bytes32)"}},"id":2177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18993:47:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":2178,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"19044:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"18993:61:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2183,"nodeType":"IfStatement","src":"18989:88:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2180,"name":"ANCHOR_ERROR","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3032,"src":"19063:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19063:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2182,"nodeType":"RevertStatement","src":"19056:21:2"}},{"expression":{"id":2186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":2184,"name":"anchor","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2079,"src":"19091:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":2185,"name":"preComputedAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2118,"src":"19100:18:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"19091:27:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2187,"nodeType":"ExpressionStatement","src":"19091:27:2"}]},"errorName":"","id":2189,"nodeType":"TryCatchClause","src":"18969:160:2"}],"externalCall":{"arguments":[{"id":2151,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2074,"src":"18866:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"arguments":[{"id":2154,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18886:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2153,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18878:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2152,"name":"address","nodeType":"ElementaryTypeName","src":"18878:7:2","typeDescriptions":{}}},"id":2155,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18878:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2148,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"18843:10:2","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_Anchor_$1492_$","typeString":"function (bytes32,address) returns (contract Anchor)"},"typeName":{"id":2147,"nodeType":"UserDefinedTypeName","pathNode":{"id":2146,"name":"Anchor","nameLocations":["18847:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":1492,"src":"18847:6:2"},"referencedDeclaration":1492,"src":"18847:6:2","typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}}},"id":2150,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"names":["salt"],"nodeType":"FunctionCallOptions","options":[{"id":2149,"name":"salt","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2112,"src":"18860:4:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"src":"18843:22:2","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$_t_bytes32_$_t_address_$returns$_t_contract$_Anchor_$1492_$salt","typeString":"function (bytes32,address) returns (contract Anchor)"}},"id":2156,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18843:49:2","tryCall":true,"typeDescriptions":{"typeIdentifier":"t_contract$_Anchor_$1492","typeString":"contract Anchor"}},"id":2190,"nodeType":"TryStatement","src":"18839:290:2"}]},"documentation":{"id":2072,"nodeType":"StructuredDocumentation","src":"17817:344:2","text":"@notice Generates and deploys the anchor for the given 'profileId' and name\n @dev Internal function used by 'createProfile()' and 'updateProfileName()' to create and anchor.\n @param _profileId The ID of the profile\n @param _name The name of the profile\n @return anchor The address of the deployed anchor contract"},"implemented":true,"kind":"function","modifiers":[],"name":"_generateAnchor","nameLocation":"18175:15:2","parameters":{"id":2077,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2074,"mutability":"mutable","name":"_profileId","nameLocation":"18199:10:2","nodeType":"VariableDeclaration","scope":2192,"src":"18191:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2073,"name":"bytes32","nodeType":"ElementaryTypeName","src":"18191:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2076,"mutability":"mutable","name":"_name","nameLocation":"18225:5:2","nodeType":"VariableDeclaration","scope":2192,"src":"18211:19:2","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":2075,"name":"string","nodeType":"ElementaryTypeName","src":"18211:6:2","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"18190:41:2"},"returnParameters":{"id":2080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2079,"mutability":"mutable","name":"anchor","nameLocation":"18258:6:2","nodeType":"VariableDeclaration","scope":2192,"src":"18250:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2078,"name":"address","nodeType":"ElementaryTypeName","src":"18250:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18249:16:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":2211,"nodeType":"FunctionDefinition","src":"19465:159:2","nodes":[],"body":{"id":2210,"nodeType":"Block","src":"19557:67:2","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":2205,"name":"_nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2195,"src":"19601:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":2206,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2197,"src":"19609:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":2203,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"19584:3:2","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":2204,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"19588:12:2","memberName":"encodePacked","nodeType":"MemberAccess","src":"19584:16:2","typeDescriptions":{"typeIdentifier":"t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":2207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19584:32:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":2202,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"19574:9:2","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":2208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19574:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":2201,"id":2209,"nodeType":"Return","src":"19567:50:2"}]},"documentation":{"id":2193,"nodeType":"StructuredDocumentation","src":"19141:319:2","text":"@notice Generates the 'profileId' based on msg.sender and nonce\n @dev Internal function used by 'createProfile()' to generate profileId.\n @param _nonce Nonce provided by the caller to generate 'profileId'\n @param _owner The owner of the profile\n @return 'profileId' The ID of the profile"},"implemented":true,"kind":"function","modifiers":[],"name":"_generateProfileId","nameLocation":"19474:18:2","parameters":{"id":2198,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2195,"mutability":"mutable","name":"_nonce","nameLocation":"19501:6:2","nodeType":"VariableDeclaration","scope":2211,"src":"19493:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2194,"name":"uint256","nodeType":"ElementaryTypeName","src":"19493:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":2197,"mutability":"mutable","name":"_owner","nameLocation":"19517:6:2","nodeType":"VariableDeclaration","scope":2211,"src":"19509:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2196,"name":"address","nodeType":"ElementaryTypeName","src":"19509:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19492:32:2"},"returnParameters":{"id":2201,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2200,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2211,"src":"19548:7:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2199,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19548:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"19547:9:2"},"scope":2295,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":2229,"nodeType":"FunctionDefinition","src":"19963:156:2","nodes":[],"body":{"id":2228,"nodeType":"Block","src":"20055:64:2","nodes":[],"statements":[{"expression":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":2221,"name":"profilesById","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1531,"src":"20072:12:2","typeDescriptions":{"typeIdentifier":"t_mapping$_t_bytes32_$_t_struct$_Profile_$2629_storage_$","typeString":"mapping(bytes32 => struct IRegistry.Profile storage ref)"}},"id":2223,"indexExpression":{"id":2222,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2214,"src":"20085:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20072:24:2","typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_storage","typeString":"struct IRegistry.Profile storage ref"}},"id":2224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20097:5:2","memberName":"owner","nodeType":"MemberAccess","referencedDeclaration":2626,"src":"20072:30:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2225,"name":"_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2216,"src":"20106:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20072:40:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2220,"id":2227,"nodeType":"Return","src":"20065:47:2"}]},"documentation":{"id":2212,"nodeType":"StructuredDocumentation","src":"19630:328:2","text":"@notice Checks if an address is the owner of the profile\n @dev Internal function used to determine if an address is the profile owner\n @param _profileId The 'profileId' of the profile\n @param _owner The address to check\n @return 'true' if the address is an owner of the profile, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isOwnerOfProfile","nameLocation":"19972:17:2","parameters":{"id":2217,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2214,"mutability":"mutable","name":"_profileId","nameLocation":"19998:10:2","nodeType":"VariableDeclaration","scope":2229,"src":"19990:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2213,"name":"bytes32","nodeType":"ElementaryTypeName","src":"19990:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2216,"mutability":"mutable","name":"_owner","nameLocation":"20018:6:2","nodeType":"VariableDeclaration","scope":2229,"src":"20010:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2215,"name":"address","nodeType":"ElementaryTypeName","src":"20010:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19989:36:2"},"returnParameters":{"id":2220,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2219,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2229,"src":"20049:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2218,"name":"bool","nodeType":"ElementaryTypeName","src":"20049:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20048:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2245,"nodeType":"FunctionDefinition","src":"20464:146:2","nodes":[],"body":{"id":2244,"nodeType":"Block","src":"20558:52:2","nodes":[],"statements":[{"expression":{"arguments":[{"id":2240,"name":"_profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2232,"src":"20583:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":2241,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2234,"src":"20595:7:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":2239,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"20575:7:2","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":2242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20575:28:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":2238,"id":2243,"nodeType":"Return","src":"20568:35:2"}]},"documentation":{"id":2230,"nodeType":"StructuredDocumentation","src":"20125:334:2","text":"@notice Checks if an address is a member of the profile\n @dev Internal function used to determine if an address is a member of the profile\n @param _profileId The 'profileId' of the profile\n @param _member The address to check\n @return 'true' if the address is a member of the profile, otherwise 'false'"},"implemented":true,"kind":"function","modifiers":[],"name":"_isMemberOfProfile","nameLocation":"20473:18:2","parameters":{"id":2235,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2232,"mutability":"mutable","name":"_profileId","nameLocation":"20500:10:2","nodeType":"VariableDeclaration","scope":2245,"src":"20492:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":2231,"name":"bytes32","nodeType":"ElementaryTypeName","src":"20492:7:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":2234,"mutability":"mutable","name":"_member","nameLocation":"20520:7:2","nodeType":"VariableDeclaration","scope":2245,"src":"20512:15:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2233,"name":"address","nodeType":"ElementaryTypeName","src":"20512:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20491:37:2"},"returnParameters":{"id":2238,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2237,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":2245,"src":"20552:4:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":2236,"name":"bool","nodeType":"ElementaryTypeName","src":"20552:4:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20551:6:2"},"scope":2295,"stateMutability":"view","virtual":false,"visibility":"internal"},{"id":2294,"nodeType":"FunctionDefinition","src":"20847:318:2","nodes":[],"body":{"id":2293,"nodeType":"Block","src":"20935:230:2","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2256,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"20949:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":2259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20971:1:2","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":2258,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20963:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2257,"name":"address","nodeType":"ElementaryTypeName","src":"20963:7:2","typeDescriptions":{}}},"id":2260,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20963:10:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"20949:24:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":2265,"nodeType":"IfStatement","src":"20945:51:2","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":2262,"name":"ZERO_ADDRESS","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3020,"src":"20982:12:2","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":2263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20982:14:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2264,"nodeType":"RevertStatement","src":"20975:21:2"}},{"assignments":[2267],"declarations":[{"constant":false,"id":2267,"mutability":"mutable","name":"amount","nameLocation":"21015:6:2","nodeType":"VariableDeclaration","scope":2293,"src":"21007:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":2266,"name":"uint256","nodeType":"ElementaryTypeName","src":"21007:7:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":2286,"initialValue":{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":2270,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":2268,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21024:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":2269,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3105,"src":"21034:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"21024:16:2","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseExpression":{"arguments":[{"arguments":[{"id":2282,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21099:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2281,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21091:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2280,"name":"address","nodeType":"ElementaryTypeName","src":"21091:7:2","typeDescriptions":{}}},"id":2283,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21091:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"id":2277,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21073:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":2276,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"21067:5:2","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ERC20_$4491_$","typeString":"type(contract ERC20)"}},"id":2278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC20_$4491","typeString":"contract ERC20"}},"id":2279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21081:9:2","memberName":"balanceOf","nodeType":"MemberAccess","referencedDeclaration":4200,"src":"21067:23:2","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":2284,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21067:38:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":2285,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"Conditional","src":"21024:81:2","trueExpression":{"expression":{"arguments":[{"id":2273,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21051:4:2","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}],"id":2272,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21043:7:2","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":2271,"name":"address","nodeType":"ElementaryTypeName","src":"21043:7:2","typeDescriptions":{}}},"id":2274,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21043:13:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":2275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21057:7:2","memberName":"balance","nodeType":"MemberAccess","src":"21043:21:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"21007:98:2"},{"expression":{"arguments":[{"id":2288,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2248,"src":"21131:6:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2289,"name":"_recipient","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2250,"src":"21139:10:2","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":2290,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2267,"src":"21151:6:2","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":2287,"name":"_transferAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3287,"src":"21115:15:2","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":2291,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21115:43:2","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":2292,"nodeType":"ExpressionStatement","src":"21115:43:2"}]},"baseFunctions":[2801],"documentation":{"id":2246,"nodeType":"StructuredDocumentation","src":"20616:226:2","text":"@notice Transfers any fund balance in Allo to the recipient\n @dev 'msg.sender' must be the Allo owner\n @param _token The address of the token to transfer\n @param _recipient The address of the recipient"},"functionSelector":"24ae6a27","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":2253,"name":"ALLO_OWNER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":1542,"src":"20923:10:2","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":2254,"kind":"modifierInvocation","modifierName":{"id":2252,"name":"onlyRole","nameLocations":["20914:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":52442,"src":"20914:8:2"},"nodeType":"ModifierInvocation","src":"20914:20:2"}],"name":"recoverFunds","nameLocation":"20856:12:2","parameters":{"id":2251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":2248,"mutability":"mutable","name":"_token","nameLocation":"20877:6:2","nodeType":"VariableDeclaration","scope":2294,"src":"20869:14:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2247,"name":"address","nodeType":"ElementaryTypeName","src":"20869:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":2250,"mutability":"mutable","name":"_recipient","nameLocation":"20893:10:2","nodeType":"VariableDeclaration","scope":2294,"src":"20885:18:2","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":2249,"name":"address","nodeType":"ElementaryTypeName","src":"20885:7:2","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20868:36:2"},"returnParameters":{"id":2255,"nodeType":"ParameterList","parameters":[],"src":"20935:0:2"},"scope":2295,"stateMutability":"nonpayable","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":1509,"name":"IRegistry","nameLocations":["5258:9:2"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"5258:9:2"},"id":1510,"nodeType":"InheritanceSpecifier","src":"5258:9:2"},{"baseName":{"id":1511,"name":"Initializable","nameLocations":["5269:13:2"],"nodeType":"IdentifierPath","referencedDeclaration":53191,"src":"5269:13:2"},"id":1512,"nodeType":"InheritanceSpecifier","src":"5269:13:2"},{"baseName":{"id":1513,"name":"Native","nameLocations":["5284:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":3106,"src":"5284:6:2"},"id":1514,"nodeType":"InheritanceSpecifier","src":"5284:6:2"},{"baseName":{"id":1515,"name":"AccessControlUpgradeable","nameLocations":["5292:24:2"],"nodeType":"IdentifierPath","referencedDeclaration":52736,"src":"5292:24:2"},"id":1516,"nodeType":"InheritanceSpecifier","src":"5292:24:2"},{"baseName":{"id":1517,"name":"Transfer","nameLocations":["5318:8:2"],"nodeType":"IdentifierPath","referencedDeclaration":3317,"src":"5318:8:2"},"id":1518,"nodeType":"InheritanceSpecifier","src":"5318:8:2"},{"baseName":{"id":1519,"name":"Errors","nameLocations":["5328:6:2"],"nodeType":"IdentifierPath","referencedDeclaration":3089,"src":"5328:6:2"},"id":1520,"nodeType":"InheritanceSpecifier","src":"5328:6:2"}],"canonicalName":"Registry","contractDependencies":[1492],"contractKind":"contract","documentation":{"id":1508,"nodeType":"StructuredDocumentation","src":"4584:653:2","text":"@title Registry Contract\n @author @thelostone-mc , @0xKurt , @codenamejason , @0xZakk , @nfrgosselin \n @notice Registry contract for creating and managing profiles\n @dev This contract is used to create and manage profiles for the Allo protocol\n It is also used to deploy the anchor contract for each profile which acts as a proxy\n for the profile and is used to receive funds and execute transactions on behalf of the profile\n The Registry is also used to add and remove members from a profile and update the profile 'Metadata'"},"fullyImplemented":true,"linearizedBaseContracts":[2295,3089,3317,52736,3106,54009,54021,52809,53735,53191,2802],"name":"Registry","nameLocation":"5246:8:2","scope":2296,"usedErrors":[3008,3011,3014,3017,3020,3023,3026,3029,3032,3035,3038,3041,3044,3047,3050,3053,3056,3059,3062,3065,3068,3071,3074,3079,3082,3085,3088,3117]}],"license":"AGPL-3.0-only"},"id":2} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryCommunity.sol/FAllo.json b/pkg/contracts/out/RegistryCommunity.sol/FAllo.json index 3be5f3801..d75488628 100644 --- a/pkg/contracts/out/RegistryCommunity.sol/FAllo.json +++ b/pkg/contracts/out/RegistryCommunity.sol/FAllo.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"FAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"FAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","id":77693,"exportedSymbols":{"AccessControl":[55308],"CVStrategy":[75569],"Clone":[3002],"ERC165Checker":[58299],"FAllo":[75832],"IAllo":[2610],"IERC20":[56900],"IPointStrategy":[72801],"IRegistry":[2802],"ISafe":[75578],"Metadata":[3098],"ReentrancyGuard":[56109],"RegistryCommunity":[77692],"RegistryFactory":[77928],"SafeERC20":[57337],"StrategyStruct":[72892],"console":[29549]},"nodeType":"SourceUnit","src":"42:23113:130","nodes":[{"id":75771,"nodeType":"PragmaDirective","src":"42:24:130","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75773,"nodeType":"ImportDirective","src":"68:70:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":56901,"symbolAliases":[{"foreign":{"id":75772,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"76:6:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75775,"nodeType":"ImportDirective","src":"139:79:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":55309,"symbolAliases":[{"foreign":{"id":75774,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55308,"src":"147:13:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75777,"nodeType":"ImportDirective","src":"219:82:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":57338,"symbolAliases":[{"foreign":{"id":75776,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57337,"src":"227:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75779,"nodeType":"ImportDirective","src":"302:85:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":56110,"symbolAliases":[{"foreign":{"id":75778,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56109,"src":"310:15:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75782,"nodeType":"ImportDirective","src":"518:84:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":75780,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"526:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75781,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"537:8:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75784,"nodeType":"ImportDirective","src":"603:66:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":75783,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"611:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75786,"nodeType":"ImportDirective","src":"670:54:130","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":77929,"symbolAliases":[{"foreign":{"id":75785,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"678:15:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75788,"nodeType":"ImportDirective","src":"725:34:130","nodes":[],"absolutePath":"pkg/contracts/src/ISafe.sol","file":"./ISafe.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":75579,"symbolAliases":[{"foreign":{"id":75787,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75578,"src":"733:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75789,"nodeType":"ImportDirective","src":"819:31:130","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":75791,"nodeType":"ImportDirective","src":"851:92:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":58300,"symbolAliases":[{"foreign":{"id":75790,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58299,"src":"859:13:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75795,"nodeType":"ImportDirective","src":"945:76:130","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":75570,"symbolAliases":[{"foreign":{"id":75792,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"953:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75793,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75569,"src":"969:10:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75794,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"981:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75797,"nodeType":"ImportDirective","src":"1023:65:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":75796,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"1031:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75832,"nodeType":"ContractDefinition","src":"1161:467:130","nodes":[{"id":75818,"nodeType":"FunctionDefinition","src":"1183:301:130","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"1192:28:130","parameters":{"id":75814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75799,"mutability":"mutable","name":"_profileId","nameLocation":"1238:10:130","nodeType":"VariableDeclaration","scope":75818,"src":"1230:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1230:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75801,"mutability":"mutable","name":"_strategy","nameLocation":"1266:9:130","nodeType":"VariableDeclaration","scope":75818,"src":"1258:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75800,"name":"address","nodeType":"ElementaryTypeName","src":"1258:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75803,"mutability":"mutable","name":"_initStrategyData","nameLocation":"1298:17:130","nodeType":"VariableDeclaration","scope":75818,"src":"1285:30:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75802,"name":"bytes","nodeType":"ElementaryTypeName","src":"1285:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75805,"mutability":"mutable","name":"_token","nameLocation":"1333:6:130","nodeType":"VariableDeclaration","scope":75818,"src":"1325:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75804,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75807,"mutability":"mutable","name":"_amount","nameLocation":"1357:7:130","nodeType":"VariableDeclaration","scope":75818,"src":"1349:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75810,"mutability":"mutable","name":"_metadata","nameLocation":"1390:9:130","nodeType":"VariableDeclaration","scope":75818,"src":"1374:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75809,"nodeType":"UserDefinedTypeName","pathNode":{"id":75808,"name":"Metadata","nameLocations":["1374:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1374:8:130"},"referencedDeclaration":3098,"src":"1374:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":75813,"mutability":"mutable","name":"_managers","nameLocation":"1426:9:130","nodeType":"VariableDeclaration","scope":75818,"src":"1409:26:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75811,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75812,"nodeType":"ArrayTypeName","src":"1409:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1220:221:130"},"returnParameters":{"id":75817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75816,"mutability":"mutable","name":"poolId","nameLocation":"1476:6:130","nodeType":"VariableDeclaration","scope":75818,"src":"1468:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1467:16:130"},"scope":75832,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75823,"nodeType":"FunctionDefinition","src":"1490:55:130","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1499:11:130","parameters":{"id":75819,"nodeType":"ParameterList","parameters":[],"src":"1510:2:130"},"returnParameters":{"id":75822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75823,"src":"1536:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75820,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:9:130"},"scope":75832,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75831,"nodeType":"FunctionDefinition","src":"1550:76:130","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"1559:7:130","parameters":{"id":75826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75825,"mutability":"mutable","name":"_poolId","nameLocation":"1575:7:130","nodeType":"VariableDeclaration","scope":75831,"src":"1567:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1567:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1566:17:130"},"returnParameters":{"id":75830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75831,"src":"1607:17:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":75828,"nodeType":"UserDefinedTypeName","pathNode":{"id":75827,"name":"IAllo.Pool","nameLocations":["1607:5:130","1613:4:130"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"1607:10:130"},"referencedDeclaration":2319,"src":"1607:10:130","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"1606:19:130"},"scope":75832,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[75832],"name":"FAllo","nameLocation":"1171:5:130","scope":77693,"usedErrors":[]},{"id":77692,"nodeType":"ContractDefinition","src":"1630:21524:130","nodes":[{"id":75839,"nodeType":"UsingForDirective","src":"1697:32:130","nodes":[],"global":false,"libraryName":{"id":75837,"name":"ERC165Checker","nameLocations":["1703:13:130"],"nodeType":"IdentifierPath","referencedDeclaration":58299,"src":"1703:13:130"},"typeName":{"id":75838,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75843,"nodeType":"UsingForDirective","src":"1734:27:130","nodes":[],"global":false,"libraryName":{"id":75840,"name":"SafeERC20","nameLocations":["1740:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":57337,"src":"1740:9:130"},"typeName":{"id":75842,"nodeType":"UserDefinedTypeName","pathNode":{"id":75841,"name":"IERC20","nameLocations":["1754:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1754:6:130"},"referencedDeclaration":56900,"src":"1754:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}},{"id":75846,"nodeType":"UsingForDirective","src":"1766:24:130","nodes":[],"global":false,"libraryName":{"id":75844,"name":"Clone","nameLocations":["1772:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1772:5:130"},"typeName":{"id":75845,"name":"address","nodeType":"ElementaryTypeName","src":"1782:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75849,"nodeType":"VariableDeclaration","src":"1796:75:130","nodes":[],"constant":true,"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1820:6:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75847,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":75848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1829:42:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":75854,"nodeType":"VariableDeclaration","src":"2042:82:130","nodes":[],"constant":true,"functionSelector":"a0b21cdf","mutability":"constant","name":"COUNCIL_MEMBER_CHANGE","nameLocation":"2066:21:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2042:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d4245525f4348414e4745","id":75852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2100:23:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""},"value":"COUNCIL_MEMBER_CHANGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""}],"id":75851,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2090:9:130","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":75858,"nodeType":"EventDefinition","src":"2296:29:130","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"2302:7:130","parameters":{"id":75857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75856,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"2318:5:130","nodeType":"VariableDeclaration","scope":75858,"src":"2310:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75855,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2309:15:130"}},{"id":75862,"nodeType":"EventDefinition","src":"2330:36:130","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"2336:14:130","parameters":{"id":75861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75860,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"2359:5:130","nodeType":"VariableDeclaration","scope":75862,"src":"2351:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75859,"name":"address","nodeType":"ElementaryTypeName","src":"2351:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2350:15:130"}},{"id":75868,"nodeType":"EventDefinition","src":"2371:74:130","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"2377:24:130","parameters":{"id":75867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75864,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"2410:10:130","nodeType":"VariableDeclaration","scope":75868,"src":"2402:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75863,"name":"address","nodeType":"ElementaryTypeName","src":"2402:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75866,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"2430:13:130","nodeType":"VariableDeclaration","scope":75868,"src":"2422:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75865,"name":"address","nodeType":"ElementaryTypeName","src":"2422:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2401:43:130"}},{"id":75874,"nodeType":"EventDefinition","src":"2450:63:130","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"2456:16:130","parameters":{"id":75873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75870,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2481:7:130","nodeType":"VariableDeclaration","scope":75874,"src":"2473:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75869,"name":"address","nodeType":"ElementaryTypeName","src":"2473:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75872,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"2498:13:130","nodeType":"VariableDeclaration","scope":75874,"src":"2490:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2490:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2472:40:130"}},{"id":75880,"nodeType":"EventDefinition","src":"2518:67:130","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"2524:18:130","parameters":{"id":75879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75876,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2551:7:130","nodeType":"VariableDeclaration","scope":75880,"src":"2543:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75875,"name":"address","nodeType":"ElementaryTypeName","src":"2543:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75878,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2568:15:130","nodeType":"VariableDeclaration","scope":75880,"src":"2560:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75877,"name":"uint256","nodeType":"ElementaryTypeName","src":"2560:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2542:42:130"}},{"id":75888,"nodeType":"EventDefinition","src":"2590:87:130","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"2596:12:130","parameters":{"id":75887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75882,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2617:7:130","nodeType":"VariableDeclaration","scope":75888,"src":"2609:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75881,"name":"address","nodeType":"ElementaryTypeName","src":"2609:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75884,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"2634:16:130","nodeType":"VariableDeclaration","scope":75888,"src":"2626:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75883,"name":"address","nodeType":"ElementaryTypeName","src":"2626:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75886,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2660:15:130","nodeType":"VariableDeclaration","scope":75888,"src":"2652:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75885,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2608:68:130"}},{"id":75892,"nodeType":"EventDefinition","src":"2682:43:130","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"2688:19:130","parameters":{"id":75891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75890,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"2716:7:130","nodeType":"VariableDeclaration","scope":75892,"src":"2708:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2707:17:130"}},{"id":75901,"nodeType":"EventDefinition","src":"2730:89:130","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"2736:19:130","parameters":{"id":75900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75894,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"2764:10:130","nodeType":"VariableDeclaration","scope":75901,"src":"2756:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2756:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75896,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"2783:14:130","nodeType":"VariableDeclaration","scope":75901,"src":"2776:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75895,"name":"string","nodeType":"ElementaryTypeName","src":"2776:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75899,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"2808:9:130","nodeType":"VariableDeclaration","scope":75901,"src":"2799:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75898,"nodeType":"UserDefinedTypeName","pathNode":{"id":75897,"name":"Metadata","nameLocations":["2799:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"2799:8:130"},"referencedDeclaration":3098,"src":"2799:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"2755:63:130"}},{"id":75905,"nodeType":"EventDefinition","src":"2824:39:130","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"2830:13:130","parameters":{"id":75904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75903,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2852:9:130","nodeType":"VariableDeclaration","scope":75905,"src":"2844:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75902,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2843:19:130"}},{"id":75909,"nodeType":"EventDefinition","src":"2868:41:130","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"2874:15:130","parameters":{"id":75908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75907,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2898:9:130","nodeType":"VariableDeclaration","scope":75909,"src":"2890:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75906,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2889:19:130"}},{"id":75917,"nodeType":"EventDefinition","src":"2914:93:130","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"2920:23:130","parameters":{"id":75916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75911,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2952:7:130","nodeType":"VariableDeclaration","scope":75917,"src":"2944:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75910,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75913,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2969:9:130","nodeType":"VariableDeclaration","scope":75917,"src":"2961:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75912,"name":"address","nodeType":"ElementaryTypeName","src":"2961:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75915,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"2988:17:130","nodeType":"VariableDeclaration","scope":75917,"src":"2980:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75914,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2943:63:130"}},{"id":75923,"nodeType":"EventDefinition","src":"3012:68:130","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"3018:25:130","parameters":{"id":75922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75919,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3052:7:130","nodeType":"VariableDeclaration","scope":75923,"src":"3044:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75918,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75921,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3069:9:130","nodeType":"VariableDeclaration","scope":75923,"src":"3061:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75920,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3043:36:130"}},{"id":75927,"nodeType":"EventDefinition","src":"3085:47:130","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"3091:20:130","parameters":{"id":75926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75925,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"3120:10:130","nodeType":"VariableDeclaration","scope":75927,"src":"3112:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3111:20:130"}},{"id":75933,"nodeType":"EventDefinition","src":"3137:67:130","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"3143:20:130","parameters":{"id":75932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75929,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3172:7:130","nodeType":"VariableDeclaration","scope":75933,"src":"3164:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75928,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75931,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"3189:13:130","nodeType":"VariableDeclaration","scope":75933,"src":"3181:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3181:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3163:40:130"}},{"id":75939,"nodeType":"EventDefinition","src":"3209:69:130","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"3215:20:130","parameters":{"id":75938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75935,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3244:7:130","nodeType":"VariableDeclaration","scope":75939,"src":"3236:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75934,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75937,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"3261:15:130","nodeType":"VariableDeclaration","scope":75939,"src":"3253:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75936,"name":"uint256","nodeType":"ElementaryTypeName","src":"3253:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3235:42:130"}},{"id":75952,"nodeType":"EventDefinition","src":"3283:110:130","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"3289:11:130","parameters":{"id":75951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75941,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"3309:7:130","nodeType":"VariableDeclaration","scope":75952,"src":"3301:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75940,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75943,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3326:9:130","nodeType":"VariableDeclaration","scope":75952,"src":"3318:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75942,"name":"address","nodeType":"ElementaryTypeName","src":"3318:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75945,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"3345:10:130","nodeType":"VariableDeclaration","scope":75952,"src":"3337:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75944,"name":"address","nodeType":"ElementaryTypeName","src":"3337:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75947,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"3365:6:130","nodeType":"VariableDeclaration","scope":75952,"src":"3357:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75946,"name":"address","nodeType":"ElementaryTypeName","src":"3357:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75950,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"3382:9:130","nodeType":"VariableDeclaration","scope":75952,"src":"3373:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75949,"nodeType":"UserDefinedTypeName","pathNode":{"id":75948,"name":"Metadata","nameLocations":["3373:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"3373:8:130"},"referencedDeclaration":3098,"src":"3373:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"3300:92:130"}},{"id":75967,"nodeType":"FunctionDefinition","src":"3564:155:130","nodes":[],"body":{"id":75966,"nodeType":"Block","src":"3604:115:130","nodes":[],"statements":[{"condition":{"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3618:43:130","subExpression":{"arguments":[{"id":75956,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"3627:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3650:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3654:6:130","memberName":"sender","nodeType":"MemberAccess","src":"3650:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75955,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"3619:7:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3619:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75965,"nodeType":"IfStatement","src":"3614:99:130","trueBody":{"id":75964,"nodeType":"Block","src":"3663:50:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75961,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76051,"src":"3684:16:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3684:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75963,"nodeType":"RevertStatement","src":"3677:25:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"3573:15:130","parameters":{"id":75953,"nodeType":"ParameterList","parameters":[],"src":"3588:2:130"},"returnParameters":{"id":75954,"nodeType":"ParameterList","parameters":[],"src":"3604:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75981,"nodeType":"FunctionDefinition","src":"3725:143:130","nodes":[],"body":{"id":75980,"nodeType":"Block","src":"3774:94:130","nodes":[],"statements":[{"condition":{"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3788:21:130","subExpression":{"arguments":[{"expression":{"id":75971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3798:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:130","memberName":"sender","nodeType":"MemberAccess","src":"3798:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75970,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"3789:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75979,"nodeType":"IfStatement","src":"3784:78:130","trueBody":{"id":75978,"nodeType":"Block","src":"3811:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75975,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"3832:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3832:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75977,"nodeType":"RevertStatement","src":"3825:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"3734:24:130","parameters":{"id":75968,"nodeType":"ParameterList","parameters":[],"src":"3758:2:130"},"returnParameters":{"id":75969,"nodeType":"ParameterList","parameters":[],"src":"3774:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75996,"nodeType":"FunctionDefinition","src":"3874:156:130","nodes":[],"body":{"id":75995,"nodeType":"Block","src":"3939:91:130","nodes":[],"statements":[{"condition":{"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3953:18:130","subExpression":{"arguments":[{"id":75987,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75983,"src":"3963:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75986,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"3954:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75994,"nodeType":"IfStatement","src":"3949:75:130","trueBody":{"id":75993,"nodeType":"Block","src":"3973:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75990,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"3994:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75992,"nodeType":"RevertStatement","src":"3987:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"3883:25:130","parameters":{"id":75984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75983,"mutability":"mutable","name":"_sender","nameLocation":"3917:7:130","nodeType":"VariableDeclaration","scope":75996,"src":"3909:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75982,"name":"address","nodeType":"ElementaryTypeName","src":"3909:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3908:17:130"},"returnParameters":{"id":75985,"nodeType":"ParameterList","parameters":[],"src":"3939:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76011,"nodeType":"FunctionDefinition","src":"4036:162:130","nodes":[],"body":{"id":76010,"nodeType":"Block","src":"4097:101:130","nodes":[],"statements":[{"condition":{"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4111:29:130","subExpression":{"baseExpression":{"id":76001,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"4112:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76003,"indexExpression":{"id":76002,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75998,"src":"4130:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4112:28:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76009,"nodeType":"IfStatement","src":"4107:85:130","trueBody":{"id":76008,"nodeType":"Block","src":"4142:50:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76005,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"4163:16:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76007,"nodeType":"RevertStatement","src":"4156:25:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"4045:19:130","parameters":{"id":75999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75998,"mutability":"mutable","name":"_strategy","nameLocation":"4073:9:130","nodeType":"VariableDeclaration","scope":76011,"src":"4065:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75997,"name":"address","nodeType":"ElementaryTypeName","src":"4065:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4064:19:130"},"returnParameters":{"id":76000,"nodeType":"ParameterList","parameters":[],"src":"4097:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76027,"nodeType":"FunctionDefinition","src":"4204:171:130","nodes":[],"body":{"id":76026,"nodeType":"Block","src":"4282:93:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76018,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76013,"src":"4296:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76019,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76015,"src":"4307:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4296:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76025,"nodeType":"IfStatement","src":"4292:77:130","trueBody":{"id":76024,"nodeType":"Block","src":"4318:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76021,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76069,"src":"4339:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76023,"nodeType":"RevertStatement","src":"4332:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"4213:19:130","parameters":{"id":76016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76013,"mutability":"mutable","name":"_sender","nameLocation":"4241:7:130","nodeType":"VariableDeclaration","scope":76027,"src":"4233:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76012,"name":"address","nodeType":"ElementaryTypeName","src":"4233:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76015,"mutability":"mutable","name":"_strategy","nameLocation":"4258:9:130","nodeType":"VariableDeclaration","scope":76027,"src":"4250:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76014,"name":"address","nodeType":"ElementaryTypeName","src":"4250:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4232:36:130"},"returnParameters":{"id":76017,"nodeType":"ParameterList","parameters":[],"src":"4282:0:130"},"scope":77692,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76045,"nodeType":"FunctionDefinition","src":"4381:189:130","nodes":[],"body":{"id":76044,"nodeType":"Block","src":"4446:124:130","nodes":[],"statements":[{"condition":{"id":76038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4460:51:130","subExpression":{"baseExpression":{"baseExpression":{"id":76032,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"4461:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76035,"indexExpression":{"expression":{"id":76033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4489:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4493:6:130","memberName":"sender","nodeType":"MemberAccess","src":"4489:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:39:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76037,"indexExpression":{"id":76036,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"4501:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:50:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76043,"nodeType":"IfStatement","src":"4456:108:130","trueBody":{"id":76042,"nodeType":"Block","src":"4513:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76039,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76077,"src":"4534:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4534:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76041,"nodeType":"RevertStatement","src":"4527:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"4390:23:130","parameters":{"id":76030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76029,"mutability":"mutable","name":"_strategy","nameLocation":"4422:9:130","nodeType":"VariableDeclaration","scope":76045,"src":"4414:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76028,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:19:130"},"returnParameters":{"id":76031,"nodeType":"ParameterList","parameters":[],"src":"4446:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76047,"nodeType":"ErrorDefinition","src":"4742:28:130","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"4748:19:130","parameters":{"id":76046,"nodeType":"ParameterList","parameters":[],"src":"4767:2:130"}},{"id":76049,"nodeType":"ErrorDefinition","src":"4775:29:130","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"4781:20:130","parameters":{"id":76048,"nodeType":"ParameterList","parameters":[],"src":"4801:2:130"}},{"id":76051,"nodeType":"ErrorDefinition","src":"4809:25:130","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"4815:16:130","parameters":{"id":76050,"nodeType":"ParameterList","parameters":[],"src":"4831:2:130"}},{"id":76053,"nodeType":"ErrorDefinition","src":"4839:26:130","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"4845:17:130","parameters":{"id":76052,"nodeType":"ParameterList","parameters":[],"src":"4862:2:130"}},{"id":76055,"nodeType":"ErrorDefinition","src":"4870:30:130","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"4876:21:130","parameters":{"id":76054,"nodeType":"ParameterList","parameters":[],"src":"4897:2:130"}},{"id":76057,"nodeType":"ErrorDefinition","src":"4905:27:130","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"4911:18:130","parameters":{"id":76056,"nodeType":"ParameterList","parameters":[],"src":"4929:2:130"}},{"id":76059,"nodeType":"ErrorDefinition","src":"4937:29:130","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"4943:20:130","parameters":{"id":76058,"nodeType":"ParameterList","parameters":[],"src":"4963:2:130"}},{"id":76061,"nodeType":"ErrorDefinition","src":"4971:31:130","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"4977:22:130","parameters":{"id":76060,"nodeType":"ParameterList","parameters":[],"src":"4999:2:130"}},{"id":76063,"nodeType":"ErrorDefinition","src":"5007:23:130","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"5013:14:130","parameters":{"id":76062,"nodeType":"ParameterList","parameters":[],"src":"5027:2:130"}},{"id":76065,"nodeType":"ErrorDefinition","src":"5035:25:130","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"5041:16:130","parameters":{"id":76064,"nodeType":"ParameterList","parameters":[],"src":"5057:2:130"}},{"id":76067,"nodeType":"ErrorDefinition","src":"5065:26:130","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"5071:17:130","parameters":{"id":76066,"nodeType":"ParameterList","parameters":[],"src":"5088:2:130"}},{"id":76069,"nodeType":"ErrorDefinition","src":"5096:26:130","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"5102:17:130","parameters":{"id":76068,"nodeType":"ParameterList","parameters":[],"src":"5119:2:130"}},{"id":76071,"nodeType":"ErrorDefinition","src":"5127:26:130","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"5133:17:130","parameters":{"id":76070,"nodeType":"ParameterList","parameters":[],"src":"5150:2:130"}},{"id":76073,"nodeType":"ErrorDefinition","src":"5158:29:130","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"5164:20:130","parameters":{"id":76072,"nodeType":"ParameterList","parameters":[],"src":"5184:2:130"}},{"id":76075,"nodeType":"ErrorDefinition","src":"5192:23:130","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"5198:14:130","parameters":{"id":76074,"nodeType":"ParameterList","parameters":[],"src":"5212:2:130"}},{"id":76077,"nodeType":"ErrorDefinition","src":"5220:26:130","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"5226:17:130","parameters":{"id":76076,"nodeType":"ParameterList","parameters":[],"src":"5243:2:130"}},{"id":76079,"nodeType":"ErrorDefinition","src":"5251:29:130","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"5257:20:130","parameters":{"id":76078,"nodeType":"ParameterList","parameters":[],"src":"5277:2:130"}},{"id":76085,"nodeType":"ErrorDefinition","src":"5285:80:130","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"5291:25:130","parameters":{"id":76084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76081,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"5325:15:130","nodeType":"VariableDeclaration","scope":76085,"src":"5317:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76080,"name":"uint256","nodeType":"ElementaryTypeName","src":"5317:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76083,"mutability":"mutable","name":"_currentPower","nameLocation":"5350:13:130","nodeType":"VariableDeclaration","scope":76085,"src":"5342:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76082,"name":"uint256","nodeType":"ElementaryTypeName","src":"5342:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5316:48:130"}},{"id":76092,"nodeType":"StructDefinition","src":"5536:102:130","nodes":[],"canonicalName":"RegistryCommunity.Member","members":[{"constant":false,"id":76087,"mutability":"mutable","name":"member","nameLocation":"5568:6:130","nodeType":"VariableDeclaration","scope":76092,"src":"5560:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76086,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76089,"mutability":"mutable","name":"stakedAmount","nameLocation":"5592:12:130","nodeType":"VariableDeclaration","scope":76092,"src":"5584:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76088,"name":"uint256","nodeType":"ElementaryTypeName","src":"5584:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76091,"mutability":"mutable","name":"isRegistered","nameLocation":"5619:12:130","nodeType":"VariableDeclaration","scope":76092,"src":"5614:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76090,"name":"bool","nodeType":"ElementaryTypeName","src":"5614:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"5543:6:130","scope":77692,"visibility":"public"},{"id":76096,"nodeType":"StructDefinition","src":"5644:55:130","nodes":[],"canonicalName":"RegistryCommunity.Strategies","members":[{"constant":false,"id":76095,"mutability":"mutable","name":"strategies","nameLocation":"5682:10:130","nodeType":"VariableDeclaration","scope":76096,"src":"5672:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76093,"name":"address","nodeType":"ElementaryTypeName","src":"5672:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76094,"nodeType":"ArrayTypeName","src":"5672:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"5651:10:130","scope":77692,"visibility":"public"},{"id":76125,"nodeType":"StructDefinition","src":"5705:490:130","nodes":[],"canonicalName":"RegistryCommunity.InitializeParams","members":[{"constant":false,"id":76098,"mutability":"mutable","name":"_allo","nameLocation":"5747:5:130","nodeType":"VariableDeclaration","scope":76125,"src":"5739:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76097,"name":"address","nodeType":"ElementaryTypeName","src":"5739:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76101,"mutability":"mutable","name":"_gardenToken","nameLocation":"5769:12:130","nodeType":"VariableDeclaration","scope":76125,"src":"5762:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76100,"nodeType":"UserDefinedTypeName","pathNode":{"id":76099,"name":"IERC20","nameLocations":["5762:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"5762:6:130"},"referencedDeclaration":56900,"src":"5762:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":76103,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"5799:20:130","nodeType":"VariableDeclaration","scope":76125,"src":"5791:28:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76102,"name":"uint256","nodeType":"ElementaryTypeName","src":"5791:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76105,"mutability":"mutable","name":"_communityFee","nameLocation":"5837:13:130","nodeType":"VariableDeclaration","scope":76125,"src":"5829:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76104,"name":"uint256","nodeType":"ElementaryTypeName","src":"5829:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76107,"mutability":"mutable","name":"_nonce","nameLocation":"5924:6:130","nodeType":"VariableDeclaration","scope":76125,"src":"5916:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76106,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76109,"mutability":"mutable","name":"_registryFactory","nameLocation":"5948:16:130","nodeType":"VariableDeclaration","scope":76125,"src":"5940:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76108,"name":"address","nodeType":"ElementaryTypeName","src":"5940:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76111,"mutability":"mutable","name":"_feeReceiver","nameLocation":"5982:12:130","nodeType":"VariableDeclaration","scope":76125,"src":"5974:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76110,"name":"address","nodeType":"ElementaryTypeName","src":"5974:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76114,"mutability":"mutable","name":"_metadata","nameLocation":"6013:9:130","nodeType":"VariableDeclaration","scope":76125,"src":"6004:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":76113,"nodeType":"UserDefinedTypeName","pathNode":{"id":76112,"name":"Metadata","nameLocations":["6004:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6004:8:130"},"referencedDeclaration":3098,"src":"6004:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76116,"mutability":"mutable","name":"_councilSafe","nameLocation":"6048:12:130","nodeType":"VariableDeclaration","scope":76125,"src":"6032:28:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76115,"name":"address","nodeType":"ElementaryTypeName","src":"6032:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":76118,"mutability":"mutable","name":"_communityName","nameLocation":"6077:14:130","nodeType":"VariableDeclaration","scope":76125,"src":"6070:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76117,"name":"string","nodeType":"ElementaryTypeName","src":"6070:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76120,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"6106:14:130","nodeType":"VariableDeclaration","scope":76125,"src":"6101:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76119,"name":"bool","nodeType":"ElementaryTypeName","src":"6101:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":76122,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"6137:16:130","nodeType":"VariableDeclaration","scope":76125,"src":"6130:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76121,"name":"string","nodeType":"ElementaryTypeName","src":"6130:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76124,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"6171:17:130","nodeType":"VariableDeclaration","scope":76125,"src":"6163:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76123,"name":"address","nodeType":"ElementaryTypeName","src":"6163:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"5712:16:130","scope":77692,"visibility":"public"},{"id":76127,"nodeType":"VariableDeclaration","src":"6292:25:130","nodes":[],"constant":false,"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"6304:13:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76126,"name":"bool","nodeType":"ElementaryTypeName","src":"6292:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76129,"nodeType":"VariableDeclaration","src":"6461:34:130","nodes":[],"constant":false,"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"6476:19:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76128,"name":"uint256","nodeType":"ElementaryTypeName","src":"6461:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76131,"nodeType":"VariableDeclaration","src":"6501:27:130","nodes":[],"constant":false,"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"6516:12:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76130,"name":"uint256","nodeType":"ElementaryTypeName","src":"6501:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76133,"nodeType":"VariableDeclaration","src":"6534:24:130","nodes":[],"constant":false,"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"6549:9:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6534:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76135,"nodeType":"VariableDeclaration","src":"6609:26:130","nodes":[],"constant":false,"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"6624:11:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76134,"name":"address","nodeType":"ElementaryTypeName","src":"6609:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76137,"nodeType":"VariableDeclaration","src":"6641:30:130","nodes":[],"constant":false,"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"6656:15:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76136,"name":"address","nodeType":"ElementaryTypeName","src":"6641:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76139,"nodeType":"VariableDeclaration","src":"6677:31:130","nodes":[],"constant":false,"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"6692:16:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76138,"name":"address","nodeType":"ElementaryTypeName","src":"6677:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76141,"nodeType":"VariableDeclaration","src":"6714:25:130","nodes":[],"constant":false,"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"6729:10:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76140,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76143,"nodeType":"VariableDeclaration","src":"6745:41:130","nodes":[],"constant":false,"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"6768:18:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76142,"name":"address","nodeType":"ElementaryTypeName","src":"6745:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":76146,"nodeType":"VariableDeclaration","src":"6864:25:130","nodes":[],"constant":false,"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"6881:8:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":76145,"nodeType":"UserDefinedTypeName","pathNode":{"id":76144,"name":"IRegistry","nameLocations":["6864:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6864:9:130"},"referencedDeclaration":2802,"src":"6864:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":76149,"nodeType":"VariableDeclaration","src":"6895:25:130","nodes":[],"constant":false,"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"6909:11:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76148,"nodeType":"UserDefinedTypeName","pathNode":{"id":76147,"name":"IERC20","nameLocations":["6895:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"6895:6:130"},"referencedDeclaration":56900,"src":"6895:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"public"},{"id":76152,"nodeType":"VariableDeclaration","src":"6926:24:130","nodes":[],"constant":false,"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"6939:11:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"},"typeName":{"id":76151,"nodeType":"UserDefinedTypeName","pathNode":{"id":76150,"name":"ISafe","nameLocations":["6926:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":75578,"src":"6926:5:130"},"referencedDeclaration":75578,"src":"6926:5:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"visibility":"public"},{"id":76155,"nodeType":"VariableDeclaration","src":"6956:17:130","nodes":[],"constant":false,"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"6969:4:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"},"typeName":{"id":76154,"nodeType":"UserDefinedTypeName","pathNode":{"id":76153,"name":"FAllo","nameLocations":["6956:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":75832,"src":"6956:5:130"},"referencedDeclaration":75832,"src":"6956:5:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"visibility":"public"},{"id":76157,"nodeType":"VariableDeclaration","src":"7037:27:130","nodes":[],"constant":false,"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"7051:13:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76156,"name":"string","nodeType":"ElementaryTypeName","src":"7037:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76159,"nodeType":"VariableDeclaration","src":"7070:30:130","nodes":[],"constant":false,"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"7084:16:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76158,"name":"string","nodeType":"ElementaryTypeName","src":"7070:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76163,"nodeType":"VariableDeclaration","src":"7164:68:130","nodes":[],"constant":false,"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"7215:17:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":76162,"keyName":"strategy","keyNameLocation":"7180:8:130","keyType":{"id":76160,"name":"address","nodeType":"ElementaryTypeName","src":"7172:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7164:43:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"7197:9:130","valueType":{"id":76161,"name":"bool","nodeType":"ElementaryTypeName","src":"7192:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":76169,"nodeType":"VariableDeclaration","src":"7238:98:130","nodes":[],"constant":false,"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"7315:21:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":76168,"keyName":"strategy","keyNameLocation":"7254:8:130","keyType":{"id":76164,"name":"address","nodeType":"ElementaryTypeName","src":"7246:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7238:69:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76167,"keyName":"member","keyNameLocation":"7282:6:130","keyType":{"id":76165,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7266:40:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"7300:5:130","valueType":{"id":76166,"name":"uint256","nodeType":"ElementaryTypeName","src":"7292:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":76174,"nodeType":"VariableDeclaration","src":"7343:60:130","nodes":[],"constant":false,"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"7384:19:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"typeName":{"id":76173,"keyName":"member","keyNameLocation":"7359:6:130","keyType":{"id":76170,"name":"address","nodeType":"ElementaryTypeName","src":"7351:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7343:33:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76172,"nodeType":"UserDefinedTypeName","pathNode":{"id":76171,"name":"Member","nameLocations":["7369:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"7369:6:130"},"referencedDeclaration":76092,"src":"7369:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}}},"visibility":"public"},{"id":76179,"nodeType":"VariableDeclaration","src":"7409:82:130","nodes":[],"constant":false,"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"7473:18:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":76178,"keyName":"member","keyNameLocation":"7425:6:130","keyType":{"id":76175,"name":"address","nodeType":"ElementaryTypeName","src":"7417:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7409:56:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"7445:19:130","valueType":{"baseType":{"id":76176,"name":"address","nodeType":"ElementaryTypeName","src":"7435:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76177,"nodeType":"ArrayTypeName","src":"7435:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":76185,"nodeType":"VariableDeclaration","src":"7497:107:130","nodes":[],"constant":false,"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"7577:27:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":76184,"keyName":"member","keyNameLocation":"7513:6:130","keyType":{"id":76180,"name":"address","nodeType":"ElementaryTypeName","src":"7505:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7497:72:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76183,"keyName":"strategy","keyNameLocation":"7539:8:130","keyType":{"id":76181,"name":"address","nodeType":"ElementaryTypeName","src":"7531:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7523:45:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"7556:11:130","valueType":{"id":76182,"name":"bool","nodeType":"ElementaryTypeName","src":"7551:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":76188,"nodeType":"VariableDeclaration","src":"7611:24:130","nodes":[],"constant":false,"mutability":"mutable","name":"initialMembers","nameLocation":"7621:14:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":76186,"name":"address","nodeType":"ElementaryTypeName","src":"7611:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76187,"nodeType":"ArrayTypeName","src":"7611:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":76193,"nodeType":"VariableDeclaration","src":"7642:49:130","nodes":[],"constant":true,"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"7666:15:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76189,"name":"uint256","nodeType":"ElementaryTypeName","src":"7642:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":76192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7684:2:130","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":76191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7690:1:130","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7684:7:130","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":76198,"nodeType":"VariableDeclaration","src":"7697:54:130","nodes":[],"constant":true,"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"7721:7:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76194,"name":"uint256","nodeType":"ElementaryTypeName","src":"7697:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7731:2:130","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":76196,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"7736:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7731:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76207,"nodeType":"FunctionDefinition","src":"7758:145:130","nodes":[],"body":{"id":76206,"nodeType":"Block","src":"7772:131:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":76202,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"7854:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76203,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55020,"src":"7877:18:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76201,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55244,"src":"7840:13:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":76204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7840:56:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76205,"nodeType":"ExpressionStatement","src":"7840:56:130"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76199,"nodeType":"ParameterList","parameters":[],"src":"7769:2:130"},"returnParameters":{"id":76200,"nodeType":"ParameterList","parameters":[],"src":"7772:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76430,"nodeType":"FunctionDefinition","src":"7909:1945:130","nodes":[],"body":{"id":76429,"nodeType":"Block","src":"7986:1868:130","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76216,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8023:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8030:12:130","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76101,"src":"8023:19:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":76215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8015:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76214,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:130","typeDescriptions":{}}},"id":76218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8015:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76213,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"7996:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7996:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76220,"nodeType":"ExpressionStatement","src":"7996:48:130"},{"expression":{"arguments":[{"expression":{"id":76222,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8073:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8080:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76116,"src":"8073:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76221,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8054:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76225,"nodeType":"ExpressionStatement","src":"8054:39:130"},{"expression":{"arguments":[{"expression":{"id":76227,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8122:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8129:5:130","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76098,"src":"8122:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76226,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8103:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8103:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76230,"nodeType":"ExpressionStatement","src":"8103:32:130"},{"expression":{"arguments":[{"expression":{"id":76232,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8164:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8171:16:130","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76109,"src":"8164:23:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76231,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8145:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76235,"nodeType":"ExpressionStatement","src":"8145:43:130"},{"expression":{"arguments":[{"expression":{"id":76237,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8217:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8224:17:130","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76124,"src":"8217:24:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76236,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8198:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8198:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76240,"nodeType":"ExpressionStatement","src":"8198:44:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76241,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8257:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8264:13:130","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76105,"src":"8257:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8281:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:25:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76251,"nodeType":"IfStatement","src":"8253:95:130","trueBody":{"id":76250,"nodeType":"Block","src":"8284:64:130","statements":[{"expression":{"arguments":[{"expression":{"id":76246,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8317:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:12:130","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76111,"src":"8317:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76245,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8298:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8298:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76249,"nodeType":"ExpressionStatement","src":"8298:39:130"}]}},{"expression":{"id":76257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76252,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"8357:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76254,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8370:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8377:5:130","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76098,"src":"8370:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76253,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75832,"src":"8364:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$75832_$","typeString":"type(contract FAllo)"}},"id":76256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8364:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"src":"8357:26:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":76258,"nodeType":"ExpressionStatement","src":"8357:26:130"},{"expression":{"id":76262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76259,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"8393:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76260,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8407:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8414:12:130","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76101,"src":"8407:19:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"src":"8393:33:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76263,"nodeType":"ExpressionStatement","src":"8393:33:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76264,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8440:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8447:20:130","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76103,"src":"8440:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8440:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76272,"nodeType":"IfStatement","src":"8436:89:130","trueBody":{"id":76271,"nodeType":"Block","src":"8474:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76268,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76071,"src":"8495:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8495:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76270,"nodeType":"RevertStatement","src":"8488:26:130"}]}},{"expression":{"id":76276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76273,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"8534:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76274,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8556:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8563:20:130","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76103,"src":"8556:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8534:49:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76277,"nodeType":"ExpressionStatement","src":"8534:49:130"},{"expression":{"id":76281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76278,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"8593:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76279,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8608:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8615:13:130","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76105,"src":"8608:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8593:35:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76282,"nodeType":"ExpressionStatement","src":"8593:35:130"},{"expression":{"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76283,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76127,"src":"8638:13:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76284,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8654:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8661:14:130","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":76120,"src":"8654:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8638:37:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76287,"nodeType":"ExpressionStatement","src":"8638:37:130"},{"expression":{"id":76291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76288,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"8685:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8701:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8708:14:130","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":76118,"src":"8701:21:130","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8685:37:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76292,"nodeType":"ExpressionStatement","src":"8685:37:130"},{"expression":{"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76293,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"8732:16:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76294,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8751:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8758:16:130","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":76122,"src":"8751:23:130","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8732:42:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76297,"nodeType":"ExpressionStatement","src":"8732:42:130"},{"expression":{"id":76301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76298,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"8784:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8802:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8809:16:130","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76109,"src":"8802:23:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8784:41:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76302,"nodeType":"ExpressionStatement","src":"8784:41:130"},{"expression":{"id":76306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76303,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"8835:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76304,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8849:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:12:130","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76111,"src":"8849:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8835:33:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76307,"nodeType":"ExpressionStatement","src":"8835:33:130"},{"expression":{"id":76313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76308,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"8878:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76310,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8898:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8905:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76116,"src":"8898:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76309,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75578,"src":"8892:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75578_$","typeString":"type(contract ISafe)"}},"id":76312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8892:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"src":"8878:40:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"id":76314,"nodeType":"ExpressionStatement","src":"8878:40:130"},{"expression":{"id":76318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76315,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76139,"src":"8928:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76316,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8947:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8954:17:130","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76124,"src":"8947:24:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8928:43:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76319,"nodeType":"ExpressionStatement","src":"8928:43:130"},{"expression":{"arguments":[{"id":76321,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"8993:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76322,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9016:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9023:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76116,"src":"9016:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76320,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55276,"src":"8982:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:54:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76325,"nodeType":"ExpressionStatement","src":"8982:54:130"},{"expression":{"id":76332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76326,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"9047:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76328,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"9068:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9073:11:130","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":75823,"src":"9068:16:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76327,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"9058:9:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"9047:40:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76333,"nodeType":"ExpressionStatement","src":"9047:40:130"},{"assignments":[76338],"declarations":[{"constant":false,"id":76338,"mutability":"mutable","name":"owners","nameLocation":"9115:6:130","nodeType":"VariableDeclaration","scope":76429,"src":"9098:23:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76336,"name":"address","nodeType":"ElementaryTypeName","src":"9098:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76337,"nodeType":"ArrayTypeName","src":"9098:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76339,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"9124:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"id":76340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9136:9:130","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":75577,"src":"9124:21:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":76341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9098:49:130"},{"assignments":[76347],"declarations":[{"constant":false,"id":76347,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"9174:19:130","nodeType":"VariableDeclaration","scope":76429,"src":"9157:36:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76345,"name":"address","nodeType":"ElementaryTypeName","src":"9157:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76346,"nodeType":"ArrayTypeName","src":"9157:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76356,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76351,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"9210:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9217:6:130","memberName":"length","nodeType":"MemberAccess","src":"9210:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":76353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9226:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9210:17:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9196:13:130","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76348,"name":"address","nodeType":"ElementaryTypeName","src":"9200:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76349,"nodeType":"ArrayTypeName","src":"9200:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9157:71:130"},{"body":{"id":76376,"nodeType":"Block","src":"9283:59:130","statements":[{"expression":{"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76368,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9297:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76370,"indexExpression":{"id":76369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9317:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9297:22:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76371,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"9322:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76373,"indexExpression":{"id":76372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9329:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9322:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9297:34:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76375,"nodeType":"ExpressionStatement","src":"9297:34:130"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9259:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76362,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"9263:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9270:6:130","memberName":"length","nodeType":"MemberAccess","src":"9263:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9259:17:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76377,"initializationExpression":{"assignments":[76358],"declarations":[{"constant":false,"id":76358,"mutability":"mutable","name":"i","nameLocation":"9252:1:130","nodeType":"VariableDeclaration","scope":76377,"src":"9244:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76357,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76360,"initialValue":{"hexValue":"30","id":76359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9256:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9244:13:130"},"loopExpression":{"expression":{"id":76366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9278:3:130","subExpression":{"id":76365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9278:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76367,"nodeType":"ExpressionStatement","src":"9278:3:130"},"nodeType":"ForStatement","src":"9239:103:130"},{"expression":{"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76378,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9352:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76383,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76379,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9372:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9392:6:130","memberName":"length","nodeType":"MemberAccess","src":"9372:26:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9401:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9372:30:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9352:51:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76386,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"9414:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}],"id":76385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9406:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76384,"name":"address","nodeType":"ElementaryTypeName","src":"9406:7:130","typeDescriptions":{}}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9352:74:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76389,"nodeType":"ExpressionStatement","src":"9352:74:130"},{"expression":{"id":76400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76390,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9436:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76395,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76391,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9456:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9476:6:130","memberName":"length","nodeType":"MemberAccess","src":"9456:26:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":76393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9485:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9456:30:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9436:51:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76398,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9498:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9490:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76396,"name":"address","nodeType":"ElementaryTypeName","src":"9490:7:130","typeDescriptions":{}}},"id":76399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9490:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9436:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76401,"nodeType":"ExpressionStatement","src":"9436:67:130"},{"expression":{"id":76416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76402,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"9591:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76405,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9638:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9645:6:130","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"9638:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76407,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"9653:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9668:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9675:9:130","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76114,"src":"9668:16:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":76412,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9694:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9686:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76410,"name":"address","nodeType":"ElementaryTypeName","src":"9686:7:130","typeDescriptions":{}}},"id":76413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9686:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76414,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9701:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76403,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"9615:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9624:13:130","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"9615:22:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":76415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9615:106:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9591:130:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76417,"nodeType":"ExpressionStatement","src":"9591:130:130"},{"expression":{"id":76420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76418,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"9732:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76419,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9749:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"9732:36:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76421,"nodeType":"ExpressionStatement","src":"9732:36:130"},{"eventCall":{"arguments":[{"id":76423,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"9804:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76424,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"9815:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76425,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9830:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9837:9:130","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76114,"src":"9830:16:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76422,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75901,"src":"9784:19:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9784:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76428,"nodeType":"EmitStatement","src":"9779:68:130"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7918:10:130","parameters":{"id":76211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76210,"mutability":"mutable","name":"params","nameLocation":"7971:6:130","nodeType":"VariableDeclaration","scope":76430,"src":"7929:48:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":76209,"nodeType":"UserDefinedTypeName","pathNode":{"id":76208,"name":"RegistryCommunity.InitializeParams","nameLocations":["7929:17:130","7947:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":76125,"src":"7929:34:130"},"referencedDeclaration":76125,"src":"7929:34:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"7928:50:130"},"returnParameters":{"id":76212,"nodeType":"ParameterList","parameters":[],"src":"7986:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76462,"nodeType":"FunctionDefinition","src":"9860:341:130","nodes":[],"body":{"id":76461,"nodeType":"Block","src":"10041:160:130","nodes":[],"statements":[{"assignments":[76446],"declarations":[{"constant":false,"id":76446,"mutability":"mutable","name":"strategyClone","nameLocation":"10059:13:130","nodeType":"VariableDeclaration","scope":76461,"src":"10051:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76445,"name":"address","nodeType":"ElementaryTypeName","src":"10051:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76453,"initialValue":{"arguments":[{"id":76449,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76139,"src":"10093:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10111:12:130","subExpression":{"id":76450,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"10111:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76447,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"10075:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10081:11:130","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"10075:17:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":76452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10051:73:130"},{"expression":{"arguments":[{"id":76455,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"10152:13:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76456,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76432,"src":"10167:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76457,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76435,"src":"10175:7:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":76458,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76438,"src":"10184:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76454,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[76462,76534],"referencedDeclaration":76534,"src":"10141:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$72891_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":76459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:53:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":76444,"id":76460,"nodeType":"Return","src":"10134:60:130"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"9869:10:130","parameters":{"id":76439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76432,"mutability":"mutable","name":"_token","nameLocation":"9888:6:130","nodeType":"VariableDeclaration","scope":76462,"src":"9880:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76431,"name":"address","nodeType":"ElementaryTypeName","src":"9880:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76435,"mutability":"mutable","name":"_params","nameLocation":"9935:7:130","nodeType":"VariableDeclaration","scope":76462,"src":"9896:46:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76434,"nodeType":"UserDefinedTypeName","pathNode":{"id":76433,"name":"StrategyStruct.InitializeParams","nameLocations":["9896:14:130","9911:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"9896:31:130"},"referencedDeclaration":72891,"src":"9896:31:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76438,"mutability":"mutable","name":"_metadata","nameLocation":"9960:9:130","nodeType":"VariableDeclaration","scope":76462,"src":"9944:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76437,"nodeType":"UserDefinedTypeName","pathNode":{"id":76436,"name":"Metadata","nameLocations":["9944:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9944:8:130"},"referencedDeclaration":3098,"src":"9944:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"9879:91:130"},"returnParameters":{"id":76444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76441,"mutability":"mutable","name":"poolId","nameLocation":"10011:6:130","nodeType":"VariableDeclaration","scope":76462,"src":"10003:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76440,"name":"uint256","nodeType":"ElementaryTypeName","src":"10003:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76443,"mutability":"mutable","name":"strategy","nameLocation":"10027:8:130","nodeType":"VariableDeclaration","scope":76462,"src":"10019:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76442,"name":"address","nodeType":"ElementaryTypeName","src":"10019:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10002:34:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76534,"nodeType":"FunctionDefinition","src":"10207:653:130","nodes":[],"body":{"id":76533,"nodeType":"Block","src":"10425:435:130","nodes":[],"statements":[{"assignments":[76480],"declarations":[{"constant":false,"id":76480,"mutability":"mutable","name":"token","nameLocation":"10443:5:130","nodeType":"VariableDeclaration","scope":76533,"src":"10435:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76479,"name":"address","nodeType":"ElementaryTypeName","src":"10435:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76482,"initialValue":{"id":76481,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75849,"src":"10451:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10435:22:130"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76483,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"10471:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10489:1:130","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":76485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10481:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76484,"name":"address","nodeType":"ElementaryTypeName","src":"10481:7:130","typeDescriptions":{}}},"id":76487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10481:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10471:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76494,"nodeType":"IfStatement","src":"10467:65:130","trueBody":{"id":76493,"nodeType":"Block","src":"10493:39:130","statements":[{"expression":{"id":76491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76489,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"10507:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76490,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"10515:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10507:14:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76492,"nodeType":"ExpressionStatement","src":"10507:14:130"}]}},{"expression":{"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76495,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"src":"10541:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76496,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"10552:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10541:20:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76498,"nodeType":"ExpressionStatement","src":"10541:20:130"},{"assignments":[76503],"declarations":[{"constant":false,"id":76503,"mutability":"mutable","name":"_pool_managers","nameLocation":"10589:14:130","nodeType":"VariableDeclaration","scope":76533,"src":"10572:31:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76501,"name":"address","nodeType":"ElementaryTypeName","src":"10572:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76502,"nodeType":"ArrayTypeName","src":"10572:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76505,"initialValue":{"id":76504,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"10606:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10572:48:130"},{"expression":{"id":76520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76506,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76475,"src":"10631:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76509,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"10687:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76510,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"src":"10698:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76513,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76469,"src":"10719:7:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":76511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10708:3:130","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10712:6:130","memberName":"encode","nodeType":"MemberAccess","src":"10708:10:130","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10708:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76515,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"10729:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10736:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":76517,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76472,"src":"10739:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":76518,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"10750:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76507,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"10640:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":76508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10645:28:130","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"10640:33:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":76519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10640:134:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10631:143:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76521,"nodeType":"ExpressionStatement","src":"10631:143:130"},{"eventCall":{"arguments":[{"id":76523,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76475,"src":"10802:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76524,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"src":"10810:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76527,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10828:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10820:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76525,"name":"address","nodeType":"ElementaryTypeName","src":"10820:7:130","typeDescriptions":{}}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10820:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76529,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"10835:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76530,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76472,"src":"10843:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76522,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75952,"src":"10790:11:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":76531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10790:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76532,"nodeType":"EmitStatement","src":"10785:68:130"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"10216:10:130","parameters":{"id":76473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76464,"mutability":"mutable","name":"_strategy","nameLocation":"10244:9:130","nodeType":"VariableDeclaration","scope":76534,"src":"10236:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76463,"name":"address","nodeType":"ElementaryTypeName","src":"10236:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76466,"mutability":"mutable","name":"_token","nameLocation":"10271:6:130","nodeType":"VariableDeclaration","scope":76534,"src":"10263:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76465,"name":"address","nodeType":"ElementaryTypeName","src":"10263:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76469,"mutability":"mutable","name":"_params","nameLocation":"10326:7:130","nodeType":"VariableDeclaration","scope":76534,"src":"10287:46:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76468,"nodeType":"UserDefinedTypeName","pathNode":{"id":76467,"name":"StrategyStruct.InitializeParams","nameLocations":["10287:14:130","10302:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"10287:31:130"},"referencedDeclaration":72891,"src":"10287:31:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76472,"mutability":"mutable","name":"_metadata","nameLocation":"10359:9:130","nodeType":"VariableDeclaration","scope":76534,"src":"10343:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76471,"nodeType":"UserDefinedTypeName","pathNode":{"id":76470,"name":"Metadata","nameLocations":["10343:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10343:8:130"},"referencedDeclaration":3098,"src":"10343:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10226:148:130"},"returnParameters":{"id":76478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76475,"mutability":"mutable","name":"poolId","nameLocation":"10399:6:130","nodeType":"VariableDeclaration","scope":76534,"src":"10391:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76474,"name":"uint256","nodeType":"ElementaryTypeName","src":"10391:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76477,"mutability":"mutable","name":"strategy","nameLocation":"10415:8:130","nodeType":"VariableDeclaration","scope":76534,"src":"10407:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76476,"name":"address","nodeType":"ElementaryTypeName","src":"10407:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10390:34:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76651,"nodeType":"FunctionDefinition","src":"10866:1179:130","nodes":[],"body":{"id":76650,"nodeType":"Block","src":"10943:1102:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":76542,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"10979:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76541,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"10953:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10953:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76544,"nodeType":"ExpressionStatement","src":"10953:34:130"},{"expression":{"arguments":[{"id":76546,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11017:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76545,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76011,"src":"10997:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10997:30:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76548,"nodeType":"ExpressionStatement","src":"10997:30:130"},{"expression":{"arguments":[{"id":76550,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11056:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76549,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"11037:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11037:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76552,"nodeType":"ExpressionStatement","src":"11037:29:130"},{"condition":{"baseExpression":{"baseExpression":{"id":76553,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11081:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76555,"indexExpression":{"id":76554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11109:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76557,"indexExpression":{"id":76556,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11118:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76562,"nodeType":"IfStatement","src":"11077:107:130","trueBody":{"id":76561,"nodeType":"Block","src":"11130:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76558,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76059,"src":"11151:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76560,"nodeType":"RevertStatement","src":"11144:29:130"}]}},{"assignments":[76565],"declarations":[{"constant":false,"id":76565,"mutability":"mutable","name":"member","nameLocation":"11208:6:130","nodeType":"VariableDeclaration","scope":76650,"src":"11194:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":76564,"nodeType":"UserDefinedTypeName","pathNode":{"id":76563,"name":"Member","nameLocations":["11194:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"11194:6:130"},"referencedDeclaration":76092,"src":"11194:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":76569,"initialValue":{"baseExpression":{"id":76566,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"11217:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76568,"indexExpression":{"id":76567,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11237:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11217:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11194:51:130"},{"assignments":[76571],"declarations":[{"constant":false,"id":76571,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"11264:17:130","nodeType":"VariableDeclaration","scope":76650,"src":"11256:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76570,"name":"uint256","nodeType":"ElementaryTypeName","src":"11256:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76574,"initialValue":{"expression":{"id":76572,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76565,"src":"11284:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":76573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11291:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"11284:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11256:47:130"},{"assignments":[76576],"declarations":[{"constant":false,"id":76576,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"11321:16:130","nodeType":"VariableDeclaration","scope":76650,"src":"11313:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76575,"name":"uint256","nodeType":"ElementaryTypeName","src":"11313:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76578,"initialValue":{"id":76577,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"11340:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11313:46:130"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":76587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76580,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11389:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76579,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11374:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11400:14:130","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"11374:40:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72810_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":76584,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"11420:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11435:11:130","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11420:26:130","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11447:9:130","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72809,"src":"11420:36:130","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"11374:82:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76600,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11578:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76599,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11563:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11589:14:130","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"11563:40:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72810_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76604,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"11609:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":76605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11624:11:130","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11609:26:130","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11636:5:130","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11609:32:130","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"11563:78:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76619,"nodeType":"IfStatement","src":"11559:195:130","trueBody":{"id":76618,"nodeType":"Block","src":"11643:111:130","statements":[{"expression":{"id":76616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76608,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"11657:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76613,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11716:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76614,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"11725:17:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76610,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11691:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76609,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11676:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11702:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72785,"src":"11676:39:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:67:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11657:86:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76617,"nodeType":"ExpressionStatement","src":"11657:86:130"}]}},"id":76620,"nodeType":"IfStatement","src":"11370:384:130","trueBody":{"id":76598,"nodeType":"Block","src":"11458:95:130","statements":[{"expression":{"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76588,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"11472:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76593,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11531:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":76590,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11506:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76589,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11491:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11517:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72785,"src":"11491:39:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:51:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11472:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76597,"nodeType":"ExpressionStatement","src":"11472:70:130"}]}},{"expression":{"id":76627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76621,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"11764:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76624,"indexExpression":{"id":76622,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11786:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11764:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76625,"indexExpression":{"id":76623,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11795:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11764:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76626,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"11808:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11764:60:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76628,"nodeType":"ExpressionStatement","src":"11764:60:130"},{"expression":{"id":76635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76629,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11853:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76632,"indexExpression":{"id":76630,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11881:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11853:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76633,"indexExpression":{"id":76631,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11890:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11853:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11903:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11853:54:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76636,"nodeType":"ExpressionStatement","src":"11853:54:130"},{"expression":{"arguments":[{"id":76641,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11951:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":76637,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"11918:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76639,"indexExpression":{"id":76638,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11937:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11918:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11946:4:130","memberName":"push","nodeType":"MemberAccess","src":"11918:32:130","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":76642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11918:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76643,"nodeType":"ExpressionStatement","src":"11918:43:130"},{"eventCall":{"arguments":[{"id":76645,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"12001:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76646,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"12010:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76647,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"12021:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76644,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75917,"src":"11977:23:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76649,"nodeType":"EmitStatement","src":"11972:66:130"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"10875:24:130","parameters":{"id":76539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76536,"mutability":"mutable","name":"_member","nameLocation":"10908:7:130","nodeType":"VariableDeclaration","scope":76651,"src":"10900:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76535,"name":"address","nodeType":"ElementaryTypeName","src":"10900:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76538,"mutability":"mutable","name":"_strategy","nameLocation":"10925:9:130","nodeType":"VariableDeclaration","scope":76651,"src":"10917:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76537,"name":"address","nodeType":"ElementaryTypeName","src":"10917:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10899:36:130"},"returnParameters":{"id":76540,"nodeType":"ParameterList","parameters":[],"src":"10943:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76710,"nodeType":"FunctionDefinition","src":"12051:691:130","nodes":[],"body":{"id":76709,"nodeType":"Block","src":"12130:612:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":76659,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12166:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76658,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"12140:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12140:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76661,"nodeType":"ExpressionStatement","src":"12140:34:130"},{"expression":{"arguments":[{"id":76663,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12203:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76662,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"12184:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12184:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76665,"nodeType":"ExpressionStatement","src":"12184:29:130"},{"expression":{"arguments":[{"expression":{"id":76667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12243:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12247:6:130","memberName":"sender","nodeType":"MemberAccess","src":"12243:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76669,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12255:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76666,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76027,"src":"12223:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":76670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12223:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76671,"nodeType":"ExpressionStatement","src":"12223:42:130"},{"condition":{"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12280:48:130","subExpression":{"baseExpression":{"baseExpression":{"id":76672,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"12281:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76674,"indexExpression":{"id":76673,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12309:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76676,"indexExpression":{"id":76675,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12318:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76682,"nodeType":"IfStatement","src":"12276:110:130","trueBody":{"id":76681,"nodeType":"Block","src":"12330:56:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76678,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76061,"src":"12351:22:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12351:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76680,"nodeType":"RevertStatement","src":"12344:31:130"}]}},{"expression":{"id":76689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76683,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"12396:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76686,"indexExpression":{"id":76684,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12424:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12396:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76687,"indexExpression":{"id":76685,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12433:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12396:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":76688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12446:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12396:55:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76690,"nodeType":"ExpressionStatement","src":"12396:55:130"},{"expression":{"id":76697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76691,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"12461:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76694,"indexExpression":{"id":76692,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12483:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12461:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76695,"indexExpression":{"id":76693,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12492:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12461:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":76696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12461:45:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76698,"nodeType":"ExpressionStatement","src":"12461:45:130"},{"expression":{"arguments":[{"id":76700,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12541:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76701,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12550:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76699,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76763,"src":"12516:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12516:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76703,"nodeType":"ExpressionStatement","src":"12516:44:130"},{"eventCall":{"arguments":[{"id":76705,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12716:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76706,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12725:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76704,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75923,"src":"12690:25:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12690:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76708,"nodeType":"EmitStatement","src":"12685:50:130"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"12060:26:130","parameters":{"id":76656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76653,"mutability":"mutable","name":"_member","nameLocation":"12095:7:130","nodeType":"VariableDeclaration","scope":76710,"src":"12087:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76652,"name":"address","nodeType":"ElementaryTypeName","src":"12087:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76655,"mutability":"mutable","name":"_strategy","nameLocation":"12112:9:130","nodeType":"VariableDeclaration","scope":76710,"src":"12104:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76654,"name":"address","nodeType":"ElementaryTypeName","src":"12104:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12086:36:130"},"returnParameters":{"id":76657,"nodeType":"ParameterList","parameters":[],"src":"12130:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76763,"nodeType":"FunctionDefinition","src":"12748:425:130","nodes":[],"body":{"id":76762,"nodeType":"Block","src":"12827:346:130","nodes":[],"statements":[{"assignments":[76721],"declarations":[{"constant":false,"id":76721,"mutability":"mutable","name":"memberStrategies","nameLocation":"12855:16:130","nodeType":"VariableDeclaration","scope":76762,"src":"12837:34:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76719,"name":"address","nodeType":"ElementaryTypeName","src":"12837:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76720,"nodeType":"ArrayTypeName","src":"12837:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76725,"initialValue":{"baseExpression":{"id":76722,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"12874:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76724,"indexExpression":{"id":76723,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76712,"src":"12893:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12874:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12837:64:130"},{"body":{"id":76760,"nodeType":"Block","src":"12965:202:130","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76737,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"12983:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76739,"indexExpression":{"id":76738,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"13000:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12983:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76740,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76714,"src":"13006:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12983:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76759,"nodeType":"IfStatement","src":"12979:178:130","trueBody":{"id":76758,"nodeType":"Block","src":"13017:140:130","statements":[{"expression":{"id":76751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76742,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13035:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76744,"indexExpression":{"id":76743,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"13052:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13035:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76745,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13057:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76750,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76746,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13074:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13091:6:130","memberName":"length","nodeType":"MemberAccess","src":"13074:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13100:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13074:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13057:45:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13035:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76752,"nodeType":"ExpressionStatement","src":"13035:67:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76753,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13120:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13137:3:130","memberName":"pop","nodeType":"MemberAccess","src":"13120:20:130","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":76756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13120:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76757,"nodeType":"ExpressionStatement","src":"13120:22:130"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76730,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"12931:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76731,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"12935:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12952:6:130","memberName":"length","nodeType":"MemberAccess","src":"12935:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12931:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76761,"initializationExpression":{"assignments":[76727],"declarations":[{"constant":false,"id":76727,"mutability":"mutable","name":"i","nameLocation":"12924:1:130","nodeType":"VariableDeclaration","scope":76761,"src":"12916:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76726,"name":"uint256","nodeType":"ElementaryTypeName","src":"12916:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76729,"initialValue":{"hexValue":"30","id":76728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12916:13:130"},"loopExpression":{"expression":{"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12960:3:130","subExpression":{"id":76734,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"12960:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76736,"nodeType":"ExpressionStatement","src":"12960:3:130"},"nodeType":"ForStatement","src":"12911:256:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"12757:24:130","parameters":{"id":76715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76712,"mutability":"mutable","name":"_member","nameLocation":"12790:7:130","nodeType":"VariableDeclaration","scope":76763,"src":"12782:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76711,"name":"address","nodeType":"ElementaryTypeName","src":"12782:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76714,"mutability":"mutable","name":"_strategy","nameLocation":"12807:9:130","nodeType":"VariableDeclaration","scope":76763,"src":"12799:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76713,"name":"address","nodeType":"ElementaryTypeName","src":"12799:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12781:36:130"},"returnParameters":{"id":76716,"nodeType":"ParameterList","parameters":[],"src":"12827:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76867,"nodeType":"FunctionDefinition","src":"13179:998:130","nodes":[],"body":{"id":76866,"nodeType":"Block","src":"13245:932:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76770,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75981,"src":"13255:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13255:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76772,"nodeType":"ExpressionStatement","src":"13255:26:130"},{"assignments":[76774],"declarations":[{"constant":false,"id":76774,"mutability":"mutable","name":"member","nameLocation":"13299:6:130","nodeType":"VariableDeclaration","scope":76866,"src":"13291:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76773,"name":"address","nodeType":"ElementaryTypeName","src":"13291:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76777,"initialValue":{"expression":{"id":76775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13308:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13312:6:130","memberName":"sender","nodeType":"MemberAccess","src":"13308:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13291:27:130"},{"assignments":[76782],"declarations":[{"constant":false,"id":76782,"mutability":"mutable","name":"memberStrategies","nameLocation":"13345:16:130","nodeType":"VariableDeclaration","scope":76866,"src":"13328:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76780,"name":"address","nodeType":"ElementaryTypeName","src":"13328:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76781,"nodeType":"ArrayTypeName","src":"13328:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76786,"initialValue":{"baseExpression":{"id":76783,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"13364:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76785,"indexExpression":{"id":76784,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13383:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13364:26:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13328:62:130"},{"assignments":[76788],"declarations":[{"constant":false,"id":76788,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13409:16:130","nodeType":"VariableDeclaration","scope":76866,"src":"13401:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76787,"name":"uint256","nodeType":"ElementaryTypeName","src":"13401:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76789,"nodeType":"VariableDeclarationStatement","src":"13401:24:130"},{"body":{"id":76841,"nodeType":"Block","src":"13490:479:130","statements":[{"expression":{"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76801,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76788,"src":"13609:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76808,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13678:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76809,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13686:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":76803,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13643:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76805,"indexExpression":{"id":76804,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13660:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13643:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76802,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"13628:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13664:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72785,"src":"13628:49:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:72:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13609:91:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76812,"nodeType":"ExpressionStatement","src":"13609:91:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76813,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76788,"src":"13718:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13738:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13718:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76840,"nodeType":"IfStatement","src":"13714:229:130","trueBody":{"id":76839,"nodeType":"Block","src":"13741:202:130","statements":[{"expression":{"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76816,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"13759:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76821,"indexExpression":{"id":76817,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13781:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13759:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76822,"indexExpression":{"baseExpression":{"id":76818,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13789:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76820,"indexExpression":{"id":76819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13806:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13789:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13759:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76823,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76788,"src":"13813:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13759:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76825,"nodeType":"ExpressionStatement","src":"13759:70:130"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":76829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13859:16:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":76830,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"13877:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76832,"indexExpression":{"id":76831,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13899:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76836,"indexExpression":{"baseExpression":{"id":76833,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13907:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76835,"indexExpression":{"id":76834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13924:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13907:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76826,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"13847:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13855:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"13847:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":76837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13847:81:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76838,"nodeType":"ExpressionStatement","src":"13847:81:130"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76794,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13456:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76795,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13460:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13477:6:130","memberName":"length","nodeType":"MemberAccess","src":"13460:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13456:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76842,"initializationExpression":{"assignments":[76791],"declarations":[{"constant":false,"id":76791,"mutability":"mutable","name":"i","nameLocation":"13449:1:130","nodeType":"VariableDeclaration","scope":76842,"src":"13441:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76790,"name":"uint256","nodeType":"ElementaryTypeName","src":"13441:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76793,"initialValue":{"hexValue":"30","id":76792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13453:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13441:13:130"},"loopExpression":{"expression":{"id":76799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13485:3:130","subExpression":{"id":76798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13485:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76800,"nodeType":"ExpressionStatement","src":"13485:3:130"},"nodeType":"ForStatement","src":"13436:533:130"},{"expression":{"arguments":[{"id":76846,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"14008:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76849,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14024:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14016:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76847,"name":"address","nodeType":"ElementaryTypeName","src":"14016:7:130","typeDescriptions":{}}},"id":76850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14016:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76851,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"14031:13:130","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":76843,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"13979:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:16:130","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"13979:28:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":76852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13979:66:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76853,"nodeType":"ExpressionStatement","src":"13979:66:130"},{"expression":{"id":76859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":76854,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"14055:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76856,"indexExpression":{"id":76855,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"14075:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14055:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14083:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"14055:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76858,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"14099:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14055:57:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76860,"nodeType":"ExpressionStatement","src":"14055:57:130"},{"eventCall":{"arguments":[{"id":76862,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"14148:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76863,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"14156:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76861,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75933,"src":"14127:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76865,"nodeType":"EmitStatement","src":"14122:48:130"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":76768,"kind":"modifierInvocation","modifierName":{"id":76767,"name":"nonReentrant","nameLocations":["13232:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"13232:12:130"},"nodeType":"ModifierInvocation","src":"13232:12:130"}],"name":"increasePower","nameLocation":"13188:13:130","parameters":{"id":76766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76765,"mutability":"mutable","name":"_amountStaked","nameLocation":"13210:13:130","nodeType":"VariableDeclaration","scope":76867,"src":"13202:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76764,"name":"uint256","nodeType":"ElementaryTypeName","src":"13202:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:23:130"},"returnParameters":{"id":76769,"nodeType":"ParameterList","parameters":[],"src":"13245:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77017,"nodeType":"FunctionDefinition","src":"14317:1554:130","nodes":[],"body":{"id":77016,"nodeType":"Block","src":"14385:1486:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76874,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75981,"src":"14395:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76876,"nodeType":"ExpressionStatement","src":"14395:26:130"},{"assignments":[76878],"declarations":[{"constant":false,"id":76878,"mutability":"mutable","name":"member","nameLocation":"14439:6:130","nodeType":"VariableDeclaration","scope":77016,"src":"14431:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76877,"name":"address","nodeType":"ElementaryTypeName","src":"14431:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76881,"initialValue":{"expression":{"id":76879,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14448:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14452:6:130","memberName":"sender","nodeType":"MemberAccess","src":"14448:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14431:27:130"},{"assignments":[76886],"declarations":[{"constant":false,"id":76886,"mutability":"mutable","name":"memberStrategies","nameLocation":"14486:16:130","nodeType":"VariableDeclaration","scope":77016,"src":"14468:34:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76884,"name":"address","nodeType":"ElementaryTypeName","src":"14468:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76885,"nodeType":"ArrayTypeName","src":"14468:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76890,"initialValue":{"baseExpression":{"id":76887,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"14505:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76889,"indexExpression":{"id":76888,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"14524:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14505:26:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14468:63:130"},{"assignments":[76892],"declarations":[{"constant":false,"id":76892,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14550:16:130","nodeType":"VariableDeclaration","scope":77016,"src":"14542:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76891,"name":"uint256","nodeType":"ElementaryTypeName","src":"14542:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76893,"nodeType":"VariableDeclarationStatement","src":"14542:24:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":76894,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"14581:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76896,"indexExpression":{"id":76895,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"14601:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14581:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14609:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"14581:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76898,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14624:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:58:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76900,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"14642:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:80:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76906,"nodeType":"IfStatement","src":"14577:140:130","trueBody":{"id":76905,"nodeType":"Block","src":"14663:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76902,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76079,"src":"14684:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14684:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76904,"nodeType":"RevertStatement","src":"14677:29:130"}]}},{"expression":{"arguments":[{"id":76910,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"14751:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76911,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14759:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76907,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"14726:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14738:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"14726:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":76912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14726:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76913,"nodeType":"ExpressionStatement","src":"14726:49:130"},{"body":{"id":77002,"nodeType":"Block","src":"14839:897:130","statements":[{"assignments":[76926],"declarations":[{"constant":false,"id":76926,"mutability":"mutable","name":"strategy","nameLocation":"14861:8:130","nodeType":"VariableDeclaration","scope":77002,"src":"14853:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76925,"name":"address","nodeType":"ElementaryTypeName","src":"14853:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76930,"initialValue":{"baseExpression":{"id":76927,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"14872:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76929,"indexExpression":{"id":76928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"14889:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14872:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14853:38:130"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":76934,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"14941:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":76933,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14936:4:130","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14936:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":76936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14957:11:130","memberName":"interfaceId","nodeType":"MemberAccess","src":"14936:32:130","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76931,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"14909:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14918:17:130","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58155,"src":"14909:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":76937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77000,"nodeType":"Block","src":"15459:250:130","statements":[{"expression":{"id":76989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76980,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15544:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76982,"indexExpression":{"id":76981,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"15561:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15544:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76983,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15566:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76988,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76984,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15583:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15600:6:130","memberName":"length","nodeType":"MemberAccess","src":"15583:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15609:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15583:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15566:45:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15544:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76990,"nodeType":"ExpressionStatement","src":"15544:67:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76991,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15629:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15646:3:130","memberName":"pop","nodeType":"MemberAccess","src":"15629:20:130","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":76994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15629:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76995,"nodeType":"ExpressionStatement","src":"15629:22:130"},{"expression":{"arguments":[{"id":76997,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"15685:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76996,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77184,"src":"15669:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15669:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76999,"nodeType":"ExpressionStatement","src":"15669:25:130"}]},"id":77001,"nodeType":"IfStatement","src":"14905:804:130","trueBody":{"id":76979,"nodeType":"Block","src":"14971:482:130","statements":[{"expression":{"id":76946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76938,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"14989:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76943,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15047:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76944,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15055:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76940,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"15023:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76939,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"15008:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15033:13:130","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":72794,"src":"15008:38:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14989:82:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76947,"nodeType":"ExpressionStatement","src":"14989:82:130"},{"assignments":[76949],"declarations":[{"constant":false,"id":76949,"mutability":"mutable","name":"currentPower","nameLocation":"15097:12:130","nodeType":"VariableDeclaration","scope":76979,"src":"15089:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76948,"name":"uint256","nodeType":"ElementaryTypeName","src":"15089:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76957,"initialValue":{"baseExpression":{"baseExpression":{"id":76950,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"15112:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76952,"indexExpression":{"id":76951,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15134:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76956,"indexExpression":{"baseExpression":{"id":76953,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15142:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76955,"indexExpression":{"id":76954,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"15159:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15089:73:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76958,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"15184:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":76959,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76949,"src":"15203:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15184:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76977,"nodeType":"Block","src":"15328:111:130","statements":[{"expression":{"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76967,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"15350:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76972,"indexExpression":{"id":76968,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15372:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15350:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76973,"indexExpression":{"baseExpression":{"id":76969,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15380:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76971,"indexExpression":{"id":76970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"15397:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15380:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15350:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":76974,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"15404:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15350:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76976,"nodeType":"ExpressionStatement","src":"15350:70:130"}]},"id":76978,"nodeType":"IfStatement","src":"15180:259:130","trueBody":{"id":76966,"nodeType":"Block","src":"15217:105:130","statements":[{"errorCall":{"arguments":[{"id":76962,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"15272:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76963,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76949,"src":"15290:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76961,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"15246:25:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15246:57:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76965,"nodeType":"RevertStatement","src":"15239:64:130"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"14805:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76919,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"14809:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14826:6:130","memberName":"length","nodeType":"MemberAccess","src":"14809:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14805:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77003,"initializationExpression":{"assignments":[76915],"declarations":[{"constant":false,"id":76915,"mutability":"mutable","name":"i","nameLocation":"14798:1:130","nodeType":"VariableDeclaration","scope":77003,"src":"14790:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76914,"name":"uint256","nodeType":"ElementaryTypeName","src":"14790:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76917,"initialValue":{"hexValue":"30","id":76916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14802:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14790:13:130"},"loopExpression":{"expression":{"id":76923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14834:3:130","subExpression":{"id":76922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"14834:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76924,"nodeType":"ExpressionStatement","src":"14834:3:130"},"nodeType":"ForStatement","src":"14785:951:130"},{"expression":{"id":77009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77004,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"15745:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77006,"indexExpression":{"id":77005,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15765:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15745:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15773:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"15745:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":77008,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15789:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15745:59:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77010,"nodeType":"ExpressionStatement","src":"15745:59:130"},{"eventCall":{"arguments":[{"id":77012,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15840:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77013,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15848:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77011,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75939,"src":"15819:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15819:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77015,"nodeType":"EmitStatement","src":"15814:50:130"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":76872,"kind":"modifierInvocation","modifierName":{"id":76871,"name":"nonReentrant","nameLocations":["14372:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"14372:12:130"},"nodeType":"ModifierInvocation","src":"14372:12:130"}],"name":"decreasePower","nameLocation":"14326:13:130","parameters":{"id":76870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76869,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"14348:15:130","nodeType":"VariableDeclaration","scope":77017,"src":"14340:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76868,"name":"uint256","nodeType":"ElementaryTypeName","src":"14340:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14339:25:130"},"returnParameters":{"id":76873,"nodeType":"ParameterList","parameters":[],"src":"14385:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77033,"nodeType":"FunctionDefinition","src":"15877:165:130","nodes":[],"body":{"id":77032,"nodeType":"Block","src":"15977:65:130","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":77026,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"15994:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77028,"indexExpression":{"id":77027,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77019,"src":"16016:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77030,"indexExpression":{"id":77029,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"16025:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77025,"id":77031,"nodeType":"Return","src":"15987:48:130"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"15886:24:130","parameters":{"id":77022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77019,"mutability":"mutable","name":"_member","nameLocation":"15919:7:130","nodeType":"VariableDeclaration","scope":77033,"src":"15911:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77018,"name":"address","nodeType":"ElementaryTypeName","src":"15911:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77021,"mutability":"mutable","name":"_strategy","nameLocation":"15936:9:130","nodeType":"VariableDeclaration","scope":77033,"src":"15928:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77020,"name":"address","nodeType":"ElementaryTypeName","src":"15928:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15910:36:130"},"returnParameters":{"id":77025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77033,"src":"15968:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77023,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15967:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77046,"nodeType":"FunctionDefinition","src":"16048:143:130","nodes":[],"body":{"id":77045,"nodeType":"Block","src":"16126:65:130","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77040,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"16143:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77042,"indexExpression":{"id":77041,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77035,"src":"16163:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16143:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16172:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"16143:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77039,"id":77044,"nodeType":"Return","src":"16136:48:130"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"16057:21:130","parameters":{"id":77036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77035,"mutability":"mutable","name":"_member","nameLocation":"16087:7:130","nodeType":"VariableDeclaration","scope":77046,"src":"16079:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77034,"name":"address","nodeType":"ElementaryTypeName","src":"16079:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16078:17:130"},"returnParameters":{"id":77039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77046,"src":"16117:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77037,"name":"uint256","nodeType":"ElementaryTypeName","src":"16117:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16116:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77083,"nodeType":"FunctionDefinition","src":"16320:313:130","nodes":[],"body":{"id":77082,"nodeType":"Block","src":"16372:261:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77051,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"16382:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77053,"nodeType":"ExpressionStatement","src":"16382:17:130"},{"assignments":[77055],"declarations":[{"constant":false,"id":77055,"mutability":"mutable","name":"strategy","nameLocation":"16417:8:130","nodeType":"VariableDeclaration","scope":77082,"src":"16409:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77054,"name":"address","nodeType":"ElementaryTypeName","src":"16409:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77064,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77060,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77048,"src":"16449:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77058,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"16436:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":77059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16441:7:130","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75831,"src":"16436:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16436:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16457:8:130","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"16436:29:130","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16428:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77056,"name":"address","nodeType":"ElementaryTypeName","src":"16428:7:130","typeDescriptions":{}}},"id":77063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16409:57:130"},{"expression":{"arguments":[{"id":77066,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16495:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77065,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"16476:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77068,"nodeType":"ExpressionStatement","src":"16476:28:130"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77072,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"16550:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":77071,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16545:4:130","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16545:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":77074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16566:11:130","memberName":"interfaceId","nodeType":"MemberAccess","src":"16545:32:130","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77069,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16518:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16527:17:130","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58155,"src":"16518:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16518:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77081,"nodeType":"IfStatement","src":"16514:113:130","trueBody":{"id":77080,"nodeType":"Block","src":"16580:47:130","statements":[{"expression":{"arguments":[{"id":77077,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16607:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77076,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77120,"src":"16594:12:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16594:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77079,"nodeType":"ExpressionStatement","src":"16594:22:130"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"16329:19:130","parameters":{"id":77049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77048,"mutability":"mutable","name":"poolId","nameLocation":"16357:6:130","nodeType":"VariableDeclaration","scope":77083,"src":"16349:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77047,"name":"uint256","nodeType":"ElementaryTypeName","src":"16349:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16348:16:130"},"returnParameters":{"id":77050,"nodeType":"ParameterList","parameters":[],"src":"16372:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77096,"nodeType":"FunctionDefinition","src":"16639:120:130","nodes":[],"body":{"id":77095,"nodeType":"Block","src":"16689:70:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77088,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"16699:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16699:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77090,"nodeType":"ExpressionStatement","src":"16699:17:130"},{"expression":{"arguments":[{"id":77092,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77085,"src":"16739:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77091,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77120,"src":"16726:12:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16726:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77094,"nodeType":"ExpressionStatement","src":"16726:26:130"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"16648:11:130","parameters":{"id":77086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77085,"mutability":"mutable","name":"_newStrategy","nameLocation":"16668:12:130","nodeType":"VariableDeclaration","scope":77096,"src":"16660:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77084,"name":"address","nodeType":"ElementaryTypeName","src":"16660:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16659:22:130"},"returnParameters":{"id":77087,"nodeType":"ParameterList","parameters":[],"src":"16689:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77120,"nodeType":"FunctionDefinition","src":"16765:244:130","nodes":[],"body":{"id":77119,"nodeType":"Block","src":"16818:191:130","nodes":[],"statements":[{"condition":{"baseExpression":{"id":77101,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"16832:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77103,"indexExpression":{"id":77102,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"16850:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16832:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77108,"nodeType":"IfStatement","src":"16828:85:130","trueBody":{"id":77107,"nodeType":"Block","src":"16865:48:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77104,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76063,"src":"16886:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16886:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77106,"nodeType":"RevertStatement","src":"16879:23:130"}]}},{"expression":{"id":77113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77109,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"16922:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77111,"indexExpression":{"id":77110,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"16940:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16922:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16956:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16922:38:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77114,"nodeType":"ExpressionStatement","src":"16922:38:130"},{"eventCall":{"arguments":[{"id":77116,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"16989:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77115,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75905,"src":"16975:13:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16975:27:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77118,"nodeType":"EmitStatement","src":"16970:32:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"16774:12:130","parameters":{"id":77099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77098,"mutability":"mutable","name":"_newStrategy","nameLocation":"16795:12:130","nodeType":"VariableDeclaration","scope":77120,"src":"16787:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77097,"name":"address","nodeType":"ElementaryTypeName","src":"16787:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16786:22:130"},"returnParameters":{"id":77100,"nodeType":"ParameterList","parameters":[],"src":"16818:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77136,"nodeType":"FunctionDefinition","src":"17015:133:130","nodes":[],"body":{"id":77135,"nodeType":"Block","src":"17075:73:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77125,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77122,"src":"17089:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17109:1:130","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":77127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17101:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77126,"name":"address","nodeType":"ElementaryTypeName","src":"17101:7:130","typeDescriptions":{}}},"id":77129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17101:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17089:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77134,"nodeType":"IfStatement","src":"17085:56:130","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77131,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76047,"src":"17120:19:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17120:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77133,"nodeType":"RevertStatement","src":"17113:28:130"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"17024:18:130","parameters":{"id":77123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77122,"mutability":"mutable","name":"_address","nameLocation":"17051:8:130","nodeType":"VariableDeclaration","scope":77136,"src":"17043:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77121,"name":"address","nodeType":"ElementaryTypeName","src":"17043:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17042:18:130"},"returnParameters":{"id":77124,"nodeType":"ParameterList","parameters":[],"src":"17075:0:130"},"scope":77692,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77164,"nodeType":"FunctionDefinition","src":"17154:229:130","nodes":[],"body":{"id":77163,"nodeType":"Block","src":"17209:174:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77141,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"17219:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17219:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77143,"nodeType":"ExpressionStatement","src":"17219:17:130"},{"assignments":[77145],"declarations":[{"constant":false,"id":77145,"mutability":"mutable","name":"strategy","nameLocation":"17254:8:130","nodeType":"VariableDeclaration","scope":77163,"src":"17246:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77144,"name":"address","nodeType":"ElementaryTypeName","src":"17246:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77154,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77150,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77138,"src":"17286:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77148,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"17273:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":77149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17278:7:130","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75831,"src":"17273:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17273:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17294:8:130","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17273:29:130","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17265:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77146,"name":"address","nodeType":"ElementaryTypeName","src":"17265:7:130","typeDescriptions":{}}},"id":77153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17265:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17246:57:130"},{"expression":{"arguments":[{"id":77156,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77145,"src":"17332:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77155,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"17313:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17313:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77158,"nodeType":"ExpressionStatement","src":"17313:28:130"},{"expression":{"arguments":[{"id":77160,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77145,"src":"17367:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77159,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77184,"src":"17351:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17351:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77162,"nodeType":"ExpressionStatement","src":"17351:25:130"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"17163:22:130","parameters":{"id":77139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77138,"mutability":"mutable","name":"poolId","nameLocation":"17194:6:130","nodeType":"VariableDeclaration","scope":77164,"src":"17186:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77137,"name":"uint256","nodeType":"ElementaryTypeName","src":"17186:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17185:16:130"},"returnParameters":{"id":77140,"nodeType":"ParameterList","parameters":[],"src":"17209:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77184,"nodeType":"FunctionDefinition","src":"17389:186:130","nodes":[],"body":{"id":77183,"nodeType":"Block","src":"17442:133:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":77170,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"17471:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77169,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"17452:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17452:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77172,"nodeType":"ExpressionStatement","src":"17452:29:130"},{"expression":{"id":77177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77173,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"17491:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77175,"indexExpression":{"id":77174,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"17509:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17491:28:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":77176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17522:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17491:36:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77178,"nodeType":"ExpressionStatement","src":"17491:36:130"},{"eventCall":{"arguments":[{"id":77180,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"17558:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77179,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75909,"src":"17542:15:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17542:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77182,"nodeType":"EmitStatement","src":"17537:31:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"17398:15:130","parameters":{"id":77167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77166,"mutability":"mutable","name":"_strategy","nameLocation":"17422:9:130","nodeType":"VariableDeclaration","scope":77184,"src":"17414:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77165,"name":"address","nodeType":"ElementaryTypeName","src":"17414:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17413:19:130"},"returnParameters":{"id":77168,"nodeType":"ParameterList","parameters":[],"src":"17442:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77197,"nodeType":"FunctionDefinition","src":"17581:120:130","nodes":[],"body":{"id":77196,"nodeType":"Block","src":"17631:70:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77189,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"17641:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77191,"nodeType":"ExpressionStatement","src":"17641:17:130"},{"expression":{"arguments":[{"id":77193,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77186,"src":"17684:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77192,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77184,"src":"17668:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17668:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77195,"nodeType":"ExpressionStatement","src":"17668:26:130"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"17590:14:130","parameters":{"id":77187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77186,"mutability":"mutable","name":"_strategy","nameLocation":"17613:9:130","nodeType":"VariableDeclaration","scope":77197,"src":"17605:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77185,"name":"address","nodeType":"ElementaryTypeName","src":"17605:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17604:19:130"},"returnParameters":{"id":77188,"nodeType":"ParameterList","parameters":[],"src":"17631:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77222,"nodeType":"FunctionDefinition","src":"17707:240:130","nodes":[],"body":{"id":77221,"nodeType":"Block","src":"17761:186:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77202,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"17771:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17771:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77204,"nodeType":"ExpressionStatement","src":"17771:17:130"},{"expression":{"arguments":[{"id":77206,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77199,"src":"17817:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77205,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"17798:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17798:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77208,"nodeType":"ExpressionStatement","src":"17798:25:130"},{"expression":{"id":77211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77209,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"17833:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77210,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77199,"src":"17854:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17833:26:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":77212,"nodeType":"ExpressionStatement","src":"17833:26:130"},{"eventCall":{"arguments":[{"arguments":[{"id":77216,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"17907:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}],"id":77215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17899:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77214,"name":"address","nodeType":"ElementaryTypeName","src":"17899:7:130","typeDescriptions":{}}},"id":77217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17899:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77218,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"17921:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77213,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75868,"src":"17874:24:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17874:66:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77220,"nodeType":"EmitStatement","src":"17869:71:130"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"17716:14:130","parameters":{"id":77200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77199,"mutability":"mutable","name":"_safe","nameLocation":"17747:5:130","nodeType":"VariableDeclaration","scope":77222,"src":"17731:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77198,"name":"address","nodeType":"ElementaryTypeName","src":"17731:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"17730:23:130"},"returnParameters":{"id":77201,"nodeType":"ParameterList","parameters":[],"src":"17761:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77239,"nodeType":"FunctionDefinition","src":"17953:179:130","nodes":[],"body":{"id":77238,"nodeType":"Block","src":"17992:140:130","nodes":[],"statements":[{"expression":{"id":77229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77225,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"18002:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77227,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18022:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77226,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75578,"src":"18016:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75578_$","typeString":"type(contract ISafe)"}},"id":77228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18016:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"src":"18002:39:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"id":77230,"nodeType":"ExpressionStatement","src":"18002:39:130"},{"expression":{"id":77232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18051:25:130","subExpression":{"id":77231,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18058:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77233,"nodeType":"ExpressionStatement","src":"18051:25:130"},{"eventCall":{"arguments":[{"id":77235,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18106:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77234,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75862,"src":"18091:14:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18091:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77237,"nodeType":"EmitStatement","src":"18086:39:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"17962:18:130","parameters":{"id":77223,"nodeType":"ParameterList","parameters":[],"src":"17980:2:130"},"returnParameters":{"id":77224,"nodeType":"ParameterList","parameters":[],"src":"17992:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77255,"nodeType":"FunctionDefinition","src":"18138:171:130","nodes":[],"body":{"id":77254,"nodeType":"Block","src":"18174:135:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77242,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18188:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18192:6:130","memberName":"sender","nodeType":"MemberAccess","src":"18188:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77244,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18202:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"18188:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77250,"nodeType":"IfStatement","src":"18184:89:130","trueBody":{"id":77249,"nodeType":"Block","src":"18222:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77246,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76067,"src":"18243:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18243:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77248,"nodeType":"RevertStatement","src":"18236:26:130"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77251,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"18282:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18282:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77253,"nodeType":"ExpressionStatement","src":"18282:20:130"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"18147:17:130","parameters":{"id":77240,"nodeType":"ParameterList","parameters":[],"src":"18164:2:130"},"returnParameters":{"id":77241,"nodeType":"ParameterList","parameters":[],"src":"18174:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77273,"nodeType":"FunctionDefinition","src":"18315:182:130","nodes":[],"body":{"id":77272,"nodeType":"Block","src":"18387:110:130","nodes":[],"statements":[{"assignments":[77264],"declarations":[{"constant":false,"id":77264,"mutability":"mutable","name":"newMember","nameLocation":"18411:9:130","nodeType":"VariableDeclaration","scope":77272,"src":"18397:23:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77263,"nodeType":"UserDefinedTypeName","pathNode":{"id":77262,"name":"Member","nameLocations":["18397:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"18397:6:130"},"referencedDeclaration":76092,"src":"18397:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77268,"initialValue":{"baseExpression":{"id":77265,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"18423:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77267,"indexExpression":{"id":77266,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77257,"src":"18443:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18423:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18397:54:130"},{"expression":{"expression":{"id":77269,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77264,"src":"18468:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18478:12:130","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76091,"src":"18468:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77261,"id":77271,"nodeType":"Return","src":"18461:29:130"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"18324:8:130","parameters":{"id":77258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77257,"mutability":"mutable","name":"_member","nameLocation":"18341:7:130","nodeType":"VariableDeclaration","scope":77273,"src":"18333:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77256,"name":"address","nodeType":"ElementaryTypeName","src":"18333:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18332:17:130"},"returnParameters":{"id":77261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77260,"mutability":"mutable","name":"_isMember","nameLocation":"18376:9:130","nodeType":"VariableDeclaration","scope":77273,"src":"18371:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77259,"name":"bool","nodeType":"ElementaryTypeName","src":"18371:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18370:16:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77432,"nodeType":"FunctionDefinition","src":"18503:1907:130","nodes":[],"body":{"id":77431,"nodeType":"Block","src":"18557:1853:130","nodes":[],"statements":[{"assignments":[77279],"declarations":[{"constant":false,"id":77279,"mutability":"mutable","name":"_member","nameLocation":"18575:7:130","nodeType":"VariableDeclaration","scope":77431,"src":"18567:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77278,"name":"address","nodeType":"ElementaryTypeName","src":"18567:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77282,"initialValue":{"expression":{"id":77280,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18585:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18589:6:130","memberName":"sender","nodeType":"MemberAccess","src":"18585:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18567:28:130"},{"assignments":[77285],"declarations":[{"constant":false,"id":77285,"mutability":"mutable","name":"newMember","nameLocation":"18620:9:130","nodeType":"VariableDeclaration","scope":77431,"src":"18605:24:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77284,"nodeType":"UserDefinedTypeName","pathNode":{"id":77283,"name":"Member","nameLocations":["18605:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"18605:6:130"},"referencedDeclaration":76092,"src":"18605:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77289,"initialValue":{"baseExpression":{"id":77286,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"18632:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77288,"indexExpression":{"id":77287,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"18652:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18632:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18605:55:130"},{"assignments":[77292],"declarations":[{"constant":false,"id":77292,"mutability":"mutable","name":"gardensFactory","nameLocation":"18686:14:130","nodeType":"VariableDeclaration","scope":77431,"src":"18670:30:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"},"typeName":{"id":77291,"nodeType":"UserDefinedTypeName","pathNode":{"id":77290,"name":"RegistryFactory","nameLocations":["18670:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":77928,"src":"18670:15:130"},"referencedDeclaration":77928,"src":"18670:15:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77296,"initialValue":{"arguments":[{"id":77294,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"18719:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77293,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"18703:15:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$77928_$","typeString":"type(contract RegistryFactory)"}},"id":77295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18703:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"18670:65:130"},{"assignments":[77298],"declarations":[{"constant":false,"id":77298,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"18753:18:130","nodeType":"VariableDeclaration","scope":77431,"src":"18745:26:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77297,"name":"uint256","nodeType":"ElementaryTypeName","src":"18745:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77308,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77299,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"18775:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77300,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"18797:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18775:34:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18774:36:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18814:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77304,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"18820:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18814:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18813:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18774:62:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18745:91:130"},{"assignments":[77310],"declarations":[{"constant":false,"id":77310,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"18854:16:130","nodeType":"VariableDeclaration","scope":77431,"src":"18846:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77309,"name":"uint256","nodeType":"ElementaryTypeName","src":"18846:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77326,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77311,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"18886:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77316,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18946:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18938:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77314,"name":"address","nodeType":"ElementaryTypeName","src":"18938:7:130","typeDescriptions":{}}},"id":77317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18938:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77312,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"18908:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18923:14:130","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":77927,"src":"18908:29:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18908:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18886:66:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18885:68:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18957:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77322,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"18963:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18957:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77324,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18885:94:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18846:133:130"},{"condition":{"id":77330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18993:18:130","subExpression":{"arguments":[{"id":77328,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"19003:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77327,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"18994:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18994:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77430,"nodeType":"IfStatement","src":"18989:1415:130","trueBody":{"id":77429,"nodeType":"Block","src":"19013:1391:130","statements":[{"expression":{"id":77335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77331,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77285,"src":"19027:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19037:12:130","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76091,"src":"19027:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19052:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19027:29:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77336,"nodeType":"ExpressionStatement","src":"19027:29:130"},{"expression":{"id":77341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77337,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77285,"src":"19071:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19081:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"19071:22:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77340,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"19096:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19071:44:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77342,"nodeType":"ExpressionStatement","src":"19071:44:130"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":77346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19213:13:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":77349,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"19236:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":77348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19228:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77347,"name":"address","nodeType":"ElementaryTypeName","src":"19228:7:130","typeDescriptions":{}}},"id":77350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77343,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19201:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19209:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19201:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77352,"nodeType":"ExpressionStatement","src":"19201:48:130"},{"expression":{"arguments":[{"id":77356,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"19310:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77359,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19327:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19319:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77357,"name":"address","nodeType":"ElementaryTypeName","src":"19319:7:130","typeDescriptions":{}}},"id":77360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19319:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77361,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"19334:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77362,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19356:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77364,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"19377:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:59:130","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":77353,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"19264:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19276:16:130","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"19264:28:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19264:143:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77367,"nodeType":"ExpressionStatement","src":"19264:143:130"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":77371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19770:20:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":77372,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19792:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77368,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19758:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19766:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"19758:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19758:53:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77374,"nodeType":"ExpressionStatement","src":"19758:53:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77375,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19829:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19850:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19829:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77393,"nodeType":"IfStatement","src":"19825:175:130","trueBody":{"id":77392,"nodeType":"Block","src":"19853:147:130","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":77381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19883:13:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":77382,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"19898:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77378,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19871:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19879:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19871:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77384,"nodeType":"ExpressionStatement","src":"19871:39:130"},{"expression":{"arguments":[{"id":77388,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"19953:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77389,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19966:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77385,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"19928:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19940:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"19928:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19928:57:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77391,"nodeType":"ExpressionStatement","src":"19928:57:130"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":77397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20025:18:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":77398,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"20045:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77394,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20013:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20021:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"20013:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20013:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77400,"nodeType":"ExpressionStatement","src":"20013:49:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77401,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"20080:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20099:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20080:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77423,"nodeType":"IfStatement","src":"20076:252:130","trueBody":{"id":77422,"nodeType":"Block","src":"20102:226:130","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":77407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20132:40:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77408,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"20174:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20189:21:130","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":77846,"src":"20174:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77404,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20120:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20128:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"20120:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20120:93:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77412,"nodeType":"ExpressionStatement","src":"20120:93:130"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77416,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"20256:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20271:21:130","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":77846,"src":"20256:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20256:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77419,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"20296:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77413,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"20231:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20243:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"20231:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20231:82:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77421,"nodeType":"ExpressionStatement","src":"20231:82:130"}]}},{"eventCall":{"arguments":[{"id":77425,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"20364:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77426,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20373:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77424,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75874,"src":"20347:16:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20347:46:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77428,"nodeType":"EmitStatement","src":"20342:51:130"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":77276,"kind":"modifierInvocation","modifierName":{"id":77275,"name":"nonReentrant","nameLocations":["18544:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"18544:12:130"},"nodeType":"ModifierInvocation","src":"18544:12:130"}],"name":"stakeAndRegisterMember","nameLocation":"18512:22:130","parameters":{"id":77274,"nodeType":"ParameterList","parameters":[],"src":"18534:2:130"},"returnParameters":{"id":77277,"nodeType":"ParameterList","parameters":[],"src":"18557:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77481,"nodeType":"FunctionDefinition","src":"20416:467:130","nodes":[],"body":{"id":77480,"nodeType":"Block","src":"20480:403:130","nodes":[],"statements":[{"assignments":[77439],"declarations":[{"constant":false,"id":77439,"mutability":"mutable","name":"gardensFactory","nameLocation":"20506:14:130","nodeType":"VariableDeclaration","scope":77480,"src":"20490:30:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"},"typeName":{"id":77438,"nodeType":"UserDefinedTypeName","pathNode":{"id":77437,"name":"RegistryFactory","nameLocations":["20490:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":77928,"src":"20490:15:130"},"referencedDeclaration":77928,"src":"20490:15:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77443,"initialValue":{"arguments":[{"id":77441,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"20539:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77440,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"20523:15:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$77928_$","typeString":"type(contract RegistryFactory)"}},"id":77442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20523:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20490:65:130"},{"assignments":[77445],"declarations":[{"constant":false,"id":77445,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20573:18:130","nodeType":"VariableDeclaration","scope":77480,"src":"20565:26:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77444,"name":"uint256","nodeType":"ElementaryTypeName","src":"20565:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77455,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77446,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20595:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77447,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"20617:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:34:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20594:36:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77451,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"20640:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20634:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20633:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20594:62:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20565:91:130"},{"assignments":[77457],"declarations":[{"constant":false,"id":77457,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20674:16:130","nodeType":"VariableDeclaration","scope":77480,"src":"20666:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77456,"name":"uint256","nodeType":"ElementaryTypeName","src":"20666:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77473,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77458,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20706:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77463,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20766:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20758:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77461,"name":"address","nodeType":"ElementaryTypeName","src":"20758:7:130","typeDescriptions":{}}},"id":77464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77459,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77439,"src":"20728:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20743:14:130","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":77927,"src":"20728:29:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20728:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20706:66:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20705:68:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20777:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77469,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"20783:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20777:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20776:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20705:94:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20666:133:130"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77474,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20817:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77475,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77445,"src":"20839:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77477,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77457,"src":"20860:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:59:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77436,"id":77479,"nodeType":"Return","src":"20810:66:130"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"20425:22:130","parameters":{"id":77433,"nodeType":"ParameterList","parameters":[],"src":"20447:2:130"},"returnParameters":{"id":77436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77481,"src":"20471:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77434,"name":"uint256","nodeType":"ElementaryTypeName","src":"20471:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20470:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77489,"nodeType":"FunctionDefinition","src":"20889:107:130","nodes":[],"body":{"id":77488,"nodeType":"Block","src":"20953:43:130","nodes":[],"statements":[{"expression":{"id":77486,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20970:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77485,"id":77487,"nodeType":"Return","src":"20963:26:130"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"20898:20:130","parameters":{"id":77482,"nodeType":"ParameterList","parameters":[],"src":"20918:2:130"},"returnParameters":{"id":77485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77489,"src":"20944:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77483,"name":"uint256","nodeType":"ElementaryTypeName","src":"20944:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20943:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77506,"nodeType":"FunctionDefinition","src":"21002:182:130","nodes":[],"body":{"id":77505,"nodeType":"Block","src":"21061:123:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77494,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"21071:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21071:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77496,"nodeType":"ExpressionStatement","src":"21071:17:130"},{"expression":{"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77497,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"21098:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77498,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21120:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21098:32:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77500,"nodeType":"ExpressionStatement","src":"21098:32:130"},{"eventCall":{"arguments":[{"id":77502,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21166:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77501,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75927,"src":"21145:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21145:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77504,"nodeType":"EmitStatement","src":"21140:37:130"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"21011:20:130","parameters":{"id":77492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77491,"mutability":"mutable","name":"_newAmount","nameLocation":"21040:10:130","nodeType":"VariableDeclaration","scope":77506,"src":"21032:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77490,"name":"uint256","nodeType":"ElementaryTypeName","src":"21032:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21031:20:130"},"returnParameters":{"id":77493,"nodeType":"ParameterList","parameters":[],"src":"21061:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77531,"nodeType":"FunctionDefinition","src":"21190:280:130","nodes":[],"body":{"id":77530,"nodeType":"Block","src":"21248:222:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77511,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"21258:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21258:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77513,"nodeType":"ExpressionStatement","src":"21258:17:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77514,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"21289:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77515,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76198,"src":"21308:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21289:26:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77521,"nodeType":"IfStatement","src":"21285:86:130","trueBody":{"id":77520,"nodeType":"Block","src":"21317:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77517,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76073,"src":"21338:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21338:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77519,"nodeType":"RevertStatement","src":"21331:29:130"}]}},{"expression":{"id":77524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77522,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"21380:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77523,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"21395:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21380:31:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77525,"nodeType":"ExpressionStatement","src":"21380:31:130"},{"eventCall":{"arguments":[{"id":77527,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"21446:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77526,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"21426:19:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21426:37:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77529,"nodeType":"EmitStatement","src":"21421:42:130"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"21199:15:130","parameters":{"id":77509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77508,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"21223:16:130","nodeType":"VariableDeclaration","scope":77531,"src":"21215:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77507,"name":"uint256","nodeType":"ElementaryTypeName","src":"21215:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21214:26:130"},"returnParameters":{"id":77510,"nodeType":"ParameterList","parameters":[],"src":"21248:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77544,"nodeType":"FunctionDefinition","src":"21512:132:130","nodes":[],"body":{"id":77543,"nodeType":"Block","src":"21581:63:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":77539,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"21606:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77540,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21629:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77538,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"21598:7:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21598:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77537,"id":77542,"nodeType":"Return","src":"21591:46:130"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"21521:15:130","parameters":{"id":77534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77533,"mutability":"mutable","name":"_member","nameLocation":"21545:7:130","nodeType":"VariableDeclaration","scope":77544,"src":"21537:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77532,"name":"address","nodeType":"ElementaryTypeName","src":"21537:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21536:17:130"},"returnParameters":{"id":77537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77544,"src":"21575:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77535,"name":"bool","nodeType":"ElementaryTypeName","src":"21575:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21574:6:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77594,"nodeType":"FunctionDefinition","src":"21650:453:130","nodes":[],"body":{"id":77593,"nodeType":"Block","src":"21698:405:130","nodes":[],"statements":[{"assignments":[77550],"declarations":[{"constant":false,"id":77550,"mutability":"mutable","name":"_member","nameLocation":"21716:7:130","nodeType":"VariableDeclaration","scope":77593,"src":"21708:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77549,"name":"address","nodeType":"ElementaryTypeName","src":"21708:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77553,"initialValue":{"expression":{"id":77551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21726:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21730:6:130","memberName":"sender","nodeType":"MemberAccess","src":"21726:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21708:28:130"},{"expression":{"arguments":[{"id":77555,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21772:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77554,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"21746:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21746:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77557,"nodeType":"ExpressionStatement","src":"21746:34:130"},{"expression":{"arguments":[{"id":77559,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21814:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77558,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77631,"src":"21790:23:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21790:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77561,"nodeType":"ExpressionStatement","src":"21790:32:130"},{"assignments":[77564],"declarations":[{"constant":false,"id":77564,"mutability":"mutable","name":"member","nameLocation":"21846:6:130","nodeType":"VariableDeclaration","scope":77593,"src":"21832:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77563,"nodeType":"UserDefinedTypeName","pathNode":{"id":77562,"name":"Member","nameLocations":["21832:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"21832:6:130"},"referencedDeclaration":76092,"src":"21832:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77568,"initialValue":{"baseExpression":{"id":77565,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"21855:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77567,"indexExpression":{"id":77566,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21875:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21855:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21832:51:130"},{"expression":{"id":77572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21893:35:130","subExpression":{"baseExpression":{"id":77569,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"21900:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77571,"indexExpression":{"id":77570,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21920:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21900:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77573,"nodeType":"ExpressionStatement","src":"21893:35:130"},{"expression":{"id":77577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21938:34:130","subExpression":{"baseExpression":{"id":77574,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"21945:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77576,"indexExpression":{"id":77575,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21964:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21945:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77578,"nodeType":"ExpressionStatement","src":"21938:34:130"},{"expression":{"arguments":[{"id":77582,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"22004:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77583,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77564,"src":"22013:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22020:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"22013:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77579,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"21983:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21995:8:130","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"21983:20:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21983:50:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77586,"nodeType":"ExpressionStatement","src":"21983:50:130"},{"eventCall":{"arguments":[{"id":77588,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"22067:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77589,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77564,"src":"22076:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22083:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"22076:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77587,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75880,"src":"22048:18:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77592,"nodeType":"EmitStatement","src":"22043:53:130"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":77547,"kind":"modifierInvocation","modifierName":{"id":77546,"name":"nonReentrant","nameLocations":["21685:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"21685:12:130"},"nodeType":"ModifierInvocation","src":"21685:12:130"}],"name":"unregisterMember","nameLocation":"21659:16:130","parameters":{"id":77545,"nodeType":"ParameterList","parameters":[],"src":"21675:2:130"},"returnParameters":{"id":77548,"nodeType":"ParameterList","parameters":[],"src":"21698:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77631,"nodeType":"FunctionDefinition","src":"22109:466:130","nodes":[],"body":{"id":77630,"nodeType":"Block","src":"22168:407:130","nodes":[],"statements":[{"assignments":[77603],"declarations":[{"constant":false,"id":77603,"mutability":"mutable","name":"memberStrategies","nameLocation":"22195:16:130","nodeType":"VariableDeclaration","scope":77630,"src":"22178:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77601,"name":"address","nodeType":"ElementaryTypeName","src":"22178:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77602,"nodeType":"ArrayTypeName","src":"22178:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77607,"initialValue":{"baseExpression":{"id":77604,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"22214:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77606,"indexExpression":{"id":77605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77596,"src":"22233:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22214:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22178:63:130"},{"body":{"id":77628,"nodeType":"Block","src":"22371:198:130","statements":[{"expression":{"arguments":[{"id":77625,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77596,"src":"22550:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":77620,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77603,"src":"22512:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77622,"indexExpression":{"id":77621,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77609,"src":"22529:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22512:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77619,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"22497:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":77623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22533:16:130","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72776,"src":"22497:52:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77627,"nodeType":"ExpressionStatement","src":"22497:61:130"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77609,"src":"22337:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77613,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77603,"src":"22341:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:6:130","memberName":"length","nodeType":"MemberAccess","src":"22341:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22337:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77629,"initializationExpression":{"assignments":[77609],"declarations":[{"constant":false,"id":77609,"mutability":"mutable","name":"i","nameLocation":"22330:1:130","nodeType":"VariableDeclaration","scope":77629,"src":"22322:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77608,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77611,"initialValue":{"hexValue":"30","id":77610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22334:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22322:13:130"},"loopExpression":{"expression":{"id":77617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22366:3:130","subExpression":{"id":77616,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77609,"src":"22366:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77618,"nodeType":"ExpressionStatement","src":"22366:3:130"},"nodeType":"ForStatement","src":"22317:252:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"22118:23:130","parameters":{"id":77597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77596,"mutability":"mutable","name":"_member","nameLocation":"22150:7:130","nodeType":"VariableDeclaration","scope":77631,"src":"22142:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77595,"name":"address","nodeType":"ElementaryTypeName","src":"22142:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22141:17:130"},"returnParameters":{"id":77598,"nodeType":"ParameterList","parameters":[],"src":"22168:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77691,"nodeType":"FunctionDefinition","src":"22581:571:130","nodes":[],"body":{"id":77690,"nodeType":"Block","src":"22664:488:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77640,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"22674:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22674:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77642,"nodeType":"ExpressionStatement","src":"22674:17:130"},{"condition":{"id":77644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22705:14:130","subExpression":{"id":77643,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76127,"src":"22706:13:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77649,"nodeType":"IfStatement","src":"22701:68:130","trueBody":{"id":77648,"nodeType":"Block","src":"22721:48:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77645,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"22742:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22742:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77647,"nodeType":"RevertStatement","src":"22735:23:130"}]}},{"condition":{"id":77653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22782:18:130","subExpression":{"arguments":[{"id":77651,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22792:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77650,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"22783:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22783:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77658,"nodeType":"IfStatement","src":"22778:75:130","trueBody":{"id":77657,"nodeType":"Block","src":"22802:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77654,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"22823:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22823:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77656,"nodeType":"RevertStatement","src":"22816:26:130"}]}},{"assignments":[77661],"declarations":[{"constant":false,"id":77661,"mutability":"mutable","name":"member","nameLocation":"22876:6:130","nodeType":"VariableDeclaration","scope":77690,"src":"22862:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77660,"nodeType":"UserDefinedTypeName","pathNode":{"id":77659,"name":"Member","nameLocations":["22862:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"22862:6:130"},"referencedDeclaration":76092,"src":"22862:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77665,"initialValue":{"baseExpression":{"id":77662,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"22885:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77664,"indexExpression":{"id":77663,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22905:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22885:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22862:51:130"},{"expression":{"arguments":[{"id":77667,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22947:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77666,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77631,"src":"22923:23:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22923:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77669,"nodeType":"ExpressionStatement","src":"22923:32:130"},{"expression":{"id":77673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"22965:35:130","subExpression":{"baseExpression":{"id":77670,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"22972:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77672,"indexExpression":{"id":77671,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22992:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22972:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77674,"nodeType":"ExpressionStatement","src":"22965:35:130"},{"expression":{"arguments":[{"id":77678,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"23032:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77679,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77661,"src":"23050:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23057:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"23050:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77675,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"23011:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23023:8:130","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"23011:20:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23011:59:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77682,"nodeType":"ExpressionStatement","src":"23011:59:130"},{"eventCall":{"arguments":[{"id":77684,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"23098:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77685,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"23107:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77686,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77661,"src":"23125:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23132:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"23125:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77683,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75888,"src":"23085:12:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":77688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23085:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77689,"nodeType":"EmitStatement","src":"23080:65:130"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":77638,"kind":"modifierInvocation","modifierName":{"id":77637,"name":"nonReentrant","nameLocations":["22651:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"22651:12:130"},"nodeType":"ModifierInvocation","src":"22651:12:130"}],"name":"kickMember","nameLocation":"22590:10:130","parameters":{"id":77636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77633,"mutability":"mutable","name":"_member","nameLocation":"22609:7:130","nodeType":"VariableDeclaration","scope":77691,"src":"22601:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77632,"name":"address","nodeType":"ElementaryTypeName","src":"22601:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77635,"mutability":"mutable","name":"_transferAddress","nameLocation":"22626:16:130","nodeType":"VariableDeclaration","scope":77691,"src":"22618:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77634,"name":"address","nodeType":"ElementaryTypeName","src":"22618:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22600:43:130"},"returnParameters":{"id":77639,"nodeType":"ParameterList","parameters":[],"src":"22664:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":75833,"name":"ReentrancyGuard","nameLocations":["1660:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":56109,"src":"1660:15:130"},"id":75834,"nodeType":"InheritanceSpecifier","src":"1660:15:130"},{"baseName":{"id":75835,"name":"AccessControl","nameLocations":["1677:13:130"],"nodeType":"IdentifierPath","referencedDeclaration":55308,"src":"1677:13:130"},"id":75836,"nodeType":"InheritanceSpecifier","src":"1677:13:130"}],"canonicalName":"RegistryCommunity","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77692,55308,58105,58311,55381,57742,56109],"name":"RegistryCommunity","nameLocation":"1639:17:130","scope":77693,"usedErrors":[76047,76049,76051,76053,76055,76057,76059,76061,76063,76065,76067,76069,76071,76073,76075,76077,76079,76085]}],"license":"AGPL-3.0-only"},"id":130} \ No newline at end of file +{"abi":[{"type":"function","name":"createPoolWithCustomStrategy","inputs":[{"name":"_profileId","type":"bytes32","internalType":"bytes32"},{"name":"_strategy","type":"address","internalType":"address"},{"name":"_initStrategyData","type":"bytes","internalType":"bytes"},{"name":"_token","type":"address","internalType":"address"},{"name":"_amount","type":"uint256","internalType":"uint256"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_managers","type":"address[]","internalType":"address[]"}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"stateMutability":"payable"},{"type":"function","name":"getPool","inputs":[{"name":"_poolId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct IAllo.Pool","components":[{"name":"profileId","type":"bytes32","internalType":"bytes32"},{"name":"strategy","type":"address","internalType":"contract IStrategy"},{"name":"token","type":"address","internalType":"address"},{"name":"metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"managerRole","type":"bytes32","internalType":"bytes32"},{"name":"adminRole","type":"bytes32","internalType":"bytes32"}]}],"stateMutability":"view"},{"type":"function","name":"getRegistry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"}],"bytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"deployedBytecode":{"object":"0x","sourceMap":"","linkReferences":{}},"methodIdentifiers":{"createPoolWithCustomStrategy(bytes32,address,bytes,address,uint256,(uint256,string),address[])":"e1007d4a","getPool(uint256)":"068bcd8d","getRegistry()":"5ab1bd53"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"_initStrategyData\",\"type\":\"bytes\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address[]\",\"name\":\"_managers\",\"type\":\"address[]\"}],\"name\":\"createPoolWithCustomStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"}],\"name\":\"getPool\",\"outputs\":[{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"profileId\",\"type\":\"bytes32\"},{\"internalType\":\"contract IStrategy\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"metadata\",\"type\":\"tuple\"},{\"internalType\":\"bytes32\",\"name\":\"managerRole\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"adminRole\",\"type\":\"bytes32\"}],\"internalType\":\"struct IAllo.Pool\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"FAllo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32"},{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"bytes","name":"_initStrategyData","type":"bytes"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address[]","name":"_managers","type":"address[]"}],"stateMutability":"payable","type":"function","name":"createPoolWithCustomStrategy","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPool","outputs":[{"internalType":"struct IAllo.Pool","name":"","type":"tuple","components":[{"internalType":"bytes32","name":"profileId","type":"bytes32"},{"internalType":"contract IStrategy","name":"strategy","type":"address"},{"internalType":"address","name":"token","type":"address"},{"internalType":"struct Metadata","name":"metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"bytes32","name":"managerRole","type":"bytes32"},{"internalType":"bytes32","name":"adminRole","type":"bytes32"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getRegistry","outputs":[{"internalType":"address","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"FAllo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","id":77676,"exportedSymbols":{"AccessControl":[55308],"CVStrategy":[75561],"Clone":[3002],"ERC165Checker":[58291],"FAllo":[75815],"IAllo":[2610],"IERC20":[56900],"IPointStrategy":[72793],"IRegistry":[2802],"ISafe":[80232],"Metadata":[3098],"ReentrancyGuard":[56109],"RegistryCommunity":[77675],"RegistryFactory":[79854],"SafeERC20":[57337],"StrategyStruct":[72884],"console":[29549]},"nodeType":"SourceUnit","src":"42:23124:129","nodes":[{"id":75754,"nodeType":"PragmaDirective","src":"42:24:129","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75756,"nodeType":"ImportDirective","src":"68:70:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":56901,"symbolAliases":[{"foreign":{"id":75755,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"76:6:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75758,"nodeType":"ImportDirective","src":"139:79:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":55309,"symbolAliases":[{"foreign":{"id":75757,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55308,"src":"147:13:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75760,"nodeType":"ImportDirective","src":"219:82:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":57338,"symbolAliases":[{"foreign":{"id":75759,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57337,"src":"227:9:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75762,"nodeType":"ImportDirective","src":"302:85:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":56110,"symbolAliases":[{"foreign":{"id":75761,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56109,"src":"310:15:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75765,"nodeType":"ImportDirective","src":"518:84:129","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":75763,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"526:9:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75764,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"537:8:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75767,"nodeType":"ImportDirective","src":"603:66:129","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":75766,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"611:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75769,"nodeType":"ImportDirective","src":"670:54:129","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":79855,"symbolAliases":[{"foreign":{"id":75768,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"678:15:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75771,"nodeType":"ImportDirective","src":"725:45:129","nodes":[],"absolutePath":"pkg/contracts/src/interfaces/ISafe.sol","file":"./interfaces/ISafe.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":80233,"symbolAliases":[{"foreign":{"id":75770,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"733:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75772,"nodeType":"ImportDirective","src":"830:31:129","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":75774,"nodeType":"ImportDirective","src":"862:92:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":58292,"symbolAliases":[{"foreign":{"id":75773,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58291,"src":"870:13:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75778,"nodeType":"ImportDirective","src":"956:76:129","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":75562,"symbolAliases":[{"foreign":{"id":75775,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"964:14:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75776,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"980:10:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75777,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"992:14:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75780,"nodeType":"ImportDirective","src":"1034:65:129","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":75779,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"1042:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75815,"nodeType":"ContractDefinition","src":"1172:467:129","nodes":[{"id":75801,"nodeType":"FunctionDefinition","src":"1194:301:129","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"1203:28:129","parameters":{"id":75797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75782,"mutability":"mutable","name":"_profileId","nameLocation":"1249:10:129","nodeType":"VariableDeclaration","scope":75801,"src":"1241:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1241:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75784,"mutability":"mutable","name":"_strategy","nameLocation":"1277:9:129","nodeType":"VariableDeclaration","scope":75801,"src":"1269:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75783,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75786,"mutability":"mutable","name":"_initStrategyData","nameLocation":"1309:17:129","nodeType":"VariableDeclaration","scope":75801,"src":"1296:30:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75785,"name":"bytes","nodeType":"ElementaryTypeName","src":"1296:5:129","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75788,"mutability":"mutable","name":"_token","nameLocation":"1344:6:129","nodeType":"VariableDeclaration","scope":75801,"src":"1336:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75787,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75790,"mutability":"mutable","name":"_amount","nameLocation":"1368:7:129","nodeType":"VariableDeclaration","scope":75801,"src":"1360:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75789,"name":"uint256","nodeType":"ElementaryTypeName","src":"1360:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75793,"mutability":"mutable","name":"_metadata","nameLocation":"1401:9:129","nodeType":"VariableDeclaration","scope":75801,"src":"1385:25:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75792,"nodeType":"UserDefinedTypeName","pathNode":{"id":75791,"name":"Metadata","nameLocations":["1385:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1385:8:129"},"referencedDeclaration":3098,"src":"1385:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":75796,"mutability":"mutable","name":"_managers","nameLocation":"1437:9:129","nodeType":"VariableDeclaration","scope":75801,"src":"1420:26:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75794,"name":"address","nodeType":"ElementaryTypeName","src":"1420:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75795,"nodeType":"ArrayTypeName","src":"1420:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1231:221:129"},"returnParameters":{"id":75800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75799,"mutability":"mutable","name":"poolId","nameLocation":"1487:6:129","nodeType":"VariableDeclaration","scope":75801,"src":"1479:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75798,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1478:16:129"},"scope":75815,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75806,"nodeType":"FunctionDefinition","src":"1501:55:129","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1510:11:129","parameters":{"id":75802,"nodeType":"ParameterList","parameters":[],"src":"1521:2:129"},"returnParameters":{"id":75805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75806,"src":"1547:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75803,"name":"address","nodeType":"ElementaryTypeName","src":"1547:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1546:9:129"},"scope":75815,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75814,"nodeType":"FunctionDefinition","src":"1561:76:129","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"1570:7:129","parameters":{"id":75809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75808,"mutability":"mutable","name":"_poolId","nameLocation":"1586:7:129","nodeType":"VariableDeclaration","scope":75814,"src":"1578:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1578:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1577:17:129"},"returnParameters":{"id":75813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75814,"src":"1618:17:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":75811,"nodeType":"UserDefinedTypeName","pathNode":{"id":75810,"name":"IAllo.Pool","nameLocations":["1618:5:129","1624:4:129"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"1618:10:129"},"referencedDeclaration":2319,"src":"1618:10:129","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"1617:19:129"},"scope":75815,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[75815],"name":"FAllo","nameLocation":"1182:5:129","scope":77676,"usedErrors":[]},{"id":77675,"nodeType":"ContractDefinition","src":"1641:21524:129","nodes":[{"id":75822,"nodeType":"UsingForDirective","src":"1708:32:129","nodes":[],"global":false,"libraryName":{"id":75820,"name":"ERC165Checker","nameLocations":["1714:13:129"],"nodeType":"IdentifierPath","referencedDeclaration":58291,"src":"1714:13:129"},"typeName":{"id":75821,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75826,"nodeType":"UsingForDirective","src":"1745:27:129","nodes":[],"global":false,"libraryName":{"id":75823,"name":"SafeERC20","nameLocations":["1751:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":57337,"src":"1751:9:129"},"typeName":{"id":75825,"nodeType":"UserDefinedTypeName","pathNode":{"id":75824,"name":"IERC20","nameLocations":["1765:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1765:6:129"},"referencedDeclaration":56900,"src":"1765:6:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}},{"id":75829,"nodeType":"UsingForDirective","src":"1777:24:129","nodes":[],"global":false,"libraryName":{"id":75827,"name":"Clone","nameLocations":["1783:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1783:5:129"},"typeName":{"id":75828,"name":"address","nodeType":"ElementaryTypeName","src":"1793:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75832,"nodeType":"VariableDeclaration","src":"1807:75:129","nodes":[],"constant":true,"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1831:6:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75830,"name":"address","nodeType":"ElementaryTypeName","src":"1807:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":75831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1840:42:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":75837,"nodeType":"VariableDeclaration","src":"2053:82:129","nodes":[],"constant":true,"functionSelector":"a0b21cdf","mutability":"constant","name":"COUNCIL_MEMBER_CHANGE","nameLocation":"2077:21:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2053:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d4245525f4348414e4745","id":75835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:23:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""},"value":"COUNCIL_MEMBER_CHANGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""}],"id":75834,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2101:9:129","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":75841,"nodeType":"EventDefinition","src":"2307:29:129","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"2313:7:129","parameters":{"id":75840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75839,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"2329:5:129","nodeType":"VariableDeclaration","scope":75841,"src":"2321:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75838,"name":"address","nodeType":"ElementaryTypeName","src":"2321:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2320:15:129"}},{"id":75845,"nodeType":"EventDefinition","src":"2341:36:129","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"2347:14:129","parameters":{"id":75844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75843,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"2370:5:129","nodeType":"VariableDeclaration","scope":75845,"src":"2362:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75842,"name":"address","nodeType":"ElementaryTypeName","src":"2362:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2361:15:129"}},{"id":75851,"nodeType":"EventDefinition","src":"2382:74:129","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"2388:24:129","parameters":{"id":75850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75847,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"2421:10:129","nodeType":"VariableDeclaration","scope":75851,"src":"2413:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75846,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75849,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"2441:13:129","nodeType":"VariableDeclaration","scope":75851,"src":"2433:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75848,"name":"address","nodeType":"ElementaryTypeName","src":"2433:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2412:43:129"}},{"id":75857,"nodeType":"EventDefinition","src":"2461:63:129","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"2467:16:129","parameters":{"id":75856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75853,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2492:7:129","nodeType":"VariableDeclaration","scope":75857,"src":"2484:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75852,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75855,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"2509:13:129","nodeType":"VariableDeclaration","scope":75857,"src":"2501:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75854,"name":"uint256","nodeType":"ElementaryTypeName","src":"2501:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2483:40:129"}},{"id":75863,"nodeType":"EventDefinition","src":"2529:67:129","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"2535:18:129","parameters":{"id":75862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75859,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2562:7:129","nodeType":"VariableDeclaration","scope":75863,"src":"2554:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75858,"name":"address","nodeType":"ElementaryTypeName","src":"2554:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75861,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2579:15:129","nodeType":"VariableDeclaration","scope":75863,"src":"2571:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75860,"name":"uint256","nodeType":"ElementaryTypeName","src":"2571:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2553:42:129"}},{"id":75871,"nodeType":"EventDefinition","src":"2601:87:129","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"2607:12:129","parameters":{"id":75870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75865,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2628:7:129","nodeType":"VariableDeclaration","scope":75871,"src":"2620:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75864,"name":"address","nodeType":"ElementaryTypeName","src":"2620:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75867,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"2645:16:129","nodeType":"VariableDeclaration","scope":75871,"src":"2637:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75866,"name":"address","nodeType":"ElementaryTypeName","src":"2637:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75869,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2671:15:129","nodeType":"VariableDeclaration","scope":75871,"src":"2663:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75868,"name":"uint256","nodeType":"ElementaryTypeName","src":"2663:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2619:68:129"}},{"id":75875,"nodeType":"EventDefinition","src":"2693:43:129","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"2699:19:129","parameters":{"id":75874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75873,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"2727:7:129","nodeType":"VariableDeclaration","scope":75875,"src":"2719:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75872,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2718:17:129"}},{"id":75884,"nodeType":"EventDefinition","src":"2741:89:129","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"2747:19:129","parameters":{"id":75883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75877,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"2775:10:129","nodeType":"VariableDeclaration","scope":75884,"src":"2767:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2767:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75879,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"2794:14:129","nodeType":"VariableDeclaration","scope":75884,"src":"2787:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75878,"name":"string","nodeType":"ElementaryTypeName","src":"2787:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75882,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"2819:9:129","nodeType":"VariableDeclaration","scope":75884,"src":"2810:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75881,"nodeType":"UserDefinedTypeName","pathNode":{"id":75880,"name":"Metadata","nameLocations":["2810:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"2810:8:129"},"referencedDeclaration":3098,"src":"2810:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"2766:63:129"}},{"id":75888,"nodeType":"EventDefinition","src":"2835:39:129","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"2841:13:129","parameters":{"id":75887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75886,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2863:9:129","nodeType":"VariableDeclaration","scope":75888,"src":"2855:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75885,"name":"address","nodeType":"ElementaryTypeName","src":"2855:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2854:19:129"}},{"id":75892,"nodeType":"EventDefinition","src":"2879:41:129","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"2885:15:129","parameters":{"id":75891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75890,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2909:9:129","nodeType":"VariableDeclaration","scope":75892,"src":"2901:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75889,"name":"address","nodeType":"ElementaryTypeName","src":"2901:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2900:19:129"}},{"id":75900,"nodeType":"EventDefinition","src":"2925:93:129","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"2931:23:129","parameters":{"id":75899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75894,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2963:7:129","nodeType":"VariableDeclaration","scope":75900,"src":"2955:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75893,"name":"address","nodeType":"ElementaryTypeName","src":"2955:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75896,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2980:9:129","nodeType":"VariableDeclaration","scope":75900,"src":"2972:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75895,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75898,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"2999:17:129","nodeType":"VariableDeclaration","scope":75900,"src":"2991:25:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75897,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2954:63:129"}},{"id":75906,"nodeType":"EventDefinition","src":"3023:68:129","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"3029:25:129","parameters":{"id":75905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75902,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3063:7:129","nodeType":"VariableDeclaration","scope":75906,"src":"3055:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75901,"name":"address","nodeType":"ElementaryTypeName","src":"3055:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75904,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3080:9:129","nodeType":"VariableDeclaration","scope":75906,"src":"3072:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75903,"name":"address","nodeType":"ElementaryTypeName","src":"3072:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3054:36:129"}},{"id":75910,"nodeType":"EventDefinition","src":"3096:47:129","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"3102:20:129","parameters":{"id":75909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75908,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"3131:10:129","nodeType":"VariableDeclaration","scope":75910,"src":"3123:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75907,"name":"uint256","nodeType":"ElementaryTypeName","src":"3123:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3122:20:129"}},{"id":75916,"nodeType":"EventDefinition","src":"3148:67:129","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"3154:20:129","parameters":{"id":75915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75912,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3183:7:129","nodeType":"VariableDeclaration","scope":75916,"src":"3175:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75911,"name":"address","nodeType":"ElementaryTypeName","src":"3175:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75914,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"3200:13:129","nodeType":"VariableDeclaration","scope":75916,"src":"3192:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75913,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:40:129"}},{"id":75922,"nodeType":"EventDefinition","src":"3220:69:129","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"3226:20:129","parameters":{"id":75921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75918,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3255:7:129","nodeType":"VariableDeclaration","scope":75922,"src":"3247:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75917,"name":"address","nodeType":"ElementaryTypeName","src":"3247:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75920,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"3272:15:129","nodeType":"VariableDeclaration","scope":75922,"src":"3264:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75919,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:42:129"}},{"id":75935,"nodeType":"EventDefinition","src":"3294:110:129","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"3300:11:129","parameters":{"id":75934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75924,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"3320:7:129","nodeType":"VariableDeclaration","scope":75935,"src":"3312:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75923,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75926,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3337:9:129","nodeType":"VariableDeclaration","scope":75935,"src":"3329:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75925,"name":"address","nodeType":"ElementaryTypeName","src":"3329:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75928,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"3356:10:129","nodeType":"VariableDeclaration","scope":75935,"src":"3348:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75927,"name":"address","nodeType":"ElementaryTypeName","src":"3348:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75930,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"3376:6:129","nodeType":"VariableDeclaration","scope":75935,"src":"3368:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75929,"name":"address","nodeType":"ElementaryTypeName","src":"3368:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75933,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"3393:9:129","nodeType":"VariableDeclaration","scope":75935,"src":"3384:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75932,"nodeType":"UserDefinedTypeName","pathNode":{"id":75931,"name":"Metadata","nameLocations":["3384:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"3384:8:129"},"referencedDeclaration":3098,"src":"3384:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"3311:92:129"}},{"id":75950,"nodeType":"FunctionDefinition","src":"3575:155:129","nodes":[],"body":{"id":75949,"nodeType":"Block","src":"3615:115:129","nodes":[],"statements":[{"condition":{"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3629:43:129","subExpression":{"arguments":[{"id":75939,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"3638:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3661:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3665:6:129","memberName":"sender","nodeType":"MemberAccess","src":"3661:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75938,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"3630:7:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":75942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3630:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75948,"nodeType":"IfStatement","src":"3625:99:129","trueBody":{"id":75947,"nodeType":"Block","src":"3674:50:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75944,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76034,"src":"3695:16:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3695:18:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75946,"nodeType":"RevertStatement","src":"3688:25:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"3584:15:129","parameters":{"id":75936,"nodeType":"ParameterList","parameters":[],"src":"3599:2:129"},"returnParameters":{"id":75937,"nodeType":"ParameterList","parameters":[],"src":"3615:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75964,"nodeType":"FunctionDefinition","src":"3736:143:129","nodes":[],"body":{"id":75963,"nodeType":"Block","src":"3785:94:129","nodes":[],"statements":[{"condition":{"id":75957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3799:21:129","subExpression":{"arguments":[{"expression":{"id":75954,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3809:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3813:6:129","memberName":"sender","nodeType":"MemberAccess","src":"3809:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75953,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"3800:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75962,"nodeType":"IfStatement","src":"3795:78:129","trueBody":{"id":75961,"nodeType":"Block","src":"3822:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75958,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"3843:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75960,"nodeType":"RevertStatement","src":"3836:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"3745:24:129","parameters":{"id":75951,"nodeType":"ParameterList","parameters":[],"src":"3769:2:129"},"returnParameters":{"id":75952,"nodeType":"ParameterList","parameters":[],"src":"3785:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75979,"nodeType":"FunctionDefinition","src":"3885:156:129","nodes":[],"body":{"id":75978,"nodeType":"Block","src":"3950:91:129","nodes":[],"statements":[{"condition":{"id":75972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3964:18:129","subExpression":{"arguments":[{"id":75970,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75966,"src":"3974:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75969,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"3965:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75977,"nodeType":"IfStatement","src":"3960:75:129","trueBody":{"id":75976,"nodeType":"Block","src":"3984:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75973,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"4005:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75975,"nodeType":"RevertStatement","src":"3998:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"3894:25:129","parameters":{"id":75967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75966,"mutability":"mutable","name":"_sender","nameLocation":"3928:7:129","nodeType":"VariableDeclaration","scope":75979,"src":"3920:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75965,"name":"address","nodeType":"ElementaryTypeName","src":"3920:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3919:17:129"},"returnParameters":{"id":75968,"nodeType":"ParameterList","parameters":[],"src":"3950:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75994,"nodeType":"FunctionDefinition","src":"4047:162:129","nodes":[],"body":{"id":75993,"nodeType":"Block","src":"4108:101:129","nodes":[],"statements":[{"condition":{"id":75987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4122:29:129","subExpression":{"baseExpression":{"id":75984,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"4123:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":75986,"indexExpression":{"id":75985,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75981,"src":"4141:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4123:28:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75992,"nodeType":"IfStatement","src":"4118:85:129","trueBody":{"id":75991,"nodeType":"Block","src":"4153:50:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75988,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76048,"src":"4174:16:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4174:18:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75990,"nodeType":"RevertStatement","src":"4167:25:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"4056:19:129","parameters":{"id":75982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75981,"mutability":"mutable","name":"_strategy","nameLocation":"4084:9:129","nodeType":"VariableDeclaration","scope":75994,"src":"4076:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75980,"name":"address","nodeType":"ElementaryTypeName","src":"4076:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4075:19:129"},"returnParameters":{"id":75983,"nodeType":"ParameterList","parameters":[],"src":"4108:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76010,"nodeType":"FunctionDefinition","src":"4215:171:129","nodes":[],"body":{"id":76009,"nodeType":"Block","src":"4293:93:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76001,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"4307:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76002,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75998,"src":"4318:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4307:20:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76008,"nodeType":"IfStatement","src":"4303:77:129","trueBody":{"id":76007,"nodeType":"Block","src":"4329:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76004,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"4350:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76006,"nodeType":"RevertStatement","src":"4343:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"4224:19:129","parameters":{"id":75999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75996,"mutability":"mutable","name":"_sender","nameLocation":"4252:7:129","nodeType":"VariableDeclaration","scope":76010,"src":"4244:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75995,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75998,"mutability":"mutable","name":"_strategy","nameLocation":"4269:9:129","nodeType":"VariableDeclaration","scope":76010,"src":"4261:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75997,"name":"address","nodeType":"ElementaryTypeName","src":"4261:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4243:36:129"},"returnParameters":{"id":76000,"nodeType":"ParameterList","parameters":[],"src":"4293:0:129"},"scope":77675,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76028,"nodeType":"FunctionDefinition","src":"4392:189:129","nodes":[],"body":{"id":76027,"nodeType":"Block","src":"4457:124:129","nodes":[],"statements":[{"condition":{"id":76021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4471:51:129","subExpression":{"baseExpression":{"baseExpression":{"id":76015,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"4472:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76018,"indexExpression":{"expression":{"id":76016,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4500:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4504:6:129","memberName":"sender","nodeType":"MemberAccess","src":"4500:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4472:39:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76020,"indexExpression":{"id":76019,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76012,"src":"4512:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4472:50:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76026,"nodeType":"IfStatement","src":"4467:108:129","trueBody":{"id":76025,"nodeType":"Block","src":"4524:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76022,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"4545:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4545:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76024,"nodeType":"RevertStatement","src":"4538:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"4401:23:129","parameters":{"id":76013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76012,"mutability":"mutable","name":"_strategy","nameLocation":"4433:9:129","nodeType":"VariableDeclaration","scope":76028,"src":"4425:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76011,"name":"address","nodeType":"ElementaryTypeName","src":"4425:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4424:19:129"},"returnParameters":{"id":76014,"nodeType":"ParameterList","parameters":[],"src":"4457:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76030,"nodeType":"ErrorDefinition","src":"4753:28:129","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"4759:19:129","parameters":{"id":76029,"nodeType":"ParameterList","parameters":[],"src":"4778:2:129"}},{"id":76032,"nodeType":"ErrorDefinition","src":"4786:29:129","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"4792:20:129","parameters":{"id":76031,"nodeType":"ParameterList","parameters":[],"src":"4812:2:129"}},{"id":76034,"nodeType":"ErrorDefinition","src":"4820:25:129","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"4826:16:129","parameters":{"id":76033,"nodeType":"ParameterList","parameters":[],"src":"4842:2:129"}},{"id":76036,"nodeType":"ErrorDefinition","src":"4850:26:129","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"4856:17:129","parameters":{"id":76035,"nodeType":"ParameterList","parameters":[],"src":"4873:2:129"}},{"id":76038,"nodeType":"ErrorDefinition","src":"4881:30:129","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"4887:21:129","parameters":{"id":76037,"nodeType":"ParameterList","parameters":[],"src":"4908:2:129"}},{"id":76040,"nodeType":"ErrorDefinition","src":"4916:27:129","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"4922:18:129","parameters":{"id":76039,"nodeType":"ParameterList","parameters":[],"src":"4940:2:129"}},{"id":76042,"nodeType":"ErrorDefinition","src":"4948:29:129","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"4954:20:129","parameters":{"id":76041,"nodeType":"ParameterList","parameters":[],"src":"4974:2:129"}},{"id":76044,"nodeType":"ErrorDefinition","src":"4982:31:129","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"4988:22:129","parameters":{"id":76043,"nodeType":"ParameterList","parameters":[],"src":"5010:2:129"}},{"id":76046,"nodeType":"ErrorDefinition","src":"5018:23:129","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"5024:14:129","parameters":{"id":76045,"nodeType":"ParameterList","parameters":[],"src":"5038:2:129"}},{"id":76048,"nodeType":"ErrorDefinition","src":"5046:25:129","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"5052:16:129","parameters":{"id":76047,"nodeType":"ParameterList","parameters":[],"src":"5068:2:129"}},{"id":76050,"nodeType":"ErrorDefinition","src":"5076:26:129","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"5082:17:129","parameters":{"id":76049,"nodeType":"ParameterList","parameters":[],"src":"5099:2:129"}},{"id":76052,"nodeType":"ErrorDefinition","src":"5107:26:129","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"5113:17:129","parameters":{"id":76051,"nodeType":"ParameterList","parameters":[],"src":"5130:2:129"}},{"id":76054,"nodeType":"ErrorDefinition","src":"5138:26:129","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"5144:17:129","parameters":{"id":76053,"nodeType":"ParameterList","parameters":[],"src":"5161:2:129"}},{"id":76056,"nodeType":"ErrorDefinition","src":"5169:29:129","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"5175:20:129","parameters":{"id":76055,"nodeType":"ParameterList","parameters":[],"src":"5195:2:129"}},{"id":76058,"nodeType":"ErrorDefinition","src":"5203:23:129","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"5209:14:129","parameters":{"id":76057,"nodeType":"ParameterList","parameters":[],"src":"5223:2:129"}},{"id":76060,"nodeType":"ErrorDefinition","src":"5231:26:129","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"5237:17:129","parameters":{"id":76059,"nodeType":"ParameterList","parameters":[],"src":"5254:2:129"}},{"id":76062,"nodeType":"ErrorDefinition","src":"5262:29:129","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"5268:20:129","parameters":{"id":76061,"nodeType":"ParameterList","parameters":[],"src":"5288:2:129"}},{"id":76068,"nodeType":"ErrorDefinition","src":"5296:80:129","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"5302:25:129","parameters":{"id":76067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76064,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"5336:15:129","nodeType":"VariableDeclaration","scope":76068,"src":"5328:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76063,"name":"uint256","nodeType":"ElementaryTypeName","src":"5328:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76066,"mutability":"mutable","name":"_currentPower","nameLocation":"5361:13:129","nodeType":"VariableDeclaration","scope":76068,"src":"5353:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76065,"name":"uint256","nodeType":"ElementaryTypeName","src":"5353:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5327:48:129"}},{"id":76075,"nodeType":"StructDefinition","src":"5547:102:129","nodes":[],"canonicalName":"RegistryCommunity.Member","members":[{"constant":false,"id":76070,"mutability":"mutable","name":"member","nameLocation":"5579:6:129","nodeType":"VariableDeclaration","scope":76075,"src":"5571:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76069,"name":"address","nodeType":"ElementaryTypeName","src":"5571:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76072,"mutability":"mutable","name":"stakedAmount","nameLocation":"5603:12:129","nodeType":"VariableDeclaration","scope":76075,"src":"5595:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76071,"name":"uint256","nodeType":"ElementaryTypeName","src":"5595:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76074,"mutability":"mutable","name":"isRegistered","nameLocation":"5630:12:129","nodeType":"VariableDeclaration","scope":76075,"src":"5625:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76073,"name":"bool","nodeType":"ElementaryTypeName","src":"5625:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"5554:6:129","scope":77675,"visibility":"public"},{"id":76079,"nodeType":"StructDefinition","src":"5655:55:129","nodes":[],"canonicalName":"RegistryCommunity.Strategies","members":[{"constant":false,"id":76078,"mutability":"mutable","name":"strategies","nameLocation":"5693:10:129","nodeType":"VariableDeclaration","scope":76079,"src":"5683:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76076,"name":"address","nodeType":"ElementaryTypeName","src":"5683:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76077,"nodeType":"ArrayTypeName","src":"5683:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"5662:10:129","scope":77675,"visibility":"public"},{"id":76108,"nodeType":"StructDefinition","src":"5716:490:129","nodes":[],"canonicalName":"RegistryCommunity.InitializeParams","members":[{"constant":false,"id":76081,"mutability":"mutable","name":"_allo","nameLocation":"5758:5:129","nodeType":"VariableDeclaration","scope":76108,"src":"5750:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76080,"name":"address","nodeType":"ElementaryTypeName","src":"5750:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76084,"mutability":"mutable","name":"_gardenToken","nameLocation":"5780:12:129","nodeType":"VariableDeclaration","scope":76108,"src":"5773:19:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76083,"nodeType":"UserDefinedTypeName","pathNode":{"id":76082,"name":"IERC20","nameLocations":["5773:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"5773:6:129"},"referencedDeclaration":56900,"src":"5773:6:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":76086,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"5810:20:129","nodeType":"VariableDeclaration","scope":76108,"src":"5802:28:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76085,"name":"uint256","nodeType":"ElementaryTypeName","src":"5802:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76088,"mutability":"mutable","name":"_communityFee","nameLocation":"5848:13:129","nodeType":"VariableDeclaration","scope":76108,"src":"5840:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76087,"name":"uint256","nodeType":"ElementaryTypeName","src":"5840:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76090,"mutability":"mutable","name":"_nonce","nameLocation":"5935:6:129","nodeType":"VariableDeclaration","scope":76108,"src":"5927:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76089,"name":"uint256","nodeType":"ElementaryTypeName","src":"5927:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76092,"mutability":"mutable","name":"_registryFactory","nameLocation":"5959:16:129","nodeType":"VariableDeclaration","scope":76108,"src":"5951:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76091,"name":"address","nodeType":"ElementaryTypeName","src":"5951:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76094,"mutability":"mutable","name":"_feeReceiver","nameLocation":"5993:12:129","nodeType":"VariableDeclaration","scope":76108,"src":"5985:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76093,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76097,"mutability":"mutable","name":"_metadata","nameLocation":"6024:9:129","nodeType":"VariableDeclaration","scope":76108,"src":"6015:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":76096,"nodeType":"UserDefinedTypeName","pathNode":{"id":76095,"name":"Metadata","nameLocations":["6015:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6015:8:129"},"referencedDeclaration":3098,"src":"6015:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76099,"mutability":"mutable","name":"_councilSafe","nameLocation":"6059:12:129","nodeType":"VariableDeclaration","scope":76108,"src":"6043:28:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76098,"name":"address","nodeType":"ElementaryTypeName","src":"6043:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":76101,"mutability":"mutable","name":"_communityName","nameLocation":"6088:14:129","nodeType":"VariableDeclaration","scope":76108,"src":"6081:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76100,"name":"string","nodeType":"ElementaryTypeName","src":"6081:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76103,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"6117:14:129","nodeType":"VariableDeclaration","scope":76108,"src":"6112:19:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76102,"name":"bool","nodeType":"ElementaryTypeName","src":"6112:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":76105,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"6148:16:129","nodeType":"VariableDeclaration","scope":76108,"src":"6141:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76104,"name":"string","nodeType":"ElementaryTypeName","src":"6141:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76107,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"6182:17:129","nodeType":"VariableDeclaration","scope":76108,"src":"6174:25:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76106,"name":"address","nodeType":"ElementaryTypeName","src":"6174:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"5723:16:129","scope":77675,"visibility":"public"},{"id":76110,"nodeType":"VariableDeclaration","src":"6303:25:129","nodes":[],"constant":false,"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"6315:13:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76109,"name":"bool","nodeType":"ElementaryTypeName","src":"6303:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76112,"nodeType":"VariableDeclaration","src":"6472:34:129","nodes":[],"constant":false,"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"6487:19:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6472:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76114,"nodeType":"VariableDeclaration","src":"6512:27:129","nodes":[],"constant":false,"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"6527:12:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76113,"name":"uint256","nodeType":"ElementaryTypeName","src":"6512:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76116,"nodeType":"VariableDeclaration","src":"6545:24:129","nodes":[],"constant":false,"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"6560:9:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6545:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76118,"nodeType":"VariableDeclaration","src":"6620:26:129","nodes":[],"constant":false,"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"6635:11:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76117,"name":"address","nodeType":"ElementaryTypeName","src":"6620:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76120,"nodeType":"VariableDeclaration","src":"6652:30:129","nodes":[],"constant":false,"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"6667:15:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76119,"name":"address","nodeType":"ElementaryTypeName","src":"6652:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76122,"nodeType":"VariableDeclaration","src":"6688:31:129","nodes":[],"constant":false,"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"6703:16:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76121,"name":"address","nodeType":"ElementaryTypeName","src":"6688:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76124,"nodeType":"VariableDeclaration","src":"6725:25:129","nodes":[],"constant":false,"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"6740:10:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6725:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76126,"nodeType":"VariableDeclaration","src":"6756:41:129","nodes":[],"constant":false,"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"6779:18:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76125,"name":"address","nodeType":"ElementaryTypeName","src":"6756:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":76129,"nodeType":"VariableDeclaration","src":"6875:25:129","nodes":[],"constant":false,"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"6892:8:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":76128,"nodeType":"UserDefinedTypeName","pathNode":{"id":76127,"name":"IRegistry","nameLocations":["6875:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6875:9:129"},"referencedDeclaration":2802,"src":"6875:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":76132,"nodeType":"VariableDeclaration","src":"6906:25:129","nodes":[],"constant":false,"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"6920:11:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76131,"nodeType":"UserDefinedTypeName","pathNode":{"id":76130,"name":"IERC20","nameLocations":["6906:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"6906:6:129"},"referencedDeclaration":56900,"src":"6906:6:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"public"},{"id":76135,"nodeType":"VariableDeclaration","src":"6937:24:129","nodes":[],"constant":false,"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"6950:11:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"},"typeName":{"id":76134,"nodeType":"UserDefinedTypeName","pathNode":{"id":76133,"name":"ISafe","nameLocations":["6937:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":80232,"src":"6937:5:129"},"referencedDeclaration":80232,"src":"6937:5:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"visibility":"public"},{"id":76138,"nodeType":"VariableDeclaration","src":"6967:17:129","nodes":[],"constant":false,"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"6980:4:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"},"typeName":{"id":76137,"nodeType":"UserDefinedTypeName","pathNode":{"id":76136,"name":"FAllo","nameLocations":["6967:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":75815,"src":"6967:5:129"},"referencedDeclaration":75815,"src":"6967:5:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"visibility":"public"},{"id":76140,"nodeType":"VariableDeclaration","src":"7048:27:129","nodes":[],"constant":false,"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"7062:13:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76139,"name":"string","nodeType":"ElementaryTypeName","src":"7048:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76142,"nodeType":"VariableDeclaration","src":"7081:30:129","nodes":[],"constant":false,"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"7095:16:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76141,"name":"string","nodeType":"ElementaryTypeName","src":"7081:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76146,"nodeType":"VariableDeclaration","src":"7175:68:129","nodes":[],"constant":false,"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"7226:17:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":76145,"keyName":"strategy","keyNameLocation":"7191:8:129","keyType":{"id":76143,"name":"address","nodeType":"ElementaryTypeName","src":"7183:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7175:43:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"7208:9:129","valueType":{"id":76144,"name":"bool","nodeType":"ElementaryTypeName","src":"7203:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":76152,"nodeType":"VariableDeclaration","src":"7249:98:129","nodes":[],"constant":false,"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"7326:21:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":76151,"keyName":"strategy","keyNameLocation":"7265:8:129","keyType":{"id":76147,"name":"address","nodeType":"ElementaryTypeName","src":"7257:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7249:69:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76150,"keyName":"member","keyNameLocation":"7293:6:129","keyType":{"id":76148,"name":"address","nodeType":"ElementaryTypeName","src":"7285:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7277:40:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"7311:5:129","valueType":{"id":76149,"name":"uint256","nodeType":"ElementaryTypeName","src":"7303:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":76157,"nodeType":"VariableDeclaration","src":"7354:60:129","nodes":[],"constant":false,"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"7395:19:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"typeName":{"id":76156,"keyName":"member","keyNameLocation":"7370:6:129","keyType":{"id":76153,"name":"address","nodeType":"ElementaryTypeName","src":"7362:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7354:33:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76155,"nodeType":"UserDefinedTypeName","pathNode":{"id":76154,"name":"Member","nameLocations":["7380:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"7380:6:129"},"referencedDeclaration":76075,"src":"7380:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}}},"visibility":"public"},{"id":76162,"nodeType":"VariableDeclaration","src":"7420:82:129","nodes":[],"constant":false,"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"7484:18:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":76161,"keyName":"member","keyNameLocation":"7436:6:129","keyType":{"id":76158,"name":"address","nodeType":"ElementaryTypeName","src":"7428:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7420:56:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"7456:19:129","valueType":{"baseType":{"id":76159,"name":"address","nodeType":"ElementaryTypeName","src":"7446:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76160,"nodeType":"ArrayTypeName","src":"7446:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":76168,"nodeType":"VariableDeclaration","src":"7508:107:129","nodes":[],"constant":false,"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"7588:27:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":76167,"keyName":"member","keyNameLocation":"7524:6:129","keyType":{"id":76163,"name":"address","nodeType":"ElementaryTypeName","src":"7516:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7508:72:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76166,"keyName":"strategy","keyNameLocation":"7550:8:129","keyType":{"id":76164,"name":"address","nodeType":"ElementaryTypeName","src":"7542:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7534:45:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"7567:11:129","valueType":{"id":76165,"name":"bool","nodeType":"ElementaryTypeName","src":"7562:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":76171,"nodeType":"VariableDeclaration","src":"7622:24:129","nodes":[],"constant":false,"mutability":"mutable","name":"initialMembers","nameLocation":"7632:14:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":76169,"name":"address","nodeType":"ElementaryTypeName","src":"7622:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76170,"nodeType":"ArrayTypeName","src":"7622:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":76176,"nodeType":"VariableDeclaration","src":"7653:49:129","nodes":[],"constant":true,"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"7677:15:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76172,"name":"uint256","nodeType":"ElementaryTypeName","src":"7653:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":76175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7695:2:129","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":76174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7701:1:129","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7695:7:129","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":76181,"nodeType":"VariableDeclaration","src":"7708:54:129","nodes":[],"constant":true,"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"7732:7:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76177,"name":"uint256","nodeType":"ElementaryTypeName","src":"7708:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7742:2:129","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":76179,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"7747:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7742:20:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76190,"nodeType":"FunctionDefinition","src":"7769:145:129","nodes":[],"body":{"id":76189,"nodeType":"Block","src":"7783:131:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":76185,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"7865:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76186,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55020,"src":"7888:18:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76184,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55244,"src":"7851:13:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":76187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7851:56:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76188,"nodeType":"ExpressionStatement","src":"7851:56:129"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76182,"nodeType":"ParameterList","parameters":[],"src":"7780:2:129"},"returnParameters":{"id":76183,"nodeType":"ParameterList","parameters":[],"src":"7783:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76413,"nodeType":"FunctionDefinition","src":"7920:1945:129","nodes":[],"body":{"id":76412,"nodeType":"Block","src":"7997:1868:129","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76199,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8034:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8041:12:129","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76084,"src":"8034:19:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":76198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8026:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76197,"name":"address","nodeType":"ElementaryTypeName","src":"8026:7:129","typeDescriptions":{}}},"id":76201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8026:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76196,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8007:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8007:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76203,"nodeType":"ExpressionStatement","src":"8007:48:129"},{"expression":{"arguments":[{"expression":{"id":76205,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8084:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8091:12:129","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76099,"src":"8084:19:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76204,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8065:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76208,"nodeType":"ExpressionStatement","src":"8065:39:129"},{"expression":{"arguments":[{"expression":{"id":76210,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8133:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8140:5:129","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76081,"src":"8133:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76209,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8114:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"ExpressionStatement","src":"8114:32:129"},{"expression":{"arguments":[{"expression":{"id":76215,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8175:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8182:16:129","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76092,"src":"8175:23:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76214,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8156:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8156:43:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76218,"nodeType":"ExpressionStatement","src":"8156:43:129"},{"expression":{"arguments":[{"expression":{"id":76220,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8228:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8235:17:129","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"8228:24:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76219,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8209:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8209:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76223,"nodeType":"ExpressionStatement","src":"8209:44:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76224,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8268:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8275:13:129","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76088,"src":"8268:20:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8292:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8268:25:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76234,"nodeType":"IfStatement","src":"8264:95:129","trueBody":{"id":76233,"nodeType":"Block","src":"8295:64:129","statements":[{"expression":{"arguments":[{"expression":{"id":76229,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8328:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8335:12:129","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76094,"src":"8328:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76228,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8309:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8309:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76232,"nodeType":"ExpressionStatement","src":"8309:39:129"}]}},{"expression":{"id":76240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76235,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"8368:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76237,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8381:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8388:5:129","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76081,"src":"8381:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76236,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75815,"src":"8375:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$75815_$","typeString":"type(contract FAllo)"}},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8375:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"src":"8368:26:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":76241,"nodeType":"ExpressionStatement","src":"8368:26:129"},{"expression":{"id":76245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76242,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"8404:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76243,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8418:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8425:12:129","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76084,"src":"8418:19:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"src":"8404:33:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76246,"nodeType":"ExpressionStatement","src":"8404:33:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76247,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8451:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8458:20:129","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76086,"src":"8451:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8482:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8451:32:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76255,"nodeType":"IfStatement","src":"8447:89:129","trueBody":{"id":76254,"nodeType":"Block","src":"8485:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76251,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"8506:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8506:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76253,"nodeType":"RevertStatement","src":"8499:26:129"}]}},{"expression":{"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76256,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"8545:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76257,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8567:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8574:20:129","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76086,"src":"8567:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8545:49:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76260,"nodeType":"ExpressionStatement","src":"8545:49:129"},{"expression":{"id":76264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76261,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"8604:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76262,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8619:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8626:13:129","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76088,"src":"8619:20:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8604:35:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76265,"nodeType":"ExpressionStatement","src":"8604:35:129"},{"expression":{"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76266,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76110,"src":"8649:13:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76267,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8665:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8672:14:129","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":76103,"src":"8665:21:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8649:37:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76270,"nodeType":"ExpressionStatement","src":"8649:37:129"},{"expression":{"id":76274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76271,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"8696:13:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76272,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8712:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8719:14:129","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":76101,"src":"8712:21:129","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8696:37:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76275,"nodeType":"ExpressionStatement","src":"8696:37:129"},{"expression":{"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76276,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"8743:16:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76277,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8762:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:16:129","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":76105,"src":"8762:23:129","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8743:42:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76280,"nodeType":"ExpressionStatement","src":"8743:42:129"},{"expression":{"id":76284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76281,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"8795:15:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76282,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8813:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8820:16:129","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76092,"src":"8813:23:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8795:41:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76285,"nodeType":"ExpressionStatement","src":"8795:41:129"},{"expression":{"id":76289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76286,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"8846:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76287,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8860:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8867:12:129","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76094,"src":"8860:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8846:33:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76290,"nodeType":"ExpressionStatement","src":"8846:33:129"},{"expression":{"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76291,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"8889:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76293,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8909:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8916:12:129","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76099,"src":"8909:19:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76292,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"8903:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$80232_$","typeString":"type(contract ISafe)"}},"id":76295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8903:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"src":"8889:40:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":76297,"nodeType":"ExpressionStatement","src":"8889:40:129"},{"expression":{"id":76301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76298,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76122,"src":"8939:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8958:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8965:17:129","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"8958:24:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8939:43:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76302,"nodeType":"ExpressionStatement","src":"8939:43:129"},{"expression":{"arguments":[{"id":76304,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"9004:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76305,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9027:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9034:12:129","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76099,"src":"9027:19:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76303,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55276,"src":"8993:10:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:54:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76308,"nodeType":"ExpressionStatement","src":"8993:54:129"},{"expression":{"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76309,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"9058:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76311,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"9079:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":76312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9084:11:129","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":75806,"src":"9079:16:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9079:18:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76310,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"9069:9:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9069:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"9058:40:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76316,"nodeType":"ExpressionStatement","src":"9058:40:129"},{"assignments":[76321],"declarations":[{"constant":false,"id":76321,"mutability":"mutable","name":"owners","nameLocation":"9126:6:129","nodeType":"VariableDeclaration","scope":76412,"src":"9109:23:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76319,"name":"address","nodeType":"ElementaryTypeName","src":"9109:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76320,"nodeType":"ArrayTypeName","src":"9109:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76325,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76322,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"9135:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":76323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9147:9:129","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":80231,"src":"9135:21:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":76324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9135:23:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9109:49:129"},{"assignments":[76330],"declarations":[{"constant":false,"id":76330,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"9185:19:129","nodeType":"VariableDeclaration","scope":76412,"src":"9168:36:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76328,"name":"address","nodeType":"ElementaryTypeName","src":"9168:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76329,"nodeType":"ArrayTypeName","src":"9168:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76339,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76334,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"9221:6:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9228:6:129","memberName":"length","nodeType":"MemberAccess","src":"9221:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":76336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9237:1:129","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9221:17:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9207:13:129","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76331,"name":"address","nodeType":"ElementaryTypeName","src":"9211:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76332,"nodeType":"ArrayTypeName","src":"9211:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9168:71:129"},{"body":{"id":76359,"nodeType":"Block","src":"9294:59:129","statements":[{"expression":{"id":76357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76351,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9308:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76353,"indexExpression":{"id":76352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9328:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9308:22:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76354,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"9333:6:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76356,"indexExpression":{"id":76355,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9340:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9333:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9308:34:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76358,"nodeType":"ExpressionStatement","src":"9308:34:129"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9270:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76345,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"9274:6:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9281:6:129","memberName":"length","nodeType":"MemberAccess","src":"9274:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9270:17:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76360,"initializationExpression":{"assignments":[76341],"declarations":[{"constant":false,"id":76341,"mutability":"mutable","name":"i","nameLocation":"9263:1:129","nodeType":"VariableDeclaration","scope":76360,"src":"9255:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76340,"name":"uint256","nodeType":"ElementaryTypeName","src":"9255:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76343,"initialValue":{"hexValue":"30","id":76342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9267:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9255:13:129"},"loopExpression":{"expression":{"id":76349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9289:3:129","subExpression":{"id":76348,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9289:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76350,"nodeType":"ExpressionStatement","src":"9289:3:129"},"nodeType":"ForStatement","src":"9250:103:129"},{"expression":{"id":76371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76361,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9363:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76366,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76362,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9383:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9403:6:129","memberName":"length","nodeType":"MemberAccess","src":"9383:26:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9383:30:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9363:51:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76369,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"9425:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}],"id":76368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9417:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76367,"name":"address","nodeType":"ElementaryTypeName","src":"9417:7:129","typeDescriptions":{}}},"id":76370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9417:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9363:74:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76372,"nodeType":"ExpressionStatement","src":"9363:74:129"},{"expression":{"id":76383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76373,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9447:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76378,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76374,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9467:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9487:6:129","memberName":"length","nodeType":"MemberAccess","src":"9467:26:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":76376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9496:1:129","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9467:30:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9447:51:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76381,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9509:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9501:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76379,"name":"address","nodeType":"ElementaryTypeName","src":"9501:7:129","typeDescriptions":{}}},"id":76382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9501:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9447:67:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76384,"nodeType":"ExpressionStatement","src":"9447:67:129"},{"expression":{"id":76399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76385,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"9602:9:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76388,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9649:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:6:129","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76090,"src":"9649:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76390,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"9664:13:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76391,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9679:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9686:9:129","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76097,"src":"9679:16:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":76395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9705:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9697:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76393,"name":"address","nodeType":"ElementaryTypeName","src":"9697:7:129","typeDescriptions":{}}},"id":76396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9697:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76397,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9712:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76386,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"9626:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9635:13:129","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"9626:22:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":76398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9626:106:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9602:130:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76400,"nodeType":"ExpressionStatement","src":"9602:130:129"},{"expression":{"id":76403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76401,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"9743:14:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76402,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9760:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"9743:36:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76404,"nodeType":"ExpressionStatement","src":"9743:36:129"},{"eventCall":{"arguments":[{"id":76406,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"9815:9:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76407,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"9826:13:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9841:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9848:9:129","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76097,"src":"9841:16:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76405,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"9795:19:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":76410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:63:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76411,"nodeType":"EmitStatement","src":"9790:68:129"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7929:10:129","parameters":{"id":76194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76193,"mutability":"mutable","name":"params","nameLocation":"7982:6:129","nodeType":"VariableDeclaration","scope":76413,"src":"7940:48:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":76192,"nodeType":"UserDefinedTypeName","pathNode":{"id":76191,"name":"RegistryCommunity.InitializeParams","nameLocations":["7940:17:129","7958:16:129"],"nodeType":"IdentifierPath","referencedDeclaration":76108,"src":"7940:34:129"},"referencedDeclaration":76108,"src":"7940:34:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"7939:50:129"},"returnParameters":{"id":76195,"nodeType":"ParameterList","parameters":[],"src":"7997:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76445,"nodeType":"FunctionDefinition","src":"9871:341:129","nodes":[],"body":{"id":76444,"nodeType":"Block","src":"10052:160:129","nodes":[],"statements":[{"assignments":[76429],"declarations":[{"constant":false,"id":76429,"mutability":"mutable","name":"strategyClone","nameLocation":"10070:13:129","nodeType":"VariableDeclaration","scope":76444,"src":"10062:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76428,"name":"address","nodeType":"ElementaryTypeName","src":"10062:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76436,"initialValue":{"arguments":[{"id":76432,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76122,"src":"10104:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10122:12:129","subExpression":{"id":76433,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76124,"src":"10122:10:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76430,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"10086:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10092:11:129","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"10086:17:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":76435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10086:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10062:73:129"},{"expression":{"arguments":[{"id":76438,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76429,"src":"10163:13:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76439,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76415,"src":"10178:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76440,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76418,"src":"10186:7:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":76441,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76421,"src":"10195:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76437,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[76445,76517],"referencedDeclaration":76517,"src":"10152:10:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$72883_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":76442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10152:53:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":76427,"id":76443,"nodeType":"Return","src":"10145:60:129"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"9880:10:129","parameters":{"id":76422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76415,"mutability":"mutable","name":"_token","nameLocation":"9899:6:129","nodeType":"VariableDeclaration","scope":76445,"src":"9891:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76414,"name":"address","nodeType":"ElementaryTypeName","src":"9891:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76418,"mutability":"mutable","name":"_params","nameLocation":"9946:7:129","nodeType":"VariableDeclaration","scope":76445,"src":"9907:46:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76417,"nodeType":"UserDefinedTypeName","pathNode":{"id":76416,"name":"StrategyStruct.InitializeParams","nameLocations":["9907:14:129","9922:16:129"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"9907:31:129"},"referencedDeclaration":72883,"src":"9907:31:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76421,"mutability":"mutable","name":"_metadata","nameLocation":"9971:9:129","nodeType":"VariableDeclaration","scope":76445,"src":"9955:25:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76420,"nodeType":"UserDefinedTypeName","pathNode":{"id":76419,"name":"Metadata","nameLocations":["9955:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9955:8:129"},"referencedDeclaration":3098,"src":"9955:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"9890:91:129"},"returnParameters":{"id":76427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76424,"mutability":"mutable","name":"poolId","nameLocation":"10022:6:129","nodeType":"VariableDeclaration","scope":76445,"src":"10014:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76423,"name":"uint256","nodeType":"ElementaryTypeName","src":"10014:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76426,"mutability":"mutable","name":"strategy","nameLocation":"10038:8:129","nodeType":"VariableDeclaration","scope":76445,"src":"10030:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76425,"name":"address","nodeType":"ElementaryTypeName","src":"10030:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10013:34:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76517,"nodeType":"FunctionDefinition","src":"10218:653:129","nodes":[],"body":{"id":76516,"nodeType":"Block","src":"10436:435:129","nodes":[],"statements":[{"assignments":[76463],"declarations":[{"constant":false,"id":76463,"mutability":"mutable","name":"token","nameLocation":"10454:5:129","nodeType":"VariableDeclaration","scope":76516,"src":"10446:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76462,"name":"address","nodeType":"ElementaryTypeName","src":"10446:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76465,"initialValue":{"id":76464,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75832,"src":"10462:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10446:22:129"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76466,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76449,"src":"10482:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10500:1:129","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":76468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10492:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76467,"name":"address","nodeType":"ElementaryTypeName","src":"10492:7:129","typeDescriptions":{}}},"id":76470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10492:10:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10482:20:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76477,"nodeType":"IfStatement","src":"10478:65:129","trueBody":{"id":76476,"nodeType":"Block","src":"10504:39:129","statements":[{"expression":{"id":76474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76472,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"10518:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76473,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76449,"src":"10526:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10518:14:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76475,"nodeType":"ExpressionStatement","src":"10518:14:129"}]}},{"expression":{"id":76480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76478,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"10552:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76479,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76447,"src":"10563:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10552:20:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76481,"nodeType":"ExpressionStatement","src":"10552:20:129"},{"assignments":[76486],"declarations":[{"constant":false,"id":76486,"mutability":"mutable","name":"_pool_managers","nameLocation":"10600:14:129","nodeType":"VariableDeclaration","scope":76516,"src":"10583:31:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76484,"name":"address","nodeType":"ElementaryTypeName","src":"10583:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76485,"nodeType":"ArrayTypeName","src":"10583:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76488,"initialValue":{"id":76487,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"10617:14:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10583:48:129"},{"expression":{"id":76503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76489,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76458,"src":"10642:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76492,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"10698:9:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76493,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"10709:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76496,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76452,"src":"10730:7:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":76494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10719:3:129","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10723:6:129","memberName":"encode","nodeType":"MemberAccess","src":"10719:10:129","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76498,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"10740:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10747:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":76500,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76455,"src":"10750:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":76501,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"10761:14:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76490,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"10651:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":76491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10656:28:129","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":75801,"src":"10651:33:129","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10651:134:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10642:143:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76504,"nodeType":"ExpressionStatement","src":"10642:143:129"},{"eventCall":{"arguments":[{"id":76506,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76458,"src":"10813:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76507,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"10821:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76510,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10839:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10831:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76508,"name":"address","nodeType":"ElementaryTypeName","src":"10831:7:129","typeDescriptions":{}}},"id":76511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10831:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76512,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76449,"src":"10846:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76513,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76455,"src":"10854:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76505,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75935,"src":"10801:11:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10801:63:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76515,"nodeType":"EmitStatement","src":"10796:68:129"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"10227:10:129","parameters":{"id":76456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76447,"mutability":"mutable","name":"_strategy","nameLocation":"10255:9:129","nodeType":"VariableDeclaration","scope":76517,"src":"10247:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76446,"name":"address","nodeType":"ElementaryTypeName","src":"10247:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76449,"mutability":"mutable","name":"_token","nameLocation":"10282:6:129","nodeType":"VariableDeclaration","scope":76517,"src":"10274:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76448,"name":"address","nodeType":"ElementaryTypeName","src":"10274:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76452,"mutability":"mutable","name":"_params","nameLocation":"10337:7:129","nodeType":"VariableDeclaration","scope":76517,"src":"10298:46:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76451,"nodeType":"UserDefinedTypeName","pathNode":{"id":76450,"name":"StrategyStruct.InitializeParams","nameLocations":["10298:14:129","10313:16:129"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"10298:31:129"},"referencedDeclaration":72883,"src":"10298:31:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76455,"mutability":"mutable","name":"_metadata","nameLocation":"10370:9:129","nodeType":"VariableDeclaration","scope":76517,"src":"10354:25:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76454,"nodeType":"UserDefinedTypeName","pathNode":{"id":76453,"name":"Metadata","nameLocations":["10354:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10354:8:129"},"referencedDeclaration":3098,"src":"10354:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10237:148:129"},"returnParameters":{"id":76461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76458,"mutability":"mutable","name":"poolId","nameLocation":"10410:6:129","nodeType":"VariableDeclaration","scope":76517,"src":"10402:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76457,"name":"uint256","nodeType":"ElementaryTypeName","src":"10402:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76460,"mutability":"mutable","name":"strategy","nameLocation":"10426:8:129","nodeType":"VariableDeclaration","scope":76517,"src":"10418:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76459,"name":"address","nodeType":"ElementaryTypeName","src":"10418:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10401:34:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76634,"nodeType":"FunctionDefinition","src":"10877:1179:129","nodes":[],"body":{"id":76633,"nodeType":"Block","src":"10954:1102:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":76525,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"10990:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76524,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75979,"src":"10964:25:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10964:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76527,"nodeType":"ExpressionStatement","src":"10964:34:129"},{"expression":{"arguments":[{"id":76529,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11028:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76528,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75994,"src":"11008:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11008:30:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76531,"nodeType":"ExpressionStatement","src":"11008:30:129"},{"expression":{"arguments":[{"id":76533,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11067:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76532,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"11048:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11048:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76535,"nodeType":"ExpressionStatement","src":"11048:29:129"},{"condition":{"baseExpression":{"baseExpression":{"id":76536,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"11092:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76538,"indexExpression":{"id":76537,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11120:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11092:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76540,"indexExpression":{"id":76539,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11129:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11092:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76545,"nodeType":"IfStatement","src":"11088:107:129","trueBody":{"id":76544,"nodeType":"Block","src":"11141:54:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76541,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76042,"src":"11162:20:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11162:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76543,"nodeType":"RevertStatement","src":"11155:29:129"}]}},{"assignments":[76548],"declarations":[{"constant":false,"id":76548,"mutability":"mutable","name":"member","nameLocation":"11219:6:129","nodeType":"VariableDeclaration","scope":76633,"src":"11205:20:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":76547,"nodeType":"UserDefinedTypeName","pathNode":{"id":76546,"name":"Member","nameLocations":["11205:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"11205:6:129"},"referencedDeclaration":76075,"src":"11205:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":76552,"initialValue":{"baseExpression":{"id":76549,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"11228:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76551,"indexExpression":{"id":76550,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11248:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11228:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11205:51:129"},{"assignments":[76554],"declarations":[{"constant":false,"id":76554,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"11275:17:129","nodeType":"VariableDeclaration","scope":76633,"src":"11267:25:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76553,"name":"uint256","nodeType":"ElementaryTypeName","src":"11267:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76557,"initialValue":{"expression":{"id":76555,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76548,"src":"11295:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":76556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11302:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"11295:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11267:47:129"},{"assignments":[76559],"declarations":[{"constant":false,"id":76559,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"11332:16:129","nodeType":"VariableDeclaration","scope":76633,"src":"11324:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76558,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76561,"initialValue":{"id":76560,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"11351:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:46:129"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":76570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76563,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11400:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76562,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11385:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11385:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11411:14:129","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72792,"src":"11385:40:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72802_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11385:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":76567,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"11431:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11446:11:129","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"11431:26:129","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11458:9:129","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72801,"src":"11431:36:129","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"11385:82:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":76590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76583,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11589:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76582,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11574:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11600:14:129","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72792,"src":"11574:40:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72802_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76587,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"11620:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":76588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11635:11:129","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"11620:26:129","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11647:5:129","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":72798,"src":"11620:32:129","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"11574:78:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76602,"nodeType":"IfStatement","src":"11570:195:129","trueBody":{"id":76601,"nodeType":"Block","src":"11654:111:129","statements":[{"expression":{"id":76599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76591,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"11668:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76596,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11727:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76597,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76554,"src":"11736:17:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76593,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11702:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76592,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11687:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11687:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11713:13:129","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"11687:39:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11687:67:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11668:86:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76600,"nodeType":"ExpressionStatement","src":"11668:86:129"}]}},"id":76603,"nodeType":"IfStatement","src":"11381:384:129","trueBody":{"id":76581,"nodeType":"Block","src":"11469:95:129","statements":[{"expression":{"id":76579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76571,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"11483:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76576,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11542:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11551:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":76573,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11517:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76572,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11502:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11528:13:129","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"11502:39:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:51:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11483:70:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76580,"nodeType":"ExpressionStatement","src":"11483:70:129"}]}},{"expression":{"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76604,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"11775:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76607,"indexExpression":{"id":76605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11797:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11775:30:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76608,"indexExpression":{"id":76606,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11806:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11775:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76609,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"11819:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11775:60:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76611,"nodeType":"ExpressionStatement","src":"11775:60:129"},{"expression":{"id":76618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76612,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"11864:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76615,"indexExpression":{"id":76613,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11892:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11864:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76616,"indexExpression":{"id":76614,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11901:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11864:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11914:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11864:54:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76619,"nodeType":"ExpressionStatement","src":"11864:54:129"},{"expression":{"arguments":[{"id":76624,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11962:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":76620,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"11929:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76622,"indexExpression":{"id":76621,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11948:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11929:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11957:4:129","memberName":"push","nodeType":"MemberAccess","src":"11929:32:129","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":76625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11929:43:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76626,"nodeType":"ExpressionStatement","src":"11929:43:129"},{"eventCall":{"arguments":[{"id":76628,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"12012:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76629,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"12021:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76630,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"12032:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76627,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75900,"src":"11988:23:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":76631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11988:61:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76632,"nodeType":"EmitStatement","src":"11983:66:129"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"10886:24:129","parameters":{"id":76522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76519,"mutability":"mutable","name":"_member","nameLocation":"10919:7:129","nodeType":"VariableDeclaration","scope":76634,"src":"10911:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76518,"name":"address","nodeType":"ElementaryTypeName","src":"10911:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76521,"mutability":"mutable","name":"_strategy","nameLocation":"10936:9:129","nodeType":"VariableDeclaration","scope":76634,"src":"10928:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76520,"name":"address","nodeType":"ElementaryTypeName","src":"10928:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10910:36:129"},"returnParameters":{"id":76523,"nodeType":"ParameterList","parameters":[],"src":"10954:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76693,"nodeType":"FunctionDefinition","src":"12062:691:129","nodes":[],"body":{"id":76692,"nodeType":"Block","src":"12141:612:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":76642,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12177:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76641,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75979,"src":"12151:25:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12151:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76644,"nodeType":"ExpressionStatement","src":"12151:34:129"},{"expression":{"arguments":[{"id":76646,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12214:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76645,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"12195:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12195:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76648,"nodeType":"ExpressionStatement","src":"12195:29:129"},{"expression":{"arguments":[{"expression":{"id":76650,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12254:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12258:6:129","memberName":"sender","nodeType":"MemberAccess","src":"12254:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76652,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12266:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76649,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76010,"src":"12234:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":76653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12234:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76654,"nodeType":"ExpressionStatement","src":"12234:42:129"},{"condition":{"id":76660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12291:48:129","subExpression":{"baseExpression":{"baseExpression":{"id":76655,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"12292:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76657,"indexExpression":{"id":76656,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12320:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12292:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76659,"indexExpression":{"id":76658,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12329:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12292:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76665,"nodeType":"IfStatement","src":"12287:110:129","trueBody":{"id":76664,"nodeType":"Block","src":"12341:56:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76661,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76044,"src":"12362:22:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12362:24:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76663,"nodeType":"RevertStatement","src":"12355:31:129"}]}},{"expression":{"id":76672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76666,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"12407:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76669,"indexExpression":{"id":76667,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12435:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12407:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76670,"indexExpression":{"id":76668,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12444:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12407:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":76671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12457:5:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12407:55:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76673,"nodeType":"ExpressionStatement","src":"12407:55:129"},{"expression":{"id":76680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76674,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12472:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76677,"indexExpression":{"id":76675,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12494:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12472:30:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76678,"indexExpression":{"id":76676,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12503:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12472:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":76679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12516:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12472:45:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76681,"nodeType":"ExpressionStatement","src":"12472:45:129"},{"expression":{"arguments":[{"id":76683,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12552:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76684,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12561:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76682,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76746,"src":"12527:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12527:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76686,"nodeType":"ExpressionStatement","src":"12527:44:129"},{"eventCall":{"arguments":[{"id":76688,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12727:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76689,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12736:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76687,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75906,"src":"12701:25:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12701:45:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76691,"nodeType":"EmitStatement","src":"12696:50:129"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"12071:26:129","parameters":{"id":76639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76636,"mutability":"mutable","name":"_member","nameLocation":"12106:7:129","nodeType":"VariableDeclaration","scope":76693,"src":"12098:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76635,"name":"address","nodeType":"ElementaryTypeName","src":"12098:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76638,"mutability":"mutable","name":"_strategy","nameLocation":"12123:9:129","nodeType":"VariableDeclaration","scope":76693,"src":"12115:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76637,"name":"address","nodeType":"ElementaryTypeName","src":"12115:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12097:36:129"},"returnParameters":{"id":76640,"nodeType":"ParameterList","parameters":[],"src":"12141:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76746,"nodeType":"FunctionDefinition","src":"12759:425:129","nodes":[],"body":{"id":76745,"nodeType":"Block","src":"12838:346:129","nodes":[],"statements":[{"assignments":[76704],"declarations":[{"constant":false,"id":76704,"mutability":"mutable","name":"memberStrategies","nameLocation":"12866:16:129","nodeType":"VariableDeclaration","scope":76745,"src":"12848:34:129","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76702,"name":"address","nodeType":"ElementaryTypeName","src":"12848:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76703,"nodeType":"ArrayTypeName","src":"12848:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76708,"initialValue":{"baseExpression":{"id":76705,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"12885:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76707,"indexExpression":{"id":76706,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"12904:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12885:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12848:64:129"},{"body":{"id":76743,"nodeType":"Block","src":"12976:202:129","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76720,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"12994:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76722,"indexExpression":{"id":76721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"13011:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12994:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76723,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"13017:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12994:32:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76742,"nodeType":"IfStatement","src":"12990:178:129","trueBody":{"id":76741,"nodeType":"Block","src":"13028:140:129","statements":[{"expression":{"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76725,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13046:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76727,"indexExpression":{"id":76726,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"13063:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13046:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76728,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13068:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76733,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76729,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13085:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13102:6:129","memberName":"length","nodeType":"MemberAccess","src":"13085:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13111:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13085:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13068:45:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13046:67:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76735,"nodeType":"ExpressionStatement","src":"13046:67:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76736,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13131:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13148:3:129","memberName":"pop","nodeType":"MemberAccess","src":"13131:20:129","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":76739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13131:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76740,"nodeType":"ExpressionStatement","src":"13131:22:129"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"12942:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76714,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"12946:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12963:6:129","memberName":"length","nodeType":"MemberAccess","src":"12946:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12942:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76744,"initializationExpression":{"assignments":[76710],"declarations":[{"constant":false,"id":76710,"mutability":"mutable","name":"i","nameLocation":"12935:1:129","nodeType":"VariableDeclaration","scope":76744,"src":"12927:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76709,"name":"uint256","nodeType":"ElementaryTypeName","src":"12927:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76712,"initialValue":{"hexValue":"30","id":76711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12939:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12927:13:129"},"loopExpression":{"expression":{"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12971:3:129","subExpression":{"id":76717,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"12971:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76719,"nodeType":"ExpressionStatement","src":"12971:3:129"},"nodeType":"ForStatement","src":"12922:256:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"12768:24:129","parameters":{"id":76698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76695,"mutability":"mutable","name":"_member","nameLocation":"12801:7:129","nodeType":"VariableDeclaration","scope":76746,"src":"12793:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76694,"name":"address","nodeType":"ElementaryTypeName","src":"12793:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76697,"mutability":"mutable","name":"_strategy","nameLocation":"12818:9:129","nodeType":"VariableDeclaration","scope":76746,"src":"12810:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76696,"name":"address","nodeType":"ElementaryTypeName","src":"12810:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12792:36:129"},"returnParameters":{"id":76699,"nodeType":"ParameterList","parameters":[],"src":"12838:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76850,"nodeType":"FunctionDefinition","src":"13190:998:129","nodes":[],"body":{"id":76849,"nodeType":"Block","src":"13256:932:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76753,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75964,"src":"13266:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76755,"nodeType":"ExpressionStatement","src":"13266:26:129"},{"assignments":[76757],"declarations":[{"constant":false,"id":76757,"mutability":"mutable","name":"member","nameLocation":"13310:6:129","nodeType":"VariableDeclaration","scope":76849,"src":"13302:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76756,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76760,"initialValue":{"expression":{"id":76758,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13319:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13323:6:129","memberName":"sender","nodeType":"MemberAccess","src":"13319:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13302:27:129"},{"assignments":[76765],"declarations":[{"constant":false,"id":76765,"mutability":"mutable","name":"memberStrategies","nameLocation":"13356:16:129","nodeType":"VariableDeclaration","scope":76849,"src":"13339:33:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76763,"name":"address","nodeType":"ElementaryTypeName","src":"13339:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76764,"nodeType":"ArrayTypeName","src":"13339:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76769,"initialValue":{"baseExpression":{"id":76766,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"13375:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76768,"indexExpression":{"id":76767,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13394:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13375:26:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13339:62:129"},{"assignments":[76771],"declarations":[{"constant":false,"id":76771,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13420:16:129","nodeType":"VariableDeclaration","scope":76849,"src":"13412:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76770,"name":"uint256","nodeType":"ElementaryTypeName","src":"13412:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76772,"nodeType":"VariableDeclarationStatement","src":"13412:24:129"},{"body":{"id":76824,"nodeType":"Block","src":"13501:479:129","statements":[{"expression":{"id":76794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76784,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"13620:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76791,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13689:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76792,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"13697:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":76786,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13654:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76788,"indexExpression":{"id":76787,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13671:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13654:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76785,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"13639:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13639:35:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13675:13:129","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"13639:49:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13639:72:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13620:91:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76795,"nodeType":"ExpressionStatement","src":"13620:91:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76796,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"13729:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13749:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13729:21:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76823,"nodeType":"IfStatement","src":"13725:229:129","trueBody":{"id":76822,"nodeType":"Block","src":"13752:202:129","statements":[{"expression":{"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76799,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"13770:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76804,"indexExpression":{"id":76800,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13792:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13770:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76805,"indexExpression":{"baseExpression":{"id":76801,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13800:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76803,"indexExpression":{"id":76802,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13817:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13800:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13770:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76806,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"13824:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13770:70:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76808,"nodeType":"ExpressionStatement","src":"13770:70:129"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":76812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13870:16:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":76813,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"13888:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76815,"indexExpression":{"id":76814,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13910:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13888:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76819,"indexExpression":{"baseExpression":{"id":76816,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13918:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76818,"indexExpression":{"id":76817,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13935:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13918:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13888:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76809,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"13858:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13866:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"13858:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13858:81:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76821,"nodeType":"ExpressionStatement","src":"13858:81:129"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13467:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76778,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13471:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13488:6:129","memberName":"length","nodeType":"MemberAccess","src":"13471:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13467:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76825,"initializationExpression":{"assignments":[76774],"declarations":[{"constant":false,"id":76774,"mutability":"mutable","name":"i","nameLocation":"13460:1:129","nodeType":"VariableDeclaration","scope":76825,"src":"13452:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76773,"name":"uint256","nodeType":"ElementaryTypeName","src":"13452:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76776,"initialValue":{"hexValue":"30","id":76775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13464:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13452:13:129"},"loopExpression":{"expression":{"id":76782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13496:3:129","subExpression":{"id":76781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13496:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76783,"nodeType":"ExpressionStatement","src":"13496:3:129"},"nodeType":"ForStatement","src":"13447:533:129"},{"expression":{"arguments":[{"id":76829,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"14019:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14035:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14027:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76830,"name":"address","nodeType":"ElementaryTypeName","src":"14027:7:129","typeDescriptions":{}}},"id":76833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14027:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76834,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"14042:13:129","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":76826,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"13990:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14002:16:129","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"13990:28:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":76835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13990:66:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76836,"nodeType":"ExpressionStatement","src":"13990:66:129"},{"expression":{"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":76837,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"14066:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76839,"indexExpression":{"id":76838,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"14086:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14066:27:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14094:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"14066:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76841,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"14110:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14066:57:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76843,"nodeType":"ExpressionStatement","src":"14066:57:129"},{"eventCall":{"arguments":[{"id":76845,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"14159:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76846,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"14167:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76844,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"14138:20:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14138:43:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76848,"nodeType":"EmitStatement","src":"14133:48:129"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":76751,"kind":"modifierInvocation","modifierName":{"id":76750,"name":"nonReentrant","nameLocations":["13243:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"13243:12:129"},"nodeType":"ModifierInvocation","src":"13243:12:129"}],"name":"increasePower","nameLocation":"13199:13:129","parameters":{"id":76749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76748,"mutability":"mutable","name":"_amountStaked","nameLocation":"13221:13:129","nodeType":"VariableDeclaration","scope":76850,"src":"13213:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76747,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13212:23:129"},"returnParameters":{"id":76752,"nodeType":"ParameterList","parameters":[],"src":"13256:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77000,"nodeType":"FunctionDefinition","src":"14328:1554:129","nodes":[],"body":{"id":76999,"nodeType":"Block","src":"14396:1486:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76857,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75964,"src":"14406:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14406:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76859,"nodeType":"ExpressionStatement","src":"14406:26:129"},{"assignments":[76861],"declarations":[{"constant":false,"id":76861,"mutability":"mutable","name":"member","nameLocation":"14450:6:129","nodeType":"VariableDeclaration","scope":76999,"src":"14442:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76860,"name":"address","nodeType":"ElementaryTypeName","src":"14442:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76864,"initialValue":{"expression":{"id":76862,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14459:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14463:6:129","memberName":"sender","nodeType":"MemberAccess","src":"14459:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14442:27:129"},{"assignments":[76869],"declarations":[{"constant":false,"id":76869,"mutability":"mutable","name":"memberStrategies","nameLocation":"14497:16:129","nodeType":"VariableDeclaration","scope":76999,"src":"14479:34:129","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76867,"name":"address","nodeType":"ElementaryTypeName","src":"14479:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76868,"nodeType":"ArrayTypeName","src":"14479:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76873,"initialValue":{"baseExpression":{"id":76870,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"14516:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76872,"indexExpression":{"id":76871,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"14535:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14516:26:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14479:63:129"},{"assignments":[76875],"declarations":[{"constant":false,"id":76875,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14561:16:129","nodeType":"VariableDeclaration","scope":76999,"src":"14553:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76874,"name":"uint256","nodeType":"ElementaryTypeName","src":"14553:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76876,"nodeType":"VariableDeclarationStatement","src":"14553:24:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":76877,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"14592:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76879,"indexExpression":{"id":76878,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"14612:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14592:27:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14620:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"14592:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76881,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"14635:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14592:58:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76883,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"14653:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14592:80:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76889,"nodeType":"IfStatement","src":"14588:140:129","trueBody":{"id":76888,"nodeType":"Block","src":"14674:54:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76885,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76062,"src":"14695:20:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14695:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76887,"nodeType":"RevertStatement","src":"14688:29:129"}]}},{"expression":{"arguments":[{"id":76893,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"14762:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76894,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"14770:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76890,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"14737:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14749:12:129","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"14737:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":76895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14737:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76896,"nodeType":"ExpressionStatement","src":"14737:49:129"},{"body":{"id":76985,"nodeType":"Block","src":"14850:897:129","statements":[{"assignments":[76909],"declarations":[{"constant":false,"id":76909,"mutability":"mutable","name":"strategy","nameLocation":"14872:8:129","nodeType":"VariableDeclaration","scope":76985,"src":"14864:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76908,"name":"address","nodeType":"ElementaryTypeName","src":"14864:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76913,"initialValue":{"baseExpression":{"id":76910,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14883:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76912,"indexExpression":{"id":76911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"14900:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14883:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14864:38:129"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":76917,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"14952:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":76916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14947:4:129","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14947:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":76919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14968:11:129","memberName":"interfaceId","nodeType":"MemberAccess","src":"14947:32:129","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76914,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76909,"src":"14920:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14929:17:129","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58147,"src":"14920:26:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":76920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14920:60:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76983,"nodeType":"Block","src":"15470:250:129","statements":[{"expression":{"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76963,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15555:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76965,"indexExpression":{"id":76964,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"15572:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15555:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76966,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15577:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76971,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76967,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15594:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15611:6:129","memberName":"length","nodeType":"MemberAccess","src":"15594:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15620:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15594:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15577:45:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15555:67:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76973,"nodeType":"ExpressionStatement","src":"15555:67:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76974,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15640:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15657:3:129","memberName":"pop","nodeType":"MemberAccess","src":"15640:20:129","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":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15640:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76978,"nodeType":"ExpressionStatement","src":"15640:22:129"},{"expression":{"arguments":[{"id":76980,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76909,"src":"15696:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76979,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77167,"src":"15680:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15680:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76982,"nodeType":"ExpressionStatement","src":"15680:25:129"}]},"id":76984,"nodeType":"IfStatement","src":"14916:804:129","trueBody":{"id":76962,"nodeType":"Block","src":"14982:482:129","statements":[{"expression":{"id":76929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76921,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15000:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76926,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15058:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76927,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"15066:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76923,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76909,"src":"15034:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76922,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"15019:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15019:24:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15044:13:129","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":72786,"src":"15019:38:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15019:63:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15000:82:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76930,"nodeType":"ExpressionStatement","src":"15000:82:129"},{"assignments":[76932],"declarations":[{"constant":false,"id":76932,"mutability":"mutable","name":"currentPower","nameLocation":"15108:12:129","nodeType":"VariableDeclaration","scope":76962,"src":"15100:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76931,"name":"uint256","nodeType":"ElementaryTypeName","src":"15100:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76940,"initialValue":{"baseExpression":{"baseExpression":{"id":76933,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"15123:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76935,"indexExpression":{"id":76934,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15145:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15123:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76939,"indexExpression":{"baseExpression":{"id":76936,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15153:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76938,"indexExpression":{"id":76937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"15170:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15153:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15123:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15100:73:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76941,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15195:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":76942,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76932,"src":"15214:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15195:31:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76960,"nodeType":"Block","src":"15339:111:129","statements":[{"expression":{"id":76958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76950,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"15361:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76955,"indexExpression":{"id":76951,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15383:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15361:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76956,"indexExpression":{"baseExpression":{"id":76952,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15391:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76954,"indexExpression":{"id":76953,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"15408:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15391:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15361:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":76957,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15415:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15361:70:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76959,"nodeType":"ExpressionStatement","src":"15361:70:129"}]},"id":76961,"nodeType":"IfStatement","src":"15191:259:129","trueBody":{"id":76949,"nodeType":"Block","src":"15228:105:129","statements":[{"errorCall":{"arguments":[{"id":76945,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15283:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76946,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76932,"src":"15301:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76944,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76068,"src":"15257:25:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":76947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15257:57:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76948,"nodeType":"RevertStatement","src":"15250:64:129"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76901,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"14816:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76902,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14820:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14837:6:129","memberName":"length","nodeType":"MemberAccess","src":"14820:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14816:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76986,"initializationExpression":{"assignments":[76898],"declarations":[{"constant":false,"id":76898,"mutability":"mutable","name":"i","nameLocation":"14809:1:129","nodeType":"VariableDeclaration","scope":76986,"src":"14801:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76897,"name":"uint256","nodeType":"ElementaryTypeName","src":"14801:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76900,"initialValue":{"hexValue":"30","id":76899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14813:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14801:13:129"},"loopExpression":{"expression":{"id":76906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14845:3:129","subExpression":{"id":76905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"14845:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76907,"nodeType":"ExpressionStatement","src":"14845:3:129"},"nodeType":"ForStatement","src":"14796:951:129"},{"expression":{"id":76992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":76987,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"15756:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76989,"indexExpression":{"id":76988,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15776:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15756:27:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15784:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"15756:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":76991,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"15800:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15756:59:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76993,"nodeType":"ExpressionStatement","src":"15756:59:129"},{"eventCall":{"arguments":[{"id":76995,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15851:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76996,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"15859:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76994,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75922,"src":"15830:20:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:45:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76998,"nodeType":"EmitStatement","src":"15825:50:129"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":76855,"kind":"modifierInvocation","modifierName":{"id":76854,"name":"nonReentrant","nameLocations":["14383:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"14383:12:129"},"nodeType":"ModifierInvocation","src":"14383:12:129"}],"name":"decreasePower","nameLocation":"14337:13:129","parameters":{"id":76853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76852,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"14359:15:129","nodeType":"VariableDeclaration","scope":77000,"src":"14351:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76851,"name":"uint256","nodeType":"ElementaryTypeName","src":"14351:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14350:25:129"},"returnParameters":{"id":76856,"nodeType":"ParameterList","parameters":[],"src":"14396:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77016,"nodeType":"FunctionDefinition","src":"15888:165:129","nodes":[],"body":{"id":77015,"nodeType":"Block","src":"15988:65:129","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":77009,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"16005:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77011,"indexExpression":{"id":77010,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77002,"src":"16027:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16005:30:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77013,"indexExpression":{"id":77012,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77004,"src":"16036:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16005:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77008,"id":77014,"nodeType":"Return","src":"15998:48:129"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"15897:24:129","parameters":{"id":77005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77002,"mutability":"mutable","name":"_member","nameLocation":"15930:7:129","nodeType":"VariableDeclaration","scope":77016,"src":"15922:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77001,"name":"address","nodeType":"ElementaryTypeName","src":"15922:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77004,"mutability":"mutable","name":"_strategy","nameLocation":"15947:9:129","nodeType":"VariableDeclaration","scope":77016,"src":"15939:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77003,"name":"address","nodeType":"ElementaryTypeName","src":"15939:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15921:36:129"},"returnParameters":{"id":77008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77016,"src":"15979:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77006,"name":"uint256","nodeType":"ElementaryTypeName","src":"15979:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15978:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77029,"nodeType":"FunctionDefinition","src":"16059:143:129","nodes":[],"body":{"id":77028,"nodeType":"Block","src":"16137:65:129","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77023,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"16154:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77025,"indexExpression":{"id":77024,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77018,"src":"16174:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16154:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16183:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"16154:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77022,"id":77027,"nodeType":"Return","src":"16147:48:129"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"16068:21:129","parameters":{"id":77019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77018,"mutability":"mutable","name":"_member","nameLocation":"16098:7:129","nodeType":"VariableDeclaration","scope":77029,"src":"16090:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77017,"name":"address","nodeType":"ElementaryTypeName","src":"16090:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16089:17:129"},"returnParameters":{"id":77022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77029,"src":"16128:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77020,"name":"uint256","nodeType":"ElementaryTypeName","src":"16128:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16127:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77066,"nodeType":"FunctionDefinition","src":"16331:313:129","nodes":[],"body":{"id":77065,"nodeType":"Block","src":"16383:261:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77034,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"16393:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16393:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77036,"nodeType":"ExpressionStatement","src":"16393:17:129"},{"assignments":[77038],"declarations":[{"constant":false,"id":77038,"mutability":"mutable","name":"strategy","nameLocation":"16428:8:129","nodeType":"VariableDeclaration","scope":77065,"src":"16420:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77037,"name":"address","nodeType":"ElementaryTypeName","src":"16420:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77047,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77043,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77031,"src":"16460:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77041,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"16447:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":77042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16452:7:129","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75814,"src":"16447:12:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16447:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16468:8:129","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"16447:29:129","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16439:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77039,"name":"address","nodeType":"ElementaryTypeName","src":"16439:7:129","typeDescriptions":{}}},"id":77046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16420:57:129"},{"expression":{"arguments":[{"id":77049,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"16506:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77048,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"16487:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16487:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77051,"nodeType":"ExpressionStatement","src":"16487:28:129"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77055,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"16561:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":77054,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16556:4:129","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":77057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16577:11:129","memberName":"interfaceId","nodeType":"MemberAccess","src":"16556:32:129","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77052,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"16529:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16538:17:129","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58147,"src":"16529:26:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16529:60:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77064,"nodeType":"IfStatement","src":"16525:113:129","trueBody":{"id":77063,"nodeType":"Block","src":"16591:47:129","statements":[{"expression":{"arguments":[{"id":77060,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"16618:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77059,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"16605:12:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16605:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77062,"nodeType":"ExpressionStatement","src":"16605:22:129"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"16340:19:129","parameters":{"id":77032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77031,"mutability":"mutable","name":"poolId","nameLocation":"16368:6:129","nodeType":"VariableDeclaration","scope":77066,"src":"16360:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77030,"name":"uint256","nodeType":"ElementaryTypeName","src":"16360:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16359:16:129"},"returnParameters":{"id":77033,"nodeType":"ParameterList","parameters":[],"src":"16383:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77079,"nodeType":"FunctionDefinition","src":"16650:120:129","nodes":[],"body":{"id":77078,"nodeType":"Block","src":"16700:70:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77071,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"16710:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16710:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77073,"nodeType":"ExpressionStatement","src":"16710:17:129"},{"expression":{"arguments":[{"id":77075,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77068,"src":"16750:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77074,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"16737:12:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16737:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77077,"nodeType":"ExpressionStatement","src":"16737:26:129"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"16659:11:129","parameters":{"id":77069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77068,"mutability":"mutable","name":"_newStrategy","nameLocation":"16679:12:129","nodeType":"VariableDeclaration","scope":77079,"src":"16671:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77067,"name":"address","nodeType":"ElementaryTypeName","src":"16671:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16670:22:129"},"returnParameters":{"id":77070,"nodeType":"ParameterList","parameters":[],"src":"16700:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77103,"nodeType":"FunctionDefinition","src":"16776:244:129","nodes":[],"body":{"id":77102,"nodeType":"Block","src":"16829:191:129","nodes":[],"statements":[{"condition":{"baseExpression":{"id":77084,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"16843:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77086,"indexExpression":{"id":77085,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"16861:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16843:31:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77091,"nodeType":"IfStatement","src":"16839:85:129","trueBody":{"id":77090,"nodeType":"Block","src":"16876:48:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77087,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76046,"src":"16897:14:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16897:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77089,"nodeType":"RevertStatement","src":"16890:23:129"}]}},{"expression":{"id":77096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77092,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"16933:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77094,"indexExpression":{"id":77093,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"16951:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16933:31:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16967:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16933:38:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77097,"nodeType":"ExpressionStatement","src":"16933:38:129"},{"eventCall":{"arguments":[{"id":77099,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"17000:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77098,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75888,"src":"16986:13:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16986:27:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77101,"nodeType":"EmitStatement","src":"16981:32:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"16785:12:129","parameters":{"id":77082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77081,"mutability":"mutable","name":"_newStrategy","nameLocation":"16806:12:129","nodeType":"VariableDeclaration","scope":77103,"src":"16798:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77080,"name":"address","nodeType":"ElementaryTypeName","src":"16798:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16797:22:129"},"returnParameters":{"id":77083,"nodeType":"ParameterList","parameters":[],"src":"16829:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77119,"nodeType":"FunctionDefinition","src":"17026:133:129","nodes":[],"body":{"id":77118,"nodeType":"Block","src":"17086:73:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77108,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77105,"src":"17100:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17120:1:129","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":77110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17112:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77109,"name":"address","nodeType":"ElementaryTypeName","src":"17112:7:129","typeDescriptions":{}}},"id":77112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:10:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17100:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77117,"nodeType":"IfStatement","src":"17096:56:129","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77114,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76030,"src":"17131:19:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17131:21:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77116,"nodeType":"RevertStatement","src":"17124:28:129"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"17035:18:129","parameters":{"id":77106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77105,"mutability":"mutable","name":"_address","nameLocation":"17062:8:129","nodeType":"VariableDeclaration","scope":77119,"src":"17054:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77104,"name":"address","nodeType":"ElementaryTypeName","src":"17054:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17053:18:129"},"returnParameters":{"id":77107,"nodeType":"ParameterList","parameters":[],"src":"17086:0:129"},"scope":77675,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77147,"nodeType":"FunctionDefinition","src":"17165:229:129","nodes":[],"body":{"id":77146,"nodeType":"Block","src":"17220:174:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77124,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"17230:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17230:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77126,"nodeType":"ExpressionStatement","src":"17230:17:129"},{"assignments":[77128],"declarations":[{"constant":false,"id":77128,"mutability":"mutable","name":"strategy","nameLocation":"17265:8:129","nodeType":"VariableDeclaration","scope":77146,"src":"17257:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77127,"name":"address","nodeType":"ElementaryTypeName","src":"17257:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77137,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77133,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77121,"src":"17297:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77131,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"17284:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17289:7:129","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75814,"src":"17284:12:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17284:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17305:8:129","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17284:29:129","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17276:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77129,"name":"address","nodeType":"ElementaryTypeName","src":"17276:7:129","typeDescriptions":{}}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17276:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17257:57:129"},{"expression":{"arguments":[{"id":77139,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77128,"src":"17343:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77138,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"17324:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17324:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77141,"nodeType":"ExpressionStatement","src":"17324:28:129"},{"expression":{"arguments":[{"id":77143,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77128,"src":"17378:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77142,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77167,"src":"17362:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17362:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77145,"nodeType":"ExpressionStatement","src":"17362:25:129"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"17174:22:129","parameters":{"id":77122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77121,"mutability":"mutable","name":"poolId","nameLocation":"17205:6:129","nodeType":"VariableDeclaration","scope":77147,"src":"17197:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77120,"name":"uint256","nodeType":"ElementaryTypeName","src":"17197:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17196:16:129"},"returnParameters":{"id":77123,"nodeType":"ParameterList","parameters":[],"src":"17220:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77167,"nodeType":"FunctionDefinition","src":"17400:186:129","nodes":[],"body":{"id":77166,"nodeType":"Block","src":"17453:133:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":77153,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"17482:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77152,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"17463:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17463:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77155,"nodeType":"ExpressionStatement","src":"17463:29:129"},{"expression":{"id":77160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77156,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"17502:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77158,"indexExpression":{"id":77157,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"17520:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:28:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":77159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17533:5:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17502:36:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77161,"nodeType":"ExpressionStatement","src":"17502:36:129"},{"eventCall":{"arguments":[{"id":77163,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"17569:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77162,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"17553:15:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17553:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77165,"nodeType":"EmitStatement","src":"17548:31:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"17409:15:129","parameters":{"id":77150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77149,"mutability":"mutable","name":"_strategy","nameLocation":"17433:9:129","nodeType":"VariableDeclaration","scope":77167,"src":"17425:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77148,"name":"address","nodeType":"ElementaryTypeName","src":"17425:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17424:19:129"},"returnParameters":{"id":77151,"nodeType":"ParameterList","parameters":[],"src":"17453:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77180,"nodeType":"FunctionDefinition","src":"17592:120:129","nodes":[],"body":{"id":77179,"nodeType":"Block","src":"17642:70:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77172,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"17652:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17652:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77174,"nodeType":"ExpressionStatement","src":"17652:17:129"},{"expression":{"arguments":[{"id":77176,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77169,"src":"17695:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77175,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77167,"src":"17679:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17679:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77178,"nodeType":"ExpressionStatement","src":"17679:26:129"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"17601:14:129","parameters":{"id":77170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77169,"mutability":"mutable","name":"_strategy","nameLocation":"17624:9:129","nodeType":"VariableDeclaration","scope":77180,"src":"17616:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77168,"name":"address","nodeType":"ElementaryTypeName","src":"17616:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17615:19:129"},"returnParameters":{"id":77171,"nodeType":"ParameterList","parameters":[],"src":"17642:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77205,"nodeType":"FunctionDefinition","src":"17718:240:129","nodes":[],"body":{"id":77204,"nodeType":"Block","src":"17772:186:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77185,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"17782:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17782:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77187,"nodeType":"ExpressionStatement","src":"17782:17:129"},{"expression":{"arguments":[{"id":77189,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77182,"src":"17828:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77188,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"17809:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17809:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77191,"nodeType":"ExpressionStatement","src":"17809:25:129"},{"expression":{"id":77194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77192,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"17844:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77193,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77182,"src":"17865:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17844:26:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":77195,"nodeType":"ExpressionStatement","src":"17844:26:129"},{"eventCall":{"arguments":[{"arguments":[{"id":77199,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"17918:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}],"id":77198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17910:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77197,"name":"address","nodeType":"ElementaryTypeName","src":"17910:7:129","typeDescriptions":{}}},"id":77200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17910:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77201,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"17932:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77196,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"17885:24:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":77202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17885:66:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77203,"nodeType":"EmitStatement","src":"17880:71:129"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"17727:14:129","parameters":{"id":77183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77182,"mutability":"mutable","name":"_safe","nameLocation":"17758:5:129","nodeType":"VariableDeclaration","scope":77205,"src":"17742:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77181,"name":"address","nodeType":"ElementaryTypeName","src":"17742:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"17741:23:129"},"returnParameters":{"id":77184,"nodeType":"ParameterList","parameters":[],"src":"17772:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77222,"nodeType":"FunctionDefinition","src":"17964:179:129","nodes":[],"body":{"id":77221,"nodeType":"Block","src":"18003:140:129","nodes":[],"statements":[{"expression":{"id":77212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77208,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"18013:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77210,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18033:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77209,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"18027:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$80232_$","typeString":"type(contract ISafe)"}},"id":77211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18027:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"src":"18013:39:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":77213,"nodeType":"ExpressionStatement","src":"18013:39:129"},{"expression":{"id":77215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18062:25:129","subExpression":{"id":77214,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18069:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77216,"nodeType":"ExpressionStatement","src":"18062:25:129"},{"eventCall":{"arguments":[{"id":77218,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18117:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77217,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75845,"src":"18102:14:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18102:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77220,"nodeType":"EmitStatement","src":"18097:39:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"17973:18:129","parameters":{"id":77206,"nodeType":"ParameterList","parameters":[],"src":"17991:2:129"},"returnParameters":{"id":77207,"nodeType":"ParameterList","parameters":[],"src":"18003:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77238,"nodeType":"FunctionDefinition","src":"18149:171:129","nodes":[],"body":{"id":77237,"nodeType":"Block","src":"18185:135:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77225,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18199:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18203:6:129","memberName":"sender","nodeType":"MemberAccess","src":"18199:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77227,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18213:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"18199:32:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77233,"nodeType":"IfStatement","src":"18195:89:129","trueBody":{"id":77232,"nodeType":"Block","src":"18233:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77229,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76050,"src":"18254:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18254:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77231,"nodeType":"RevertStatement","src":"18247:26:129"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77234,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77222,"src":"18293:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18293:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77236,"nodeType":"ExpressionStatement","src":"18293:20:129"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"18158:17:129","parameters":{"id":77223,"nodeType":"ParameterList","parameters":[],"src":"18175:2:129"},"returnParameters":{"id":77224,"nodeType":"ParameterList","parameters":[],"src":"18185:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77256,"nodeType":"FunctionDefinition","src":"18326:182:129","nodes":[],"body":{"id":77255,"nodeType":"Block","src":"18398:110:129","nodes":[],"statements":[{"assignments":[77247],"declarations":[{"constant":false,"id":77247,"mutability":"mutable","name":"newMember","nameLocation":"18422:9:129","nodeType":"VariableDeclaration","scope":77255,"src":"18408:23:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77246,"nodeType":"UserDefinedTypeName","pathNode":{"id":77245,"name":"Member","nameLocations":["18408:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"18408:6:129"},"referencedDeclaration":76075,"src":"18408:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77251,"initialValue":{"baseExpression":{"id":77248,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"18434:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77250,"indexExpression":{"id":77249,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77240,"src":"18454:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18434:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18408:54:129"},{"expression":{"expression":{"id":77252,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"18479:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18489:12:129","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76074,"src":"18479:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77244,"id":77254,"nodeType":"Return","src":"18472:29:129"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"18335:8:129","parameters":{"id":77241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77240,"mutability":"mutable","name":"_member","nameLocation":"18352:7:129","nodeType":"VariableDeclaration","scope":77256,"src":"18344:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77239,"name":"address","nodeType":"ElementaryTypeName","src":"18344:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18343:17:129"},"returnParameters":{"id":77244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77243,"mutability":"mutable","name":"_isMember","nameLocation":"18387:9:129","nodeType":"VariableDeclaration","scope":77256,"src":"18382:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77242,"name":"bool","nodeType":"ElementaryTypeName","src":"18382:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18381:16:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77415,"nodeType":"FunctionDefinition","src":"18514:1907:129","nodes":[],"body":{"id":77414,"nodeType":"Block","src":"18568:1853:129","nodes":[],"statements":[{"assignments":[77262],"declarations":[{"constant":false,"id":77262,"mutability":"mutable","name":"_member","nameLocation":"18586:7:129","nodeType":"VariableDeclaration","scope":77414,"src":"18578:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77261,"name":"address","nodeType":"ElementaryTypeName","src":"18578:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77265,"initialValue":{"expression":{"id":77263,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18596:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:6:129","memberName":"sender","nodeType":"MemberAccess","src":"18596:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18578:28:129"},{"assignments":[77268],"declarations":[{"constant":false,"id":77268,"mutability":"mutable","name":"newMember","nameLocation":"18631:9:129","nodeType":"VariableDeclaration","scope":77414,"src":"18616:24:129","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77267,"nodeType":"UserDefinedTypeName","pathNode":{"id":77266,"name":"Member","nameLocations":["18616:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"18616:6:129"},"referencedDeclaration":76075,"src":"18616:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77272,"initialValue":{"baseExpression":{"id":77269,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"18643:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77271,"indexExpression":{"id":77270,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"18663:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18643:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18616:55:129"},{"assignments":[77275],"declarations":[{"constant":false,"id":77275,"mutability":"mutable","name":"gardensFactory","nameLocation":"18697:14:129","nodeType":"VariableDeclaration","scope":77414,"src":"18681:30:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"},"typeName":{"id":77274,"nodeType":"UserDefinedTypeName","pathNode":{"id":77273,"name":"RegistryFactory","nameLocations":["18681:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":79854,"src":"18681:15:129"},"referencedDeclaration":79854,"src":"18681:15:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77279,"initialValue":{"arguments":[{"id":77277,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"18730:15:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77276,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"18714:15:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$79854_$","typeString":"type(contract RegistryFactory)"}},"id":77278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18714:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"18681:65:129"},{"assignments":[77281],"declarations":[{"constant":false,"id":77281,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"18764:18:129","nodeType":"VariableDeclaration","scope":77414,"src":"18756:26:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77280,"name":"uint256","nodeType":"ElementaryTypeName","src":"18756:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77291,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77282,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"18786:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77283,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"18808:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18786:34:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77285,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18785:36:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18825:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77287,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"18831:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18825:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77289,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18824:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18785:62:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18756:91:129"},{"assignments":[77293],"declarations":[{"constant":false,"id":77293,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"18865:16:129","nodeType":"VariableDeclaration","scope":77414,"src":"18857:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77292,"name":"uint256","nodeType":"ElementaryTypeName","src":"18857:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77309,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77294,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"18897:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77299,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18957:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":77298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18949:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77297,"name":"address","nodeType":"ElementaryTypeName","src":"18949:7:129","typeDescriptions":{}}},"id":77300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18949:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77295,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77275,"src":"18919:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18934:14:129","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":79853,"src":"18919:29:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18919:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18897:66:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18896:68:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77305,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"18974:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18968:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77307,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18967:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18896:94:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18857:133:129"},{"condition":{"id":77313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19004:18:129","subExpression":{"arguments":[{"id":77311,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"19014:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77310,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"19005:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19005:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77413,"nodeType":"IfStatement","src":"19000:1415:129","trueBody":{"id":77412,"nodeType":"Block","src":"19024:1391:129","statements":[{"expression":{"id":77318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77314,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77268,"src":"19038:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19048:12:129","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76074,"src":"19038:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19063:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19038:29:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77319,"nodeType":"ExpressionStatement","src":"19038:29:129"},{"expression":{"id":77324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77320,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77268,"src":"19082:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19092:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"19082:22:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77323,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"19107:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19082:44:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77325,"nodeType":"ExpressionStatement","src":"19082:44:129"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":77329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19224:13:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":77332,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"19247:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":77331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19239:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77330,"name":"address","nodeType":"ElementaryTypeName","src":"19239:7:129","typeDescriptions":{}}},"id":77333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19239:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77326,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19212:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19220:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19212:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19212:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77335,"nodeType":"ExpressionStatement","src":"19212:48:129"},{"expression":{"arguments":[{"id":77339,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"19321:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77342,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19338:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":77341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19330:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77340,"name":"address","nodeType":"ElementaryTypeName","src":"19330:7:129","typeDescriptions":{}}},"id":77343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19330:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77344,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"19345:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77345,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19367:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19345:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77347,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"19388:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19345:59:129","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":77336,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"19275:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19287:16:129","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"19275:28:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19275:143:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77350,"nodeType":"ExpressionStatement","src":"19275:143:129"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":77354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19781:20:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":77355,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19803:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77351,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19769:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19777:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"19769:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19769:53:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77357,"nodeType":"ExpressionStatement","src":"19769:53:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77358,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19840:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19861:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19840:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77376,"nodeType":"IfStatement","src":"19836:175:129","trueBody":{"id":77375,"nodeType":"Block","src":"19864:147:129","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":77364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19894:13:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":77365,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"19909:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77361,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19882:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19890:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19882:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19882:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77367,"nodeType":"ExpressionStatement","src":"19882:39:129"},{"expression":{"arguments":[{"id":77371,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"19964:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77372,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19977:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77368,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"19939:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19951:12:129","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"19939:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19939:57:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77374,"nodeType":"ExpressionStatement","src":"19939:57:129"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":77380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20036:18:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":77381,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"20056:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77377,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20024:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20032:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"20024:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77383,"nodeType":"ExpressionStatement","src":"20024:49:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77384,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"20091:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20110:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20091:20:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77406,"nodeType":"IfStatement","src":"20087:252:129","trueBody":{"id":77405,"nodeType":"Block","src":"20113:226:129","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":77390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20143:40:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77391,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77275,"src":"20185:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20200:21:129","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":79772,"src":"20185:36:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20185:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77387,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20131:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20139:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"20131:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20131:93:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77395,"nodeType":"ExpressionStatement","src":"20131:93:129"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77399,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77275,"src":"20267:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20282:21:129","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":79772,"src":"20267:36:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20267:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77402,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"20307:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77396,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"20242:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20254:12:129","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"20242:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20242:82:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77404,"nodeType":"ExpressionStatement","src":"20242:82:129"}]}},{"eventCall":{"arguments":[{"id":77408,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"20375:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77409,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20384:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77407,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75857,"src":"20358:16:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20358:46:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77411,"nodeType":"EmitStatement","src":"20353:51:129"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":77259,"kind":"modifierInvocation","modifierName":{"id":77258,"name":"nonReentrant","nameLocations":["18555:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"18555:12:129"},"nodeType":"ModifierInvocation","src":"18555:12:129"}],"name":"stakeAndRegisterMember","nameLocation":"18523:22:129","parameters":{"id":77257,"nodeType":"ParameterList","parameters":[],"src":"18545:2:129"},"returnParameters":{"id":77260,"nodeType":"ParameterList","parameters":[],"src":"18568:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77464,"nodeType":"FunctionDefinition","src":"20427:467:129","nodes":[],"body":{"id":77463,"nodeType":"Block","src":"20491:403:129","nodes":[],"statements":[{"assignments":[77422],"declarations":[{"constant":false,"id":77422,"mutability":"mutable","name":"gardensFactory","nameLocation":"20517:14:129","nodeType":"VariableDeclaration","scope":77463,"src":"20501:30:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"},"typeName":{"id":77421,"nodeType":"UserDefinedTypeName","pathNode":{"id":77420,"name":"RegistryFactory","nameLocations":["20501:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":79854,"src":"20501:15:129"},"referencedDeclaration":79854,"src":"20501:15:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77426,"initialValue":{"arguments":[{"id":77424,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"20550:15:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77423,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"20534:15:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$79854_$","typeString":"type(contract RegistryFactory)"}},"id":77425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20534:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20501:65:129"},{"assignments":[77428],"declarations":[{"constant":false,"id":77428,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20584:18:129","nodeType":"VariableDeclaration","scope":77463,"src":"20576:26:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77427,"name":"uint256","nodeType":"ElementaryTypeName","src":"20576:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77438,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77429,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20606:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77430,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"20628:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20606:34:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20605:36:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20645:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77434,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"20651:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20645:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20644:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20605:62:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20576:91:129"},{"assignments":[77440],"declarations":[{"constant":false,"id":77440,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20685:16:129","nodeType":"VariableDeclaration","scope":77463,"src":"20677:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77439,"name":"uint256","nodeType":"ElementaryTypeName","src":"20677:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77456,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77441,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20717:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77446,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20777:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":77445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20769:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77444,"name":"address","nodeType":"ElementaryTypeName","src":"20769:7:129","typeDescriptions":{}}},"id":77447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20769:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77442,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77422,"src":"20739:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20754:14:129","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":79853,"src":"20739:29:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20739:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20717:66:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20716:68:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20788:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77452,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"20794:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20788:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20787:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20716:94:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20677:133:129"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77457,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20828:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77458,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77428,"src":"20850:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20828:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77460,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77440,"src":"20871:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20828:59:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77419,"id":77462,"nodeType":"Return","src":"20821:66:129"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"20436:22:129","parameters":{"id":77416,"nodeType":"ParameterList","parameters":[],"src":"20458:2:129"},"returnParameters":{"id":77419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77464,"src":"20482:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77417,"name":"uint256","nodeType":"ElementaryTypeName","src":"20482:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20481:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77472,"nodeType":"FunctionDefinition","src":"20900:107:129","nodes":[],"body":{"id":77471,"nodeType":"Block","src":"20964:43:129","nodes":[],"statements":[{"expression":{"id":77469,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20981:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77468,"id":77470,"nodeType":"Return","src":"20974:26:129"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"20909:20:129","parameters":{"id":77465,"nodeType":"ParameterList","parameters":[],"src":"20929:2:129"},"returnParameters":{"id":77468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77472,"src":"20955:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77466,"name":"uint256","nodeType":"ElementaryTypeName","src":"20955:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20954:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77489,"nodeType":"FunctionDefinition","src":"21013:182:129","nodes":[],"body":{"id":77488,"nodeType":"Block","src":"21072:123:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77477,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"21082:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21082:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77479,"nodeType":"ExpressionStatement","src":"21082:17:129"},{"expression":{"id":77482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77480,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"21109:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77481,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77474,"src":"21131:10:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21109:32:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77483,"nodeType":"ExpressionStatement","src":"21109:32:129"},{"eventCall":{"arguments":[{"id":77485,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77474,"src":"21177:10:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77484,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75910,"src":"21156:20:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21156:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77487,"nodeType":"EmitStatement","src":"21151:37:129"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"21022:20:129","parameters":{"id":77475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77474,"mutability":"mutable","name":"_newAmount","nameLocation":"21051:10:129","nodeType":"VariableDeclaration","scope":77489,"src":"21043:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77473,"name":"uint256","nodeType":"ElementaryTypeName","src":"21043:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21042:20:129"},"returnParameters":{"id":77476,"nodeType":"ParameterList","parameters":[],"src":"21072:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77514,"nodeType":"FunctionDefinition","src":"21201:280:129","nodes":[],"body":{"id":77513,"nodeType":"Block","src":"21259:222:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77494,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"21269:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21269:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77496,"nodeType":"ExpressionStatement","src":"21269:17:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77497,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21300:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77498,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76181,"src":"21319:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21300:26:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77504,"nodeType":"IfStatement","src":"21296:86:129","trueBody":{"id":77503,"nodeType":"Block","src":"21328:54:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77500,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76056,"src":"21349:20:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21349:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77502,"nodeType":"RevertStatement","src":"21342:29:129"}]}},{"expression":{"id":77507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77505,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"21391:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77506,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21406:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21391:31:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77508,"nodeType":"ExpressionStatement","src":"21391:31:129"},{"eventCall":{"arguments":[{"id":77510,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21457:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77509,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75875,"src":"21437:19:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21437:37:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77512,"nodeType":"EmitStatement","src":"21432:42:129"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"21210:15:129","parameters":{"id":77492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77491,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"21234:16:129","nodeType":"VariableDeclaration","scope":77514,"src":"21226:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77490,"name":"uint256","nodeType":"ElementaryTypeName","src":"21226:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21225:26:129"},"returnParameters":{"id":77493,"nodeType":"ParameterList","parameters":[],"src":"21259:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77527,"nodeType":"FunctionDefinition","src":"21523:132:129","nodes":[],"body":{"id":77526,"nodeType":"Block","src":"21592:63:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":77522,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"21617:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77523,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77516,"src":"21640:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77521,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"21609:7:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21609:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77520,"id":77525,"nodeType":"Return","src":"21602:46:129"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"21532:15:129","parameters":{"id":77517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77516,"mutability":"mutable","name":"_member","nameLocation":"21556:7:129","nodeType":"VariableDeclaration","scope":77527,"src":"21548:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77515,"name":"address","nodeType":"ElementaryTypeName","src":"21548:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21547:17:129"},"returnParameters":{"id":77520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77527,"src":"21586:4:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77518,"name":"bool","nodeType":"ElementaryTypeName","src":"21586:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21585:6:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77577,"nodeType":"FunctionDefinition","src":"21661:453:129","nodes":[],"body":{"id":77576,"nodeType":"Block","src":"21709:405:129","nodes":[],"statements":[{"assignments":[77533],"declarations":[{"constant":false,"id":77533,"mutability":"mutable","name":"_member","nameLocation":"21727:7:129","nodeType":"VariableDeclaration","scope":77576,"src":"21719:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77532,"name":"address","nodeType":"ElementaryTypeName","src":"21719:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77536,"initialValue":{"expression":{"id":77534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21737:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21741:6:129","memberName":"sender","nodeType":"MemberAccess","src":"21737:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21719:28:129"},{"expression":{"arguments":[{"id":77538,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21783:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77537,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75979,"src":"21757:25:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21757:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77540,"nodeType":"ExpressionStatement","src":"21757:34:129"},{"expression":{"arguments":[{"id":77542,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21825:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77541,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77614,"src":"21801:23:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77544,"nodeType":"ExpressionStatement","src":"21801:32:129"},{"assignments":[77547],"declarations":[{"constant":false,"id":77547,"mutability":"mutable","name":"member","nameLocation":"21857:6:129","nodeType":"VariableDeclaration","scope":77576,"src":"21843:20:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77546,"nodeType":"UserDefinedTypeName","pathNode":{"id":77545,"name":"Member","nameLocations":["21843:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"21843:6:129"},"referencedDeclaration":76075,"src":"21843:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77551,"initialValue":{"baseExpression":{"id":77548,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"21866:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77550,"indexExpression":{"id":77549,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21886:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21866:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21843:51:129"},{"expression":{"id":77555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21904:35:129","subExpression":{"baseExpression":{"id":77552,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"21911:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77554,"indexExpression":{"id":77553,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21931:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21911:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77556,"nodeType":"ExpressionStatement","src":"21904:35:129"},{"expression":{"id":77560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21949:34:129","subExpression":{"baseExpression":{"id":77557,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"21956:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77559,"indexExpression":{"id":77558,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21975:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21956:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77561,"nodeType":"ExpressionStatement","src":"21949:34:129"},{"expression":{"arguments":[{"id":77565,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"22015:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77566,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77547,"src":"22024:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22031:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"22024:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77562,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"21994:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22006:8:129","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"21994:20:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:50:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77569,"nodeType":"ExpressionStatement","src":"21994:50:129"},{"eventCall":{"arguments":[{"id":77571,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"22078:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77572,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77547,"src":"22087:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22094:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"22087:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77570,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75863,"src":"22059:18:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22059:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77575,"nodeType":"EmitStatement","src":"22054:53:129"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":77530,"kind":"modifierInvocation","modifierName":{"id":77529,"name":"nonReentrant","nameLocations":["21696:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"21696:12:129"},"nodeType":"ModifierInvocation","src":"21696:12:129"}],"name":"unregisterMember","nameLocation":"21670:16:129","parameters":{"id":77528,"nodeType":"ParameterList","parameters":[],"src":"21686:2:129"},"returnParameters":{"id":77531,"nodeType":"ParameterList","parameters":[],"src":"21709:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77614,"nodeType":"FunctionDefinition","src":"22120:466:129","nodes":[],"body":{"id":77613,"nodeType":"Block","src":"22179:407:129","nodes":[],"statements":[{"assignments":[77586],"declarations":[{"constant":false,"id":77586,"mutability":"mutable","name":"memberStrategies","nameLocation":"22206:16:129","nodeType":"VariableDeclaration","scope":77613,"src":"22189:33:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77584,"name":"address","nodeType":"ElementaryTypeName","src":"22189:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77585,"nodeType":"ArrayTypeName","src":"22189:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77590,"initialValue":{"baseExpression":{"id":77587,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"22225:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77589,"indexExpression":{"id":77588,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77579,"src":"22244:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22225:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22189:63:129"},{"body":{"id":77611,"nodeType":"Block","src":"22382:198:129","statements":[{"expression":{"arguments":[{"id":77608,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77579,"src":"22561:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":77603,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77586,"src":"22523:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77605,"indexExpression":{"id":77604,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"22540:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22523:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77602,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"22508:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":77606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22508:35:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":77607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22544:16:129","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72768,"src":"22508:52:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22508:61:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77610,"nodeType":"ExpressionStatement","src":"22508:61:129"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"22348:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77596,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77586,"src":"22352:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22369:6:129","memberName":"length","nodeType":"MemberAccess","src":"22352:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22348:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77612,"initializationExpression":{"assignments":[77592],"declarations":[{"constant":false,"id":77592,"mutability":"mutable","name":"i","nameLocation":"22341:1:129","nodeType":"VariableDeclaration","scope":77612,"src":"22333:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77591,"name":"uint256","nodeType":"ElementaryTypeName","src":"22333:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77594,"initialValue":{"hexValue":"30","id":77593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22345:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22333:13:129"},"loopExpression":{"expression":{"id":77600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22377:3:129","subExpression":{"id":77599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"22377:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77601,"nodeType":"ExpressionStatement","src":"22377:3:129"},"nodeType":"ForStatement","src":"22328:252:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"22129:23:129","parameters":{"id":77580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77579,"mutability":"mutable","name":"_member","nameLocation":"22161:7:129","nodeType":"VariableDeclaration","scope":77614,"src":"22153:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77578,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22152:17:129"},"returnParameters":{"id":77581,"nodeType":"ParameterList","parameters":[],"src":"22179:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77674,"nodeType":"FunctionDefinition","src":"22592:571:129","nodes":[],"body":{"id":77673,"nodeType":"Block","src":"22675:488:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77623,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"22685:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22685:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77625,"nodeType":"ExpressionStatement","src":"22685:17:129"},{"condition":{"id":77627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22716:14:129","subExpression":{"id":77626,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76110,"src":"22717:13:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77632,"nodeType":"IfStatement","src":"22712:68:129","trueBody":{"id":77631,"nodeType":"Block","src":"22732:48:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77628,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76058,"src":"22753:14:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22753:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77630,"nodeType":"RevertStatement","src":"22746:23:129"}]}},{"condition":{"id":77636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22793:18:129","subExpression":{"arguments":[{"id":77634,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"22803:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77633,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"22794:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22794:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77641,"nodeType":"IfStatement","src":"22789:75:129","trueBody":{"id":77640,"nodeType":"Block","src":"22813:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77637,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"22834:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22834:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77639,"nodeType":"RevertStatement","src":"22827:26:129"}]}},{"assignments":[77644],"declarations":[{"constant":false,"id":77644,"mutability":"mutable","name":"member","nameLocation":"22887:6:129","nodeType":"VariableDeclaration","scope":77673,"src":"22873:20:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77643,"nodeType":"UserDefinedTypeName","pathNode":{"id":77642,"name":"Member","nameLocations":["22873:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"22873:6:129"},"referencedDeclaration":76075,"src":"22873:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77648,"initialValue":{"baseExpression":{"id":77645,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"22896:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77647,"indexExpression":{"id":77646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"22916:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22896:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22873:51:129"},{"expression":{"arguments":[{"id":77650,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"22958:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77649,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77614,"src":"22934:23:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22934:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77652,"nodeType":"ExpressionStatement","src":"22934:32:129"},{"expression":{"id":77656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"22976:35:129","subExpression":{"baseExpression":{"id":77653,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"22983:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77655,"indexExpression":{"id":77654,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"23003:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22983:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77657,"nodeType":"ExpressionStatement","src":"22976:35:129"},{"expression":{"arguments":[{"id":77661,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77618,"src":"23043:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77662,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77644,"src":"23061:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23068:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"23061:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77658,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"23022:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23034:8:129","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"23022:20:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23022:59:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77665,"nodeType":"ExpressionStatement","src":"23022:59:129"},{"eventCall":{"arguments":[{"id":77667,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"23109:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77668,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77618,"src":"23118:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77669,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77644,"src":"23136:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23143:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"23136:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77666,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75871,"src":"23096:12:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":77671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23096:60:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77672,"nodeType":"EmitStatement","src":"23091:65:129"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":77621,"kind":"modifierInvocation","modifierName":{"id":77620,"name":"nonReentrant","nameLocations":["22662:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"22662:12:129"},"nodeType":"ModifierInvocation","src":"22662:12:129"}],"name":"kickMember","nameLocation":"22601:10:129","parameters":{"id":77619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77616,"mutability":"mutable","name":"_member","nameLocation":"22620:7:129","nodeType":"VariableDeclaration","scope":77674,"src":"22612:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77615,"name":"address","nodeType":"ElementaryTypeName","src":"22612:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77618,"mutability":"mutable","name":"_transferAddress","nameLocation":"22637:16:129","nodeType":"VariableDeclaration","scope":77674,"src":"22629:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77617,"name":"address","nodeType":"ElementaryTypeName","src":"22629:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22611:43:129"},"returnParameters":{"id":77622,"nodeType":"ParameterList","parameters":[],"src":"22675:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":75816,"name":"ReentrancyGuard","nameLocations":["1671:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":56109,"src":"1671:15:129"},"id":75817,"nodeType":"InheritanceSpecifier","src":"1671:15:129"},{"baseName":{"id":75818,"name":"AccessControl","nameLocations":["1688:13:129"],"nodeType":"IdentifierPath","referencedDeclaration":55308,"src":"1688:13:129"},"id":75819,"nodeType":"InheritanceSpecifier","src":"1688:13:129"}],"canonicalName":"RegistryCommunity","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77675,55308,58097,58303,55381,57734,56109],"name":"RegistryCommunity","nameLocation":"1650:17:129","scope":77676,"usedErrors":[76030,76032,76034,76036,76038,76040,76042,76044,76046,76048,76050,76052,76054,76056,76058,76060,76062,76068]}],"license":"AGPL-3.0-only"},"id":129} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json b/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json index 3bd0398f8..50324e934 100644 --- a/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json +++ b/pkg/contracts/out/RegistryCommunity.sol/RegistryCommunity.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"COUNCIL_MEMBER_CHANGE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PRECISION_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"acceptCouncilSafe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"activateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategy","inputs":[{"name":"_newStrategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addressToMemberInfo","inputs":[{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"member","type":"address","internalType":"address"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FAllo"}],"stateMutability":"view"},{"type":"function","name":"cloneNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"councilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISafe"}],"stateMutability":"view"},{"type":"function","name":"covenantIpfsHash","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"createPool","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"_strategy","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deactivateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_amountUnstaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enabledStrategies","inputs":[{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isEnabled","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"feeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"gardenToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getBasisStakedAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberPowerInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberStakedAmount","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStakeAmountWithFees","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"increasePower","inputs":[{"name":"_amountStaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCouncilMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isKickEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"_isMember","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"kickMember","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_transferAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"memberActivatedInStrategies","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isActivated","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberPowerInStrategy","inputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"power","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingCouncilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"profileId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerStakeAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"registryFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasisStakedAmount","inputs":[{"name":"_newAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityFee","inputs":[{"name":"_newCommunityFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCouncilSafe","inputs":[{"name":"_safe","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"strategiesByMember","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategiesAddresses","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"strategyTemplate","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AlloSet","inputs":[{"name":"_allo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BasisStakedAmountSet","inputs":[{"name":"_newAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CommunityFeeUpdated","inputs":[{"name":"_newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CouncilSafeChangeStarted","inputs":[{"name":"_safeOwner","type":"address","indexed":false,"internalType":"address"},{"name":"_newSafeOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CouncilSafeSet","inputs":[{"name":"_safe","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberActivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberDeactivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberKicked","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_transferAddress","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerDecreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_unstakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerIncreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_stakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountStaked","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"_poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_token","type":"address","indexed":false,"internalType":"address"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryInitialized","inputs":[{"name":"_profileId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_communityName","type":"string","indexed":false,"internalType":"string"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyAdded","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CantDecreaseMoreThanPower","inputs":[{"name":"_decreaseAmount","type":"uint256","internalType":"uint256"},{"name":"_currentPower","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DecreaseUnderMinimum","inputs":[]},{"type":"error","name":"KickNotEnabled","inputs":[]},{"type":"error","name":"NewFeeGreaterThanMax","inputs":[]},{"type":"error","name":"PointsDeactivated","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SenderNotNewOwner","inputs":[]},{"type":"error","name":"SenderNotStrategy","inputs":[]},{"type":"error","name":"StrategyDisabled","inputs":[]},{"type":"error","name":"StrategyExists","inputs":[]},{"type":"error","name":"UserAlreadyActivated","inputs":[]},{"type":"error","name":"UserAlreadyDeactivated","inputs":[]},{"type":"error","name":"UserAlreadyRegistered","inputs":[]},{"type":"error","name":"UserNotGardenOwner","inputs":[]},{"type":"error","name":"UserNotInCouncil","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ValueCannotBeZero","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033","sourceMap":"1630:21524:130:-:0;;;7758:145;;;;;;;;;-1:-1:-1;1716:1:68;1821:7;:22;;;7840:56:130;;2090:34;;7840:13;:56::i;:::-;1630:21524;;7172:247:58;7255:25;4604:12;;;:6;:12;;;;;;;;:22;;;;;7311:34;;;;7360:52;;4604:22;;7311:34;;4604:22;;:12;;7360:52;;7255:25;7360:52;7245:174;7172:247;;:::o;1630:21524:130:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033","sourceMap":"1630:21524:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:58;;;;;;:::i;:::-;;:::i;:::-;;;516:14:143;;509:22;491:41;;479:2;464:18;2732:202:58;;;;;;;;20889:107:130;20970:19;;20889:107;;;689:25:143;;;677:2;662:18;20889:107:130;543:177:143;6534:24:130;;;;;;21190:280;;;;;;:::i;:::-;;:::i;:::-;;10866:1179;;;;;;:::i;:::-;;:::i;17581:120::-;;;;;;:::i;:::-;;:::i;6292:25::-;;;;;;;;;16639:120;;;;;;:::i;:::-;;:::i;12051:691::-;;;;;;:::i;:::-;;:::i;4504:129:58:-;;;;;;:::i;:::-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;;4504:129;20416:467:130;;;:::i;7409:82::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2704:55:143;;;2686:74;;2674:2;2659:18;7409:82:130;2540:226:143;16048:143:130;;;;;;:::i;:::-;-1:-1:-1;;;;;16143:28:130;16117:7;16143:28;;;:19;:28;;;;;:41;;;;16048:143;4929:145:58;;;;;;:::i;:::-;;:::i;21002:182:130:-;;;;;;:::i;:::-;;:::i;6714:25::-;;;;;;18503:1907;;;:::i;6038:214:58:-;;;;;;:::i;:::-;;:::i;17707:240:130:-;;;;;;:::i;:::-;;:::i;7164:68::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7497:107;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13179:998;;;;;;:::i;:::-;;:::i;6677:31::-;;;;;-1:-1:-1;;;;;6677:31:130;;;14317:1554;;;;;;:::i;:::-;;:::i;7238:98::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22581:571;;;;;;:::i;:::-;;:::i;6745:41::-;;;;;-1:-1:-1;;;;;6745:41:130;;;6926:24;;;;;-1:-1:-1;;;;;6926:24:130;;;17154:229;;;;;;:::i;:::-;;:::i;15877:165::-;;;;;;:::i;:::-;-1:-1:-1;;;;;15994:30:130;;;15968:7;15994:30;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;;15877:165;6461:34;;;;;;6864:25;;;;;-1:-1:-1;;;;;6864:25:130;;;16320:313;;;;;;:::i;:::-;;:::i;7343:60::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7343:60:130;;;;;;;;;;;;;-1:-1:-1;;;;;4307:55:143;;;4289:74;;4394:2;4379:18;;4372:34;;;;4449:14;4442:22;4422:18;;;4415:50;4277:2;4262:18;7343:60:130;4093:378:143;6501:27:130;;;;;;3021:145:58;;;;;;:::i;:::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;;;;3021:145;7909:1945:130;;;;;;:::i;:::-;;:::i;9860:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;11918:25:143;;;-1:-1:-1;;;;;11979:55:143;;;11974:2;11959:18;;11952:83;11891:18;9860:341:130;11744:297:143;2042:82:130;;2090:34;2042:82;;1796:75;;1829:42;1796:75;;2153:49:58;;2198:4;2153:49;;18315:182:130;;;;;;:::i;:::-;-1:-1:-1;;;;;18423:28:130;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18315:182;6609:26;;;;;-1:-1:-1;;;;;6609:26:130;;;18138:171;;;:::i;7070:30::-;;;:::i;:::-;;;;;;;:::i;21650:453::-;;;:::i;7697:54::-;;;:::i;7037:27::-;;;:::i;10207:653::-;;;;;;:::i;:::-;;:::i;5354:147:58:-;;;;;;:::i;:::-;;:::i;6956:17:130:-;;;;;-1:-1:-1;;;;;6956:17:130;;;7642:49;;7684:7;7642:49;;6895:25;;;;;-1:-1:-1;;;;;6895:25:130;;;21512:132;;;;;;:::i;:::-;;:::i;6641:30::-;;;;;-1:-1:-1;;;;;6641:30:130;;;2732:202:58;2817:4;-1:-1:-1;;;;;;2840:47:58;;2855:32;2840:47;;:87;;-1:-1:-1;;;;;;;;;;937:40:83;;;2891:36:58;2833:94;2732:202;-1:-1:-1;;2732:202:58:o;21190:280:130:-;21258:17;:15;:17::i;:::-;7731:20;7684:7;7731:2;:20;:::i;:::-;21289:16;:26;21285:86;;;21338:22;;;;;;;;;;;;;;21285:86;21380:12;:31;;;21426:37;;689:25:143;;;21426:37:130;;677:2:143;662:18;21426:37:130;;;;;;;;21190:280;:::o;10866:1179::-;10953:34;10979:7;10953:25;:34::i;:::-;10997:30;11017:9;10997:19;:30::i;:::-;11037:29;11056:9;11037:18;:29::i;:::-;-1:-1:-1;;;;;11081:36:130;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;11077:107;;;11151:22;;;;;;;;;;;;;;11077:107;-1:-1:-1;;;;;11217:28:130;;;11194:20;11217:28;;;:19;:28;;;;;;;;;11194:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11340:19;;;;11389:9;-1:-1:-1;;;;;11374:40:130;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;;;;;;:::i;:::-;;11370:384;;11491:51;;-1:-1:-1;;;11491:51:130;;-1:-1:-1;;;;;15092:55:143;;;11491:51:130;;;15074:74:143;11540:1:130;15164:18:143;;;15157:34;11491:39:130;;;;;15047:18:143;;11491:51:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11472:70;;11370:384;;;11609:32;11578:9;-1:-1:-1;;;;;11563:40:130;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;;;;;;:::i;:::-;;11559:195;;11676:67;;-1:-1:-1;;;11676:67:130;;-1:-1:-1;;;;;15092:55:143;;;11676:67:130;;;15074:74:143;15164:18;;;15157:34;;;11676:39:130;;;;;15047:18:143;;11676:67:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11657:86;;11559:195;-1:-1:-1;;;;;11764:30:130;;;;;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;:60;;;11853:36;;;:27;:36;;;;;:47;;;;;;;;:54;;-1:-1:-1;;11853:54:130;11903:4;11853:54;;;;;;11918:27;;;:18;:27;;;;;:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11918:43:130;;;;;11977:61;;15956:34:143;;;16006:18;;15999:43;;;;16058:18;;;16051:34;;;11977:61:130;;15883:2:143;15868:18;11977:61:130;;;;;;;10943:1102;;;10866:1179;;:::o;17581:120::-;17641:17;:15;:17::i;:::-;17668:26;17684:9;17668:15;:26::i;:::-;17581:120;:::o;16639:::-;16699:17;:15;:17::i;:::-;16726:26;16739:12;16726;:26::i;12051:691::-;12140:34;12166:7;12140:25;:34::i;:::-;12184:29;12203:9;12184:18;:29::i;:::-;12223:42;12243:10;12255:9;12223:19;:42::i;:::-;-1:-1:-1;;;;;12281:36:130;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;12276:110;;12351:24;;;;;;;;;;;;;;12276:110;-1:-1:-1;;;;;12396:36:130;;;12446:5;12396:36;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;:55;;-1:-1:-1;;12396:55:130;;;12461:30;;;:21;:30;;;;;:41;;;;;;;;;:45;12516:44;12424:7;12433:9;12516:24;:44::i;:::-;12690:45;;;-1:-1:-1;;;;;16349:15:143;;;16331:34;;16401:15;;16396:2;16381:18;;16374:43;12690:45:130;;16243:18:143;12690:45:130;;;;;;;12051:691;;:::o;20416:467::-;20539:15;;20471:7;;-1:-1:-1;;;;;20539:15:130;20471:7;20634:21;7684:7;20634:3;:21;:::i;:::-;20617:12;;20595:19;;:34;;;;:::i;:::-;20594:62;;;;:::i;:::-;20565:91;-1:-1:-1;20666:24:130;20777:21;7684:7;20777:3;:21;:::i;:::-;20728:44;;-1:-1:-1;;;20728:44:130;;20766:4;20728:44;;;2686:74:143;-1:-1:-1;;;;;20728:29:130;;;;;2659:18:143;;20728:44:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20706:19;;:66;;;;:::i;:::-;20705:94;;;;:::i;:::-;20666:133;;20860:16;20839:18;20817:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;20810:66;;;;;20416:467;:::o;7409:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7409:82:130;;-1:-1:-1;7409:82:130;;-1:-1:-1;7409:82:130:o;4929:145:58:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5042:25:::1;5053:4;5059:7;5042:10;:25::i;:::-;4929:145:::0;;;:::o;21002:182:130:-;21071:17;:15;:17::i;:::-;21098:19;:32;;;21145;;689:25:143;;;21145:32:130;;677:2:143;662:18;21145:32:130;543:177:143;18503:1907:130;2261:21:68;:19;:21::i;:::-;18585:10:130::1;18567:15;18632:28:::0;;;:19:::1;:28;::::0;;;;18719:15:::1;::::0;18632:28;;-1:-1:-1;;;;;18719:15:130;;::::1;::::0;18814:21:::1;7684:7;18814:3;:21;:::i;:::-;18797:12;;18775:19;;:34;;;;:::i;:::-;18774:62;;;;:::i;:::-;18745:91:::0;-1:-1:-1;18846:24:130::1;18957:21;7684:7;18957:3;:21;:::i;:::-;18908:44;::::0;-1:-1:-1;;;18908:44:130;;18946:4:::1;18908:44;::::0;::::1;2686:74:143::0;-1:-1:-1;;;;;18908:29:130;::::1;::::0;::::1;::::0;2659:18:143;;18908:44:130::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18886:19;;:66;;;;:::i;:::-;18885:94;;;;:::i;:::-;-1:-1:-1::0;;;;;18423:28:130;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18846:133;;-1:-1:-1;18989:1415:130::1;;19027:22;::::0;::::1;:29:::0;;-1:-1:-1;;19027:29:130::1;19052:4;19027:29:::0;;::::1;::::0;;;19096:19:::1;::::0;19071:22;;::::1;:44:::0;19201:48:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19236:11:::1;::::0;19201:48:::1;::::0;;-1:-1:-1;;;;;19236:11:130::1;19201;:48::i;:::-;19264:143;19310:7;19327:4;19377:16;19356:18;19334:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;19264:11;::::0;-1:-1:-1;;;;;19264:11:130::1;::::0;:143;;:28:::1;:143::i;:::-;19758:53;;;;;;;;;;;;;;;;;::::0;19792:18:::1;19758:11;:53::i;:::-;19829:22:::0;;19825:175:::1;;19871:39;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19898:11:::1;::::0;19871:39:::1;::::0;;-1:-1:-1;;;;;19898:11:130::1;19871;:39::i;:::-;19953:11;::::0;19928::::1;::::0;:57:::1;::::0;-1:-1:-1;;;;;19928:11:130;;::::1;::::0;19953::::1;19966:18:::0;19928:24:::1;:57::i;:::-;20013:49;;;;;;;;;;;;;;;;;::::0;20045:16:::1;20013:11;:49::i;:::-;20080:20:::0;;20076:252:::1;;20120:93;;;;;;;;;;;;;;;;;;20174:14;-1:-1:-1::0;;;;;20174:36:130::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20120:11;:93::i;:::-;20231:82;20256:14;-1:-1:-1::0;;;;;20256:36:130::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20231:11;::::0;-1:-1:-1;;;;;20231:11:130::1;::::0;20296:16;20231:24:::1;:82::i;:::-;20373:19;::::0;20347:46:::1;::::0;;-1:-1:-1;;;;;15092:55:143;;15074:74;;15179:2;15164:18;;15157:34;;;;20347:46:130::1;::::0;15047:18:143;20347:46:130::1;;;;;;;18989:1415;18557:1853;;;;;2303:20:68::0;1716:1;2809:7;:22;2629:209;2303:20;18503:1907:130:o;6038:214:58:-;-1:-1:-1;;;;;6133:23:58;;734:10:80;6133:23:58;6125:83;;;;-1:-1:-1;;;6125:83:58;;17295:2:143;6125:83:58;;;17277:21:143;17334:2;17314:18;;;17307:30;17373:34;17353:18;;;17346:62;17444:17;17424:18;;;17417:45;17479:19;;6125:83:58;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;17707:240:130:-;17771:17;:15;:17::i;:::-;17798:25;17817:5;17798:18;:25::i;:::-;17833:18;:26;;-1:-1:-1;;;;;;17833:26:130;-1:-1:-1;;;;;17833:26:130;;;;;;;;;17907:11;;17874:66;;;17907:11;;;;16331:34:143;;16396:2;16381:18;;16374:43;;;;17874:66:130;;16243:18:143;17874:66:130;16096:327:143;13179:998:130;2261:21:68;:19;:21::i;:::-;13255:26:130::1;:24;:26::i;:::-;13308:10;13291:14;13364:26:::0;;;:18:::1;:26;::::0;;;;;;;13328:62;;;;;;::::1;::::0;;;;;;;;;;;;13364:26;;13328:62;;::::1;13364:26:::0;13328:62;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;13328:62:130::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;13401:24;13441:9:::0;13453:1:::1;13441:13;;13436:533;13460:16;:23;13456:1;:27;13436:533;;;13643:16;13660:1;13643:19;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;13628:72:::1;::::0;-1:-1:-1;;;13628:72:130;;-1:-1:-1;;;;;15092:55:143;;;13628:72:130::1;::::0;::::1;15074:74:143::0;15164:18;;;15157:34;;;13628:49:130;;::::1;::::0;::::1;::::0;15047:18:143;;13628:72:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13609:91:::0;-1:-1:-1;13718:21:130;;13714:229:::1;;-1:-1:-1::0;;;;;13759:29:130;::::1;;::::0;;;:21:::1;:29;::::0;;;;13789:19;;13813:16;;13759:29;13789:16;;13806:1;;13789:19;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13759:50:130::1;-1:-1:-1::0;;;;;13759:50:130::1;;;;;;;;;;;;;:70;;;;;;;:::i;:::-;;;;;;;;13847:81;;;;;;;;;;;;;;;;;::::0;13877:21:::1;:29;13899:6;-1:-1:-1::0;;;;;13877:29:130::1;-1:-1:-1::0;;;;;13877:29:130::1;;;;;;;;;;;;:50;13907:16;13924:1;13907:19;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13877:50:130::1;-1:-1:-1::0;;;;;13877:50:130::1;;;;;;;;;;;;;13847:11;:81::i;:::-;13485:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13436:533;;;-1:-1:-1::0;13979:11:130::1;::::0;:66:::1;::::0;-1:-1:-1;;;;;13979:11:130::1;14008:6:::0;14024:4:::1;14031:13:::0;13979:28:::1;:66::i;:::-;-1:-1:-1::0;;;;;14055:27:130;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:57:::0;;14099:13;;14055:27;:57:::1;::::0;14099:13;;14055:57:::1;:::i;:::-;::::0;;;-1:-1:-1;;14127:43:130::1;::::0;;-1:-1:-1;;;;;15092:55:143;;15074:74;;15179:2;15164:18;;15157:34;;;14127:43:130::1;::::0;15047:18:143;14127:43:130::1;;;;;;;;13245:932;;;2303:20:68::0;1716:1;2809:7;:22;2629:209;14317:1554:130;2261:21:68;:19;:21::i;:::-;14395:26:130::1;:24;:26::i;:::-;14448:10;14431:14;14505:26:::0;;;:18:::1;:26;::::0;;;;;;;14642:19:::1;::::0;14581::::1;:27:::0;;;;;;:40:::1;;::::0;14505:26;;14431:14;14642:19;14581:58:::1;::::0;14624:15;;14581:58:::1;:::i;:::-;:80;14577:140;;;14684:22;;;;;;;;;;;;;;14577:140;14726:11;::::0;:49:::1;::::0;-1:-1:-1;;;;;14726:11:130::1;14751:6:::0;14759:15;14726:24:::1;:49::i;:::-;14790:9;14785:951;14809:23:::0;;14805:27;::::1;14785:951;;;14853:16;14872;14889:1;14872:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14872:19:130::1;::::0;-1:-1:-1;14909:60:130::1;14872:19:::0;-1:-1:-1;;;14909:26:130::1;:60::i;:::-;14905:804;;;15008:63;::::0;;;;-1:-1:-1;;;;;15092:55:143;;;15008:63:130::1;::::0;::::1;15074:74:143::0;15164:18;;;15157:34;;;15008:38:130;::::1;::::0;::::1;::::0;15047:18:143;;15008:63:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14989:82;;15089:20;15112:21;:29;15134:6;-1:-1:-1::0;;;;;15112:29:130::1;-1:-1:-1::0;;;;;15112:29:130::1;;;;;;;;;;;;:50;15142:16;15159:1;15142:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15142:19:130::1;15112:50:::0;;;::::1;::::0;;;;;;;;;;-1:-1:-1;15184:31:130;;::::1;15180:259;;;15246:57;::::0;::::1;::::0;;::::1;::::0;::::1;18485:25:143::0;;;18526:18;;;18519:34;;;18458:18;;15246:57:130::1;18311:248:143::0;15180:259:130::1;-1:-1:-1::0;;;;;15350:29:130;::::1;;::::0;;;:21:::1;:29;::::0;;;;15380:19;;15404:16;;15350:29;15380:16;;15397:1;;15380:19;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15380:19:130::1;15350:50:::0;;;::::1;::::0;;;;;;;;:70;;:50;;15380:19;15350:70:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;14971:482:130::1;14905:804;;;15583:23:::0;;15566:16;;15583:27:::1;::::0;15609:1:::1;::::0;15583:27:::1;:::i;:::-;15566:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;15566:45:130::1;15544:16;15561:1;15544:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1::0;;;;;15544:67:130::1;;;;;-1:-1:-1::0;;;;;15544:67:130::1;;;;;;15629:16;:22;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15629:22:130;;;;;-1:-1:-1;;;;;;15629:22:130::1;::::0;;;;;15669:25:::1;15685:8:::0;15669:15:::1;:25::i;:::-;-1:-1:-1::0;14834:3:130;::::1;::::0;::::1;:::i;:::-;;;;14785:951;;;-1:-1:-1::0;;;;;;15745:27:130;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:59:::0;;15789:15;;15745:27;:59:::1;::::0;15789:15;;15745:59:::1;:::i;:::-;::::0;;;-1:-1:-1;;15819:45:130::1;::::0;;-1:-1:-1;;;;;15092:55:143;;15074:74;;15179:2;15164:18;;15157:34;;;15819:45:130::1;::::0;15047:18:143;15819:45:130::1;14892:305:143::0;22581:571:130;2261:21:68;:19;:21::i;:::-;22674:17:130::1;:15;:17::i;:::-;22706:13;::::0;::::1;;22701:68;;22742:16;;;;;;;;;;;;;;22701:68;-1:-1:-1::0;;;;;18423:28:130;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22778:75:::1;;22823:19;;-1:-1:-1::0;;;22823:19:130::1;;;;;;;;;;;22778:75;-1:-1:-1::0;;;;;22885:28:130;;::::1;22862:20;22885:28:::0;;;:19:::1;:28;::::0;;;;;;;;22862:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;::::1;;;;::::0;;;;22923:32:::1;22905:7:::0;22923:23:::1;:32::i;:::-;-1:-1:-1::0;;;;;22972:28:130;;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;22965:35;;-1:-1:-1;;;;;;22965:35:130::1;::::0;;-1:-1:-1;22965:35:130;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;22965:35:130::1;::::0;;23011:11:::1;::::0;23050:19;;::::1;::::0;23011:59;;-1:-1:-1;;;23011:59:130;;15092:55:143;;;23011:59:130::1;::::0;::::1;15074:74:143::0;15164:18;;;15157:34;;;;23011:11:130;;::::1;::::0;:20:::1;::::0;15047:18:143;;23011:59:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23125:19:130::1;::::0;;::::1;::::0;23085:60:::1;::::0;;-1:-1:-1;;;;;15974:15:143;;;15956:34;;16026:15;;16006:18;;;15999:43;;;;16058:18;;16051:34;23085:60:130::1;::::0;15883:2:143;15868:18;23085:60:130::1;;;;;;;22664:488;2303:20:68::0;1716:1;2809:7;:22;2629:209;17154:229:130;17219:17;:15;:17::i;:::-;17273:4;;:20;;-1:-1:-1;;;17273:20:130;;;;;689:25:143;;;17246:16:130;;-1:-1:-1;;;;;17273:4:130;;:12;;662:18:143;;17273:20:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17273:20:130;;;;;;;;;;;;:::i;:::-;:29;;;17246:57;;17313:28;17332:8;17313:18;:28::i;:::-;17351:25;17367:8;17351:15;:25::i;16320:313::-;16382:17;:15;:17::i;:::-;16436:4;;:20;;-1:-1:-1;;;16436:20:130;;;;;689:25:143;;;16409:16:130;;-1:-1:-1;;;;;16436:4:130;;:12;;662:18:143;;16436:20:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16436:20:130;;;;;;;;;;;;:::i;:::-;:29;;;16409:57;;16476:28;16495:8;16476:18;:28::i;:::-;16518:60;-1:-1:-1;;;;;16518:26:130;;-1:-1:-1;;;16518:26:130;:60::i;:::-;16514:113;;;16594:22;16607:8;16594:12;:22::i;7909:1945::-;7996:48;8023:6;:19;;;7996:18;:48::i;:::-;8054:39;8073:6;:19;;;8054:18;:39::i;:::-;8122:12;;8103:32;;:18;:32::i;:::-;8145:43;8164:6;:23;;;8145:18;:43::i;:::-;8198:44;8217:6;:24;;;8198:18;:44::i;:::-;8257:20;;;;:25;8253:95;;8298:39;8317:6;:19;;;8298:18;:39::i;:::-;8370:12;;8357:4;:26;;-1:-1:-1;;;;;8357:26:130;;;-1:-1:-1;;;;;;8357:26:130;;;;;;;8407:19;;;;8393:11;:33;;;;;;;;;;;8440:27;;;;8370:12;8440:32;8436:89;;8495:19;;;;;;;;;;;;;;8436:89;8556:27;;;;8534:19;:49;8608:20;;;;8593:12;:35;8654:21;;;;8638:13;:37;;-1:-1:-1;;8638:37:130;;;;;;;;;;8701:21;;;;8685:13;;:37;;:13;:37;:::i;:::-;-1:-1:-1;8751:23:130;;;;8732:16;;:42;;:16;:42;:::i;:::-;-1:-1:-1;8802:23:130;;;;8784:15;:41;;-1:-1:-1;;;;;;8784:41:130;;;-1:-1:-1;;;;;8784:41:130;;;;;;;8849:19;;;;8835:11;:33;;;;;;;;;;;;;8784:41;8898:19;;;8878:11;:40;;;;;;;;;;8947:24;;;;8928:16;:43;;;;;;;;;;;;;8982:54;;2090:34;;8982:10;:54::i;:::-;9068:4;;;;;;;;;-1:-1:-1;;;;;9068:4:130;-1:-1:-1;;;;;9068:16:130;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9047:8;:40;;-1:-1:-1;;;;;;9047:40:130;-1:-1:-1;;;;;9047:40:130;;;;;;9124:11;;:23;;;;;;;;-1:-1:-1;;9124:11:130;;;;;:21;;:23;;;;;-1:-1:-1;;9124:23:130;;;;;;;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9124:23:130;;;;;;;;;;;;:::i;:::-;9098:49;;9157:36;9210:6;:13;9226:1;9210:17;;;;:::i;:::-;9196:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9196:32:130;;9157:71;;9244:9;9239:103;9263:6;:13;9259:1;:17;9239:103;;;9322:6;9329:1;9322:9;;;;;;;;:::i;:::-;;;;;;;9297:19;9317:1;9297:22;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9297:34:130;;;:22;;;;;;;;;;;:34;9278:3;;;;:::i;:::-;;;;9239:103;;;-1:-1:-1;9414:11:130;;9372:26;;-1:-1:-1;;;;;9414:11:130;;;;9352:19;;9372:30;;9414:11;;9372:30;:::i;:::-;9352:51;;;;;;;;:::i;:::-;;;;;;:74;-1:-1:-1;;;;;9352:74:130;;;-1:-1:-1;;;;;9352:74:130;;;;;9498:4;9436:19;9485:1;9456:19;:26;:30;;;;:::i;:::-;9436:51;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9436:67:130;;;:51;;;;;;;;;:67;9615:8;;9638:13;;;;9668:16;;;;9615:106;;;;;:8;;;;;:22;;:106;;9638:13;9653;;9694:4;;9701:19;;9615:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9591:9;:130;9732:36;;;;:14;;:36;;;;;:::i;:::-;;9784:63;9804:9;;9815:13;9830:6;:16;;;9784:63;;;;;;;;:::i;:::-;;;;;;;;7986:1868;;7909:1945;:::o;9860:341::-;10093:16;;10111:10;:12;;10003:14;;;;;;10075:49;;-1:-1:-1;;;;;10093:16:130;;10003:14;10111:12;;;:::i;:::-;;;;;10075:17;:49::i;:::-;10051:73;;10141:53;10152:13;10167:6;10175:7;10184:9;10141:10;:53::i;:::-;10134:60;;;;;9860:341;;;;;;:::o;18138:171::-;18202:18;;-1:-1:-1;;;;;18202:18:130;18188:10;:32;18184:89;;18243:19;;;;;;;;;;;;;;18184:89;18282:20;:18;:20::i;7070:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21650:453::-;2261:21:68;:19;:21::i;:::-;21726:10:130::1;21746:34;21726:10:::0;21746:25:::1;:34::i;:::-;21790:32;21814:7;21790:23;:32::i;:::-;-1:-1:-1::0;;;;;21855:28:130;;::::1;21832:20;21855:28:::0;;;:19:::1;:28;::::0;;;;;;;21832:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;;::::0;;;;21900:28;;;-1:-1:-1;;;;;;21893:35:130;;::::1;::::0;;;;;;;-1:-1:-1;;21893:35:130;;::::1;::::0;;;21945:18:::1;:27:::0;;;;;21832:51;;21938:34:::1;::::0;21945:27;21938:34:::1;:::i;:::-;21983:11;::::0;22013:19:::1;::::0;::::1;::::0;21983:50:::1;::::0;-1:-1:-1;;;21983:50:130;;-1:-1:-1;;;;;15092:55:143;;;21983:50:130::1;::::0;::::1;15074:74:143::0;15164:18;;;15157:34;;;;21983:11:130;::::1;::::0;:20:::1;::::0;15047:18:143;;21983:50:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22076:19:130::1;::::0;;::::1;::::0;22048:48:::1;::::0;;-1:-1:-1;;;;;15092:55:143;;15074:74;;15164:18;;;15157:34;;;;22048:48:130::1;::::0;15047:18:143;22048:48:130::1;;;;;;;21698:405;;2303:20:68::0;1716:1;2809:7;:22;2629:209;7697:54:130;7731:20;7684:7;7731:2;:20;:::i;:::-;7697:54;:::o;7037:27::-;;;;;;;:::i;10207:653::-;10391:14;;1829:42;-1:-1:-1;;;;;10471:20:130;;;10467:65;;-1:-1:-1;10515:6:130;10467:65;10552:9;10541:20;;10572:31;10606:14;10572:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10572:48:130;;;;;;;;;;;;;;;;-1:-1:-1;;10640:4:130;;10687:9;;10708:19;;10572:48;;-1:-1:-1;;;;;;10640:4:130;;;;:33;;-1:-1:-1;10687:9:130;;-1:-1:-1;10698:8:130;;-1:-1:-1;10708:19:130;;10719:7;;10708:19;;;:::i;:::-;;;;;;;;;;;;;10729:5;10736:1;10739:9;10750:14;10640:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10631:143;;10790:63;10802:6;10810:8;10828:4;10835:6;10843:9;10790:63;;;;;;;;;;:::i;:::-;;;;;;;;10425:435;;10207:653;;;;;;;:::o;5354:147:58:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5468:26:::1;5480:4;5486:7;5468:11;:26::i;21512:132:130:-:0;-1:-1:-1;;;;;3130:29:58;;21575:4:130;3130:29:58;;;:12;;:29;:12;:29;;;;;21598:39:130;3021:145:58;3564:155:130;3650:10;3107:4:58;3130:29;;;:12;;:29;:12;:29;;;;;3614:99:130;;3684:18;;;;;;;;;;;;;;3874:156;-1:-1:-1;;;;;18423:28:130;;;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3949:75;;3994:19;;-1:-1:-1;;;3994:19:130;;;;;;;;;;;4036:162;-1:-1:-1;;;;;4112:28:130;;;;;;:17;:28;;;;;;;;4107:85;;4163:18;;;;;;;;;;;;;;17015:133;-1:-1:-1;;;;;17089:22:130;;17085:56;;17120:21;;;;;;;;;;;;;;17389:186;17452:29;17471:9;17452:18;:29::i;:::-;-1:-1:-1;;;;;17491:28:130;;17522:5;17491:28;;;:17;:28;;;;;;;;;:36;;-1:-1:-1;;17491:36:130;;;17542:26;;2686:74:143;;;17542:26:130;;2659:18:143;17542:26:130;2540:226:143;16765:244:130;-1:-1:-1;;;;;16832:31:130;;;;;;:17;:31;;;;;;;;16828:85;;;16886:16;;;;;;;;;;;;;;16828:85;-1:-1:-1;;;;;16922:31:130;;;;;;:17;:31;;;;;;;;;:38;;-1:-1:-1;;16922:38:130;16956:4;16922:38;;;16975:27;;2686:74:143;;;16975:27:130;;2659:18:143;16975:27:130;2540:226:143;4204:171:130;4307:9;-1:-1:-1;;;;;4296:20:130;:7;-1:-1:-1;;;;;4296:20:130;;4292:77;;4339:19;;;;;;;;;;;;;;12748:425;-1:-1:-1;;;;;12874:27:130;;12837:34;12874:27;;;:18;:27;;;;;;12911:256;12935:23;;12931:27;;12911:256;;;13006:9;-1:-1:-1;;;;;12983:32:130;:16;13000:1;12983:19;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12983:19:130;:32;12979:178;;13074:23;;13057:16;;13074:27;;13100:1;;13074:27;:::i;:::-;13057:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13057:45:130;13035:16;13052:1;13035:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1;;;;;13035:67:130;;;;;-1:-1:-1;;;;;13035:67:130;;;;;;13120:16;:22;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13120:22:130;;;;;-1:-1:-1;;;;;;13120:22:130;;;;;;12979:178;12960:3;;;;:::i;:::-;;;;12911:256;;;;12827:346;12748:425;;:::o;3460:103:58:-;3526:30;3537:4;734:10:80;3526::58;:30::i;7587:233::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;7665:149;;7708:12;;;;7740:4;7708:12;;;;;;;;-1:-1:-1;;;;;7708:29:58;;;;;;;;;;:36;;-1:-1:-1;;7708:36:58;;;;;;;7763:40;;734:10:80;;7708:12:58;;7763:40;;7708:12;7763:40;7587:233;;:::o;2336:287:68:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:68;;30815:2:143;2460:63:68;;;30797:21:143;30854:2;30834:18;;;30827:30;30893:33;30873:18;;;30866:61;30944:18;;2460:63:68;30613:355:143;2460:63:68;1759:1;2598:7;:18;2336:287::o;6994:145:35:-;7061:71;7124:2;7128;7077:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7077:54:35;;;;;;;;;;;;;;-1:-1:-1;;;;;7077:54:35;;;;;7061:15;:71::i;1355:203:76:-;1482:68;;-1:-1:-1;;;;;15974:15:143;;;1482:68:76;;;15956:34:143;16026:15;;16006:18;;;15999:43;16058:18;;;16051:34;;;1455:96:76;;1475:5;;1505:27;;15868:18:143;;1482:68:76;;;;-1:-1:-1;;1482:68:76;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:76;-1:-1:-1;;;;;;1482:68:76;;;;;;;;;;1455:19;:96::i;6548:139:35:-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:35;;;;;;;;;;;;;;-1:-1:-1;;;;;6628:51:35;;;;;6612:15;:68::i;941:175:76:-;1050:58;;-1:-1:-1;;;;;15092:55:143;;1050:58:76;;;15074:74:143;15164:18;;;15157:34;;;1023:86:76;;1043:5;;-1:-1:-1;;;1073:23:76;15047:18:143;;1050:58:76;14892:305:143;7991:234:58;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;8070:149;;;8144:5;8112:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8112:29:58;;;;;;;;;;:37;;-1:-1:-1;;8112:37:58;;;8168:40;734:10:80;;8112:12:58;;8168:40;;8144:5;8168:40;7991:234;;:::o;3725:143:130:-;3798:10;18371:14;18423:28;;;:19;:28;;;;;;;;;18397:54;;;;;;;;;-1:-1:-1;;;;;18397:54:130;;;;;;;;;;;;;;;;;;;;;;;;;;3784:78;;3832:19;;-1:-1:-1;;;3832:19:130;;;;;;;;;;;1349:282:84;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:84:o;22109:466:130:-;-1:-1:-1;;;;;22214:27:130;;22178:33;22214:27;;;:18;:27;;;;;;;;22178:63;;;;;;;;;;;;;;;;;;;22214:27;;22178:63;;;22214:27;22178:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22178:63:130;;;;;;;;;;;;;;;;;;;;;;;22322:9;22317:252;22341:16;:23;22337:1;:27;22317:252;;;22512:16;22529:1;22512:19;;;;;;;;:::i;:::-;;;;;;;;;;;22497:61;;;;;-1:-1:-1;;;;;2704:55:143;;;22497:61:130;;;2686:74:143;22497:52:130;;;;;;2659:18:143;;22497:61:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22366:3;;;;;:::i;:::-;;;;22317:252;;4749:279:6;4867:36;;-1:-1:-1;;4884:10:6;31791:2:143;31787:15;31783:53;4867:36:6;;;31771:66:143;31853:12;;;31846:28;;;4823:7:6;;;;31890:12:143;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;17953:179:130:-;18022:18;;;18002:11;:39;;-1:-1:-1;;;;;18022:18:130;;-1:-1:-1;;;;;;18002:39:130;;;;;;;18051:25;;;18091:34;;-1:-1:-1;2686:74:143;;18091:34:130;;2674:2:143;2659:18;18091:34:130;;;;;;;17953:179::o;3844:479:58:-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;3927:390;;4115:28;4135:7;4115:19;:28::i;:::-;4214:38;4242:4;4249:2;4214:19;:38::i;:::-;4022:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4022:252:58;;;;;;;;;;-1:-1:-1;;;3970:336:58;;;;;;;:::i;181:376:35:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;5196:642:76:-;5615:23;5641:69;5669:4;5641:69;;;;;;;;;;;;;;;;;5649:5;-1:-1:-1;;;;;5641:27:76;;;:69;;;;;:::i;:::-;5615:95;;5728:10;:17;5749:1;5728:22;:56;;;;5765:10;5754:30;;;;;;;;;;;;:::i;:::-;5720:111;;;;-1:-1:-1;;;5720:111:76;;33171:2:143;5720:111:76;;;33153:21:143;33210:2;33190:18;;;33183:30;33249:34;33229:18;;;33222:62;33320:12;33300:18;;;33293:40;33350:19;;5720:111:76;32969:406:143;704:427:84;768:4;975:68;1008:7;-1:-1:-1;;;975:32:84;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:84;1093:7;-1:-1:-1;;;;;;1060:32:84;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:84:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;33542:79:143;;4592:71:84;;;;33524:98:143;;;;4592:71:84;;;;;;;;;;33497:18:143;;;;4592:71:84;;;;;;;;;-1:-1:-1;;;;;4592:71:84;-1:-1:-1;;;4592:71:84;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:84:o;2118:794:47:-;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:47;;2847:58;;;;-1:-1:-1;;;2847:58:47;;33835:2:143;2847:58:47;;;33817:21:143;33874:2;33854:18;;;33847:30;33913:25;33893:18;;;33886:53;33956:18;;2847:58:47;33633:347:143;2407:149:82;2465:13;2497:52;-1:-1:-1;;;;;2509:22:82;;343:2;1818:437;1893:13;1918:19;1950:10;1954:6;1950:1;:10;:::i;:::-;:14;;1963:1;1950:14;:::i;:::-;1940:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:25:82;;1918:47;;1975:15;:6;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1975:15:82;;;;;;;;;2000;:6;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2000:15:82;;;;;;;;-1:-1:-1;2030:9:82;2042:10;2046:6;2042:1;:10;:::i;:::-;:14;;2055:1;2042:14;:::i;:::-;2030:26;;2025:128;2062:1;2058;:5;2025:128;;;2096:8;2105:5;2113:3;2105:11;2096:21;;;;;;;:::i;:::-;;;;2084:6;2091:1;2084:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2084:33:82;;;;;;;;-1:-1:-1;2141:1:82;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:82;;2162:55;;;;-1:-1:-1;;;2162:55:82;;34328:2:143;2162:55:82;;;34310:21:143;;;34347:18;;;34340:30;34406:34;34386:18;;;34379:62;34458:18;;2162:55:82;34126:356:143;4108:223:79;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:79;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;7851;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:79;;;8113:60;;;;-1:-1:-1;;;8113:60:79;;35388:2:143;8113:60:79;;;35370:21:143;35427:2;35407:18;;;35400:30;35466:31;35446:18;;;35439:59;35515:18;;8113:60:79;35186:353:143;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:332:143;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;-1:-1:-1;;;;;;223:5:143;219:78;212:5;209:89;199:117;;312:1;309;302:12;907:180;966:6;1019:2;1007:9;998:7;994:23;990:32;987:52;;;1035:1;1032;1025:12;987:52;-1:-1:-1;1058:23:143;;907:180;-1:-1:-1;907:180:143:o;1092:154::-;-1:-1:-1;;;;;1171:5:143;1167:54;1160:5;1157:65;1147:93;;1236:1;1233;1226:12;1251:134;1319:20;;1348:31;1319:20;1348:31;:::i;:::-;1251:134;;;:::o;1390:388::-;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1574:9;1561:23;1593:31;1618:5;1593:31;:::i;:::-;1643:5;-1:-1:-1;1700:2:143;1685:18;;1672:32;1713:33;1672:32;1713:33;:::i;:::-;1765:7;1755:17;;;1390:388;;;;;:::o;1783:247::-;1842:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:52;;;1911:1;1908;1901:12;1863:52;1950:9;1937:23;1969:31;1994:5;1969:31;:::i;2220:315::-;2288:6;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2404:9;2391:23;2423:31;2448:5;2423:31;:::i;:::-;2473:5;2525:2;2510:18;;;;2497:32;;-1:-1:-1;;;2220:315:143:o;2771:::-;2839:6;2847;2900:2;2888:9;2879:7;2875:23;2871:32;2868:52;;;2916:1;2913;2906:12;2868:52;2952:9;2939:23;2929:33;;3012:2;3001:9;2997:18;2984:32;3025:31;3050:5;3025:31;:::i;4476:184::-;-1:-1:-1;;;4525:1:143;4518:88;4625:4;4622:1;4615:15;4649:4;4646:1;4639:15;4665:257;4737:4;4731:11;;;4769:17;;4816:18;4801:34;;4837:22;;;4798:62;4795:88;;;4863:18;;:::i;:::-;4899:4;4892:24;4665:257;:::o;4927:255::-;4999:2;4993:9;5041:6;5029:19;;5078:18;5063:34;;5099:22;;;5060:62;5057:88;;;5125:18;;:::i;5187:255::-;5259:2;5253:9;5301:6;5289:19;;5338:18;5323:34;;5359:22;;;5320:62;5317:88;;;5385:18;;:::i;5447:253::-;5519:2;5513:9;5561:4;5549:17;;5596:18;5581:34;;5617:22;;;5578:62;5575:88;;;5643:18;;:::i;5705:275::-;5776:2;5770:9;5841:2;5822:13;;-1:-1:-1;;5818:27:143;5806:40;;5876:18;5861:34;;5897:22;;;5858:62;5855:88;;;5923:18;;:::i;:::-;5959:2;5952:22;5705:275;;-1:-1:-1;5705:275:143:o;5985:187::-;6034:4;6067:18;6059:6;6056:30;6053:56;;;6089:18;;:::i;:::-;-1:-1:-1;6155:2:143;6134:15;-1:-1:-1;;6130:29:143;6161:4;6126:40;;5985:187::o;6177:464::-;6220:5;6273:3;6266:4;6258:6;6254:17;6250:27;6240:55;;6291:1;6288;6281:12;6240:55;6327:6;6314:20;6358:49;6374:32;6403:2;6374:32;:::i;:::-;6358:49;:::i;:::-;6432:2;6423:7;6416:19;6478:3;6471:4;6466:2;6458:6;6454:15;6450:26;6447:35;6444:55;;;6495:1;6492;6485:12;6444:55;6560:2;6553:4;6545:6;6541:17;6534:4;6525:7;6521:18;6508:55;6608:1;6583:16;;;6601:4;6579:27;6572:38;;;;6587:7;6177:464;-1:-1:-1;;;6177:464:143:o;6646:411::-;6701:5;6749:4;6737:9;6732:3;6728:19;6724:30;6721:50;;;6767:1;6764;6757:12;6721:50;6789:22;;:::i;:::-;6780:31;;6847:9;6834:23;6827:5;6820:38;6909:2;6898:9;6894:18;6881:32;6936:18;6928:6;6925:30;6922:50;;;6968:1;6965;6958:12;6922:50;7004:46;7046:3;7037:6;7026:9;7022:22;7004:46;:::i;:::-;6999:2;6992:5;6988:14;6981:70;;6646:411;;;;:::o;7062:118::-;7148:5;7141:13;7134:21;7127:5;7124:32;7114:60;;7170:1;7167;7160:12;7185:128;7250:20;;7279:28;7250:20;7279:28;:::i;7318:1713::-;7412:6;7465:2;7453:9;7444:7;7440:23;7436:32;7433:52;;;7481:1;7478;7471:12;7433:52;7521:9;7508:23;7550:18;7591:2;7583:6;7580:14;7577:34;;;7607:1;7604;7597:12;7577:34;7630:22;;;;7686:6;7668:16;;;7664:29;7661:49;;;7706:1;7703;7696:12;7661:49;7732:22;;:::i;:::-;7777;7796:2;7777:22;:::i;:::-;7770:5;7763:37;7832:31;7859:2;7855;7851:11;7832:31;:::i;:::-;7827:2;7820:5;7816:14;7809:55;7917:2;7913;7909:11;7896:25;7891:2;7884:5;7880:14;7873:49;7975:2;7971;7967:11;7954:25;7949:2;7942:5;7938:14;7931:49;8034:3;8030:2;8026:12;8013:26;8007:3;8000:5;7996:15;7989:51;8073:32;8100:3;8096:2;8092:12;8073:32;:::i;:::-;8067:3;8060:5;8056:15;8049:57;8139:32;8166:3;8162:2;8158:12;8139:32;:::i;:::-;8133:3;8126:5;8122:15;8115:57;8218:3;8214:2;8210:12;8197:26;8248:2;8238:8;8235:16;8232:36;;;8264:1;8261;8254:12;8232:36;8301:54;8347:7;8336:8;8332:2;8328:17;8301:54;:::i;:::-;8295:3;8288:5;8284:15;8277:79;;8375:3;8410:31;8437:2;8433;8429:11;8410:31;:::i;:::-;8394:14;;;8387:55;8461:3;8502:11;;;8489:25;8526:16;;;8523:36;;;8555:1;8552;8545:12;8523:36;8591:45;8628:7;8617:8;8613:2;8609:17;8591:45;:::i;:::-;8586:2;8579:5;8575:14;8568:69;;;8656:3;8691:28;8715:2;8711;8707:11;8691:28;:::i;:::-;8675:14;;;8668:52;8739:3;8780:11;;;8767:25;8804:16;;;8801:36;;;8833:1;8830;8823:12;8801:36;8869:45;8906:7;8895:8;8891:2;8887:17;8869:45;:::i;:::-;8864:2;8857:5;8853:14;8846:69;;;8934:3;8924:13;;8969:31;8996:2;8992;8988:11;8969:31;:::i;:::-;8953:14;;;8946:55;;;;8957:5;7318:1713;-1:-1:-1;;;;7318:1713:143:o;9036:153::-;9114:20;;9163:1;9153:12;;9143:40;;9179:1;9176;9169:12;9194:110;9278:1;9271:5;9268:12;9258:40;;9294:1;9291;9284:12;9309:152;9386:20;;9415:40;9386:20;9415:40;:::i;9466:416::-;9530:5;9578:4;9566:9;9561:3;9557:19;9553:30;9550:50;;;9596:1;9593;9586:12;9550:50;9629:2;9623:9;9671:4;9663:6;9659:17;9742:6;9730:10;9727:22;9706:18;9694:10;9691:34;9688:62;9685:88;;;9753:18;;:::i;:::-;9789:2;9782:22;9852:23;;9837:39;;-1:-1:-1;9822:6:143;9466:416;-1:-1:-1;9466:416:143:o;9887:359::-;9945:5;9993:4;9981:9;9976:3;9972:19;9968:30;9965:50;;;10011:1;10008;10001:12;9965:50;10033:22;;:::i;:::-;10024:31;;10092:9;10079:23;10111:33;10136:7;10111:33;:::i;:::-;10167:7;10160:5;10153:22;;10235:2;10224:9;10220:18;10207:32;10202:2;10195:5;10191:14;10184:56;9887:359;;;;:::o;10251:865::-;10314:5;10362:6;10350:9;10345:3;10341:19;10337:32;10334:52;;;10382:1;10379;10372:12;10334:52;10404:22;;:::i;:::-;10395:31;;10449:29;10468:9;10449:29;:::i;:::-;10442:5;10435:44;10539:2;10528:9;10524:18;10511:32;10506:2;10499:5;10495:14;10488:56;10604:2;10593:9;10589:18;10576:32;10571:2;10564:5;10560:14;10553:56;10669:2;10658:9;10654:18;10641:32;10636:2;10629:5;10625:14;10618:56;10735:3;10724:9;10720:19;10707:33;10701:3;10694:5;10690:15;10683:58;10774:49;10818:3;10807:9;10803:19;10774:49;:::i;:::-;10768:3;10761:5;10757:15;10750:74;10857:48;10900:3;10889:9;10885:19;10857:48;:::i;:::-;10851:3;10844:5;10840:15;10833:73;10939:61;10996:3;10990;10979:9;10975:19;10939:61;:::i;:::-;10933:3;10926:5;10922:15;10915:86;11020:3;11055:54;11105:3;11100:2;11089:9;11085:18;11055:54;:::i;:::-;11039:14;;;11032:78;11043:5;10251:865;-1:-1:-1;;10251:865:143:o;11121:618::-;11259:6;11267;11275;11328:3;11316:9;11307:7;11303:23;11299:33;11296:53;;;11345:1;11342;11335:12;11296:53;11384:9;11371:23;11403:31;11428:5;11403:31;:::i;:::-;11453:5;-1:-1:-1;11477:63:143;11532:7;11527:2;11512:18;;11477:63;:::i;:::-;11467:73;;11591:3;11580:9;11576:19;11563:33;11619:18;11611:6;11608:30;11605:50;;;11651:1;11648;11641:12;11605:50;11674:59;11725:7;11716:6;11705:9;11701:22;11674:59;:::i;:::-;11664:69;;;11121:618;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:143;12270:16;;12263:27;12046:250::o;12301:271::-;12343:3;12381:5;12375:12;12408:6;12403:3;12396:19;12424:76;12493:6;12486:4;12481:3;12477:14;12470:4;12463:5;12459:16;12424:76;:::i;:::-;12554:2;12533:15;-1:-1:-1;;12529:29:143;12520:39;;;;12561:4;12516:50;;12301:271;-1:-1:-1;;12301:271:143:o;12577:220::-;12726:2;12715:9;12708:21;12689:4;12746:45;12787:2;12776:9;12772:18;12764:6;12746:45;:::i;12802:759::-;12949:6;12957;12965;12973;13026:3;13014:9;13005:7;13001:23;12997:33;12994:53;;;13043:1;13040;13033:12;12994:53;13082:9;13069:23;13101:31;13126:5;13101:31;:::i;:::-;13151:5;-1:-1:-1;13208:2:143;13193:18;;13180:32;13221:33;13180:32;13221:33;:::i;:::-;13273:7;-1:-1:-1;13299:63:143;13354:7;13349:2;13334:18;;13299:63;:::i;:::-;13289:73;;13413:3;13402:9;13398:19;13385:33;13441:18;13433:6;13430:30;13427:50;;;13473:1;13470;13463:12;13427:50;13496:59;13547:7;13538:6;13527:9;13523:22;13496:59;:::i;:::-;13486:69;;;12802:759;;;;;;;:::o;14059:184::-;-1:-1:-1;;;14108:1:143;14101:88;14208:4;14205:1;14198:15;14232:4;14229:1;14222:15;14248:168;14321:9;;;14352;;14369:15;;;14363:22;;14349:37;14339:71;;14390:18;;:::i;14421:184::-;-1:-1:-1;;;14470:1:143;14463:88;14570:4;14567:1;14560:15;14594:4;14591:1;14584:15;14610:277;14697:6;14750:2;14738:9;14729:7;14725:23;14721:32;14718:52;;;14766:1;14763;14756:12;14718:52;14798:9;14792:16;14817:40;14851:5;14817:40;:::i;15202:184::-;15272:6;15325:2;15313:9;15304:7;15300:23;15296:32;15293:52;;;15341:1;15338;15331:12;15293:52;-1:-1:-1;15364:16:143;;15202:184;-1:-1:-1;15202:184:143:o;16428:274::-;16468:1;16494;16484:189;;-1:-1:-1;;;16526:1:143;16519:88;16630:4;16627:1;16620:15;16658:4;16655:1;16648:15;16484:189;-1:-1:-1;16687:9:143;;16428:274::o;16707:125::-;16772:9;;;16793:10;;;16790:36;;;16806:18;;:::i;16837:251::-;16907:6;16960:2;16948:9;16939:7;16935:23;16931:32;16928:52;;;16976:1;16973;16966:12;16928:52;17008:9;17002:16;17027:31;17052:5;17027:31;:::i;17849:184::-;-1:-1:-1;;;17898:1:143;17891:88;17998:4;17995:1;17988:15;18022:4;18019:1;18012:15;18038:135;18077:3;18098:17;;;18095:43;;18118:18;;:::i;:::-;-1:-1:-1;18165:1:143;18154:13;;18038:135::o;18178:128::-;18245:9;;;18266:11;;;18263:37;;;18280:18;;:::i;18564:184::-;-1:-1:-1;;;18613:1:143;18606:88;18713:4;18710:1;18703:15;18737:4;18734:1;18727:15;18753:245;18820:6;18873:2;18861:9;18852:7;18848:23;18844:32;18841:52;;;18889:1;18886;18879:12;18841:52;18921:9;18915:16;18940:28;18962:5;18940:28;:::i;19003:1653::-;19095:6;19126:2;19169;19157:9;19148:7;19144:23;19140:32;19137:52;;;19185:1;19182;19175:12;19137:52;19218:9;19212:16;19247:18;19288:2;19280:6;19277:14;19274:34;;;19304:1;19301;19294:12;19274:34;19327:22;;;;19383:4;19365:16;;;19361:27;19358:47;;;19401:1;19398;19391:12;19358:47;19427:22;;:::i;:::-;19478:2;19472:9;19465:5;19458:24;19520:2;19516;19512:11;19506:18;19533:33;19558:7;19533:33;:::i;:::-;19582:14;;;19575:31;19644:2;19636:11;;19630:18;19657:33;19630:18;19657:33;:::i;:::-;19717:2;19706:14;;19699:31;19769:2;19761:11;;19755:18;19785:16;;;19782:36;;;19814:1;19811;19804:12;19782:36;19837:17;;19888:2;19870:16;;;19866:25;19863:45;;;19904:1;19901;19894:12;19863:45;19932:22;;:::i;:::-;19985:2;19979:9;19970:7;19963:26;20028:2;20024;20020:11;20014:18;20057:2;20047:8;20044:16;20041:36;;;20073:1;20070;20063:12;20041:36;20096:17;;;-1:-1:-1;20144:4:143;20136:13;;20132:27;-1:-1:-1;20122:55:143;;20173:1;20170;20163:12;20122:55;20202:2;20196:9;20186:19;;20227:49;20243:32;20272:2;20243:32;:::i;20227:49::-;20299:2;20292:5;20285:17;20339:7;20334:2;20329;20325;20321:11;20317:20;20314:33;20311:53;;;20360:1;20357;20350:12;20311:53;20373:67;20437:2;20432;20425:5;20421:14;20416:2;20412;20408:11;20373:67;:::i;:::-;20456:16;;;20449:31;;;;-1:-1:-1;20507:2:143;20496:14;;20489:31;;;;-1:-1:-1;20567:3:143;20559:12;;;20553:19;20536:15;;;20529:44;20620:3;20612:12;;;20606:19;20589:15;;;20582:44;20500:5;19003:1653;-1:-1:-1;;;19003:1653:143:o;20661:437::-;20740:1;20736:12;;;;20783;;;20804:61;;20858:4;20850:6;20846:17;20836:27;;20804:61;20911:2;20903:6;20900:14;20880:18;20877:38;20874:218;;-1:-1:-1;;;20945:1:143;20938:88;21049:4;21046:1;21039:15;21077:4;21074:1;21067:15;20874:218;;20661:437;;;:::o;21229:545::-;21331:2;21326:3;21323:11;21320:448;;;21367:1;21392:5;21388:2;21381:17;21437:4;21433:2;21423:19;21507:2;21495:10;21491:19;21488:1;21484:27;21478:4;21474:38;21543:4;21531:10;21528:20;21525:47;;;-1:-1:-1;21566:4:143;21525:47;21621:2;21616:3;21612:12;21609:1;21605:20;21599:4;21595:31;21585:41;;21676:82;21694:2;21687:5;21684:13;21676:82;;;21739:17;;;21720:1;21709:13;21676:82;;;21680:3;;;21229:545;;;:::o;21950:1352::-;22076:3;22070:10;22103:18;22095:6;22092:30;22089:56;;;22125:18;;:::i;:::-;22154:97;22244:6;22204:38;22236:4;22230:11;22204:38;:::i;:::-;22198:4;22154:97;:::i;:::-;22306:4;;22370:2;22359:14;;22387:1;22382:663;;;;23089:1;23106:6;23103:89;;;-1:-1:-1;23158:19:143;;;23152:26;23103:89;-1:-1:-1;;21907:1:143;21903:11;;;21899:24;21895:29;21885:40;21931:1;21927:11;;;21882:57;23205:81;;22352:944;;22382:663;21176:1;21169:14;;;21213:4;21200:18;;-1:-1:-1;;22418:20:143;;;22536:236;22550:7;22547:1;22544:14;22536:236;;;22639:19;;;22633:26;22618:42;;22731:27;;;;22699:1;22687:14;;;;22566:19;;22536:236;;;22540:3;22800:6;22791:7;22788:19;22785:201;;;22861:19;;;22855:26;-1:-1:-1;;22944:1:143;22940:14;;;22956:3;22936:24;22932:37;22928:42;22913:58;22898:74;;22785:201;-1:-1:-1;;;;;23032:1:143;23016:14;;;23012:22;22999:36;;-1:-1:-1;21950:1352:143:o;23307:1011::-;23402:6;23433:2;23476;23464:9;23455:7;23451:23;23447:32;23444:52;;;23492:1;23489;23482:12;23444:52;23525:9;23519:16;23554:18;23595:2;23587:6;23584:14;23581:34;;;23611:1;23608;23601:12;23581:34;23649:6;23638:9;23634:22;23624:32;;23694:7;23687:4;23683:2;23679:13;23675:27;23665:55;;23716:1;23713;23706:12;23665:55;23745:2;23739:9;23767:2;23763;23760:10;23757:36;;;23773:18;;:::i;:::-;23819:2;23816:1;23812:10;23802:20;;23842:28;23866:2;23862;23858:11;23842:28;:::i;:::-;23904:15;;;23974:11;;;23970:20;;;23935:12;;;;24002:19;;;23999:39;;;24034:1;24031;24024:12;23999:39;24058:11;;;;24078:210;24094:6;24089:3;24086:15;24078:210;;;24167:3;24161:10;24148:23;;24184:31;24209:5;24184:31;:::i;:::-;24228:18;;;24111:12;;;;24266;;;;24078:210;;;24307:5;23307:1011;-1:-1:-1;;;;;;;;23307:1011:143:o;24323:772::-;24373:3;24414:5;24408:12;24443:36;24469:9;24443:36;:::i;:::-;24488:19;;;24526:4;24549:1;24566:18;;;24593:146;;;;24753:1;24748:341;;;;24559:530;;24593:146;-1:-1:-1;;24635:24:143;;24621:12;;;24614:46;24707:14;;24700:22;24697:1;24693:30;24684:40;;24680:49;;;-1:-1:-1;24593:146:143;;24748:341;24779:5;24776:1;24769:16;24826:2;24823:1;24813:16;24851:1;24865:174;24879:6;24876:1;24873:13;24865:174;;;24966:14;;24948:11;;;24944:20;;24937:44;25009:16;;;;24894:10;;24865:174;;;25063:11;;25059:20;;;-1:-1:-1;;24559:530:143;;;;;;24323:772;;;;:::o;25100:252::-;25187:5;25181:12;25176:3;25169:25;25151:3;25240:4;25233:5;25229:16;25223:23;25278:4;25271;25266:3;25262:14;25255:28;25299:47;25340:4;25335:3;25331:14;25317:12;25299:47;:::i;25357:484::-;25410:3;25448:5;25442:12;25475:6;25470:3;25463:19;25501:4;25530:2;25525:3;25521:12;25514:19;;25567:2;25560:5;25556:14;25588:1;25598:218;25612:6;25609:1;25606:13;25598:218;;;25677:13;;-1:-1:-1;;;;;25673:62:143;25661:75;;25756:12;;;;25791:15;;;;25634:1;25627:9;25598:218;;;-1:-1:-1;25832:3:143;;25357:484;-1:-1:-1;;;;;25357:484:143:o;25846:827::-;26206:6;26195:9;26188:25;26249:3;26244:2;26233:9;26229:18;26222:31;26169:4;26276:54;26325:3;26314:9;26310:19;26302:6;26276:54;:::i;:::-;26378:9;26370:6;26366:22;26361:2;26350:9;26346:18;26339:50;26412:42;26447:6;26439;26412:42;:::i;:::-;26398:56;;-1:-1:-1;;;;;26494:6:143;26490:55;26485:2;26474:9;26470:18;26463:83;26595:9;26587:6;26583:22;26577:3;26566:9;26562:19;26555:51;26623:44;26660:6;26652;26623:44;:::i;26867:500::-;27121:6;27110:9;27103:25;27164:2;27159;27148:9;27144:18;27137:30;27084:4;27190:53;27239:2;27228:9;27224:18;27216:6;27190:53;:::i;:::-;27291:9;27283:6;27279:22;27274:2;27263:9;27259:18;27252:50;27319:42;27354:6;27346;27319:42;:::i;:::-;27311:50;26867:500;-1:-1:-1;;;;;;26867:500:143:o;27372:142::-;27455:1;27448:5;27445:12;27435:46;;27461:18;;:::i;:::-;27490;;27372:142::o;27820:1140::-;27982:4;28024:3;28013:9;28009:19;28001:27;;-1:-1:-1;;;;;28065:6:143;28059:13;28055:62;28044:9;28037:81;28174:4;28166:6;28162:17;28156:24;28149:4;28138:9;28134:20;28127:54;28237:4;28229:6;28225:17;28219:24;28212:4;28201:9;28197:20;28190:54;28300:4;28292:6;28288:17;28282:24;28275:4;28264:9;28260:20;28253:54;28363:4;28355:6;28351:17;28345:24;28338:4;28327:9;28323:20;28316:54;28417:4;28409:6;28405:17;28399:24;28459:1;28445:12;28442:19;28432:53;;28465:18;;:::i;:::-;28523:12;28516:4;28505:9;28501:20;28494:42;;28585:4;28577:6;28573:17;28567:24;28600:65;28659:4;28648:9;28644:20;28628:14;28600:65;:::i;:::-;;28714:4;28706:6;28702:17;28696:24;28729:73;28796:4;28785:9;28781:20;28765:14;27594:12;27582:25;;27519:90;28729:73;-1:-1:-1;28821:6:143;28864:15;;;28858:22;27695:12;;-1:-1:-1;;;;;27691:61:143;28935:18;;;27679:74;27802:4;27791:16;;27785:23;27769:14;;;27762:47;28889:65;;27820:1140;;;;:::o;28965:1002::-;29390:6;29379:9;29372:25;29353:4;-1:-1:-1;;;;;29506:2:143;29498:6;29494:15;29489:2;29478:9;29474:18;29467:43;29546:3;29541:2;29530:9;29526:18;29519:31;29573:46;29614:3;29603:9;29599:19;29591:6;29573:46;:::i;:::-;29667:2;29659:6;29655:15;29650:2;29639:9;29635:18;29628:43;29708:6;29702:3;29691:9;29687:19;29680:35;29764:9;29756:6;29752:22;29746:3;29735:9;29731:19;29724:51;29798:42;29833:6;29825;29798:42;:::i;:::-;29784:56;;;29889:9;29881:6;29877:22;29871:3;29860:9;29856:19;29849:51;29917:44;29954:6;29946;29917:44;:::i;:::-;29909:52;28965:1002;-1:-1:-1;;;;;;;;;;28965:1002:143:o;29972:636::-;30265:6;30254:9;30247:25;30228:4;-1:-1:-1;;;;;30381:2:143;30373:6;30369:15;30364:2;30353:9;30349:18;30342:43;30433:2;30425:6;30421:15;30416:2;30405:9;30401:18;30394:43;30485:2;30477:6;30473:15;30468:2;30457:9;30453:18;30446:43;;30526:3;30520;30509:9;30505:19;30498:32;30547:55;30597:3;30586:9;30582:19;30574:6;30547:55;:::i;30973:340::-;31150:2;31139:9;31132:21;31113:4;31170:45;31211:2;31200:9;31196:18;31188:6;31170:45;:::i;:::-;31162:53;;-1:-1:-1;;;;;31255:6:143;31251:55;31246:2;31235:9;31231:18;31224:83;30973:340;;;;;:::o;31318:291::-;31495:2;31484:9;31477:21;31458:4;31515:45;31556:2;31545:9;31541:18;31533:6;31515:45;:::i;:::-;31507:53;;31596:6;31591:2;31580:9;31576:18;31569:34;31318:291;;;;;:::o;32152:812::-;32563:25;32558:3;32551:38;32533:3;32618:6;32612:13;32634:75;32702:6;32697:2;32692:3;32688:12;32681:4;32673:6;32669:17;32634:75;:::i;:::-;32773:19;32768:2;32728:16;;;32760:11;;;32753:40;32818:13;;32840:76;32818:13;32902:2;32894:11;;32887:4;32875:17;;32840:76;:::i;:::-;32936:17;32955:2;32932:26;;32152:812;-1:-1:-1;;;;32152:812:143:o;33985:136::-;34024:3;34052:5;34042:39;;34061:18;;:::i;:::-;-1:-1:-1;;;34097:18:143;;33985:136::o;34894:287::-;35023:3;35061:6;35055:13;35077:66;35136:6;35131:3;35124:4;35116:6;35112:17;35077:66;:::i;:::-;35159:16;;;;;34894:287;-1:-1:-1;;34894:287:143:o","linkReferences":{}},"methodIdentifiers":{"COUNCIL_MEMBER_CHANGE()":"a0b21cdf","DEFAULT_ADMIN_ROLE()":"a217fddf","MAX_FEE()":"bc063e1a","NATIVE()":"a0cf0aea","PRECISION_SCALE()":"d7050f07","acceptCouncilSafe()":"b5058c50","activateMemberInStrategy(address,address)":"0d4a8b49","addStrategy(address)":"223e5479","addStrategyByPoolId(uint256)":"82d6a1e7","addressToMemberInfo(address)":"88cfe684","allo()":"d6d8428d","cloneNonce()":"33960459","communityFee()":"8961be6b","communityName()":"c6d572ae","councilSafe()":"6c53db9a","covenantIpfsHash()":"b64e39af","createPool(address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"9a72a86f","createPool(address,address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"c8a593e9","deactivateMemberInStrategy(address,address)":"22bcf999","decreasePower(uint256)":"5ecf71c5","enabledStrategies(address)":"3a871fe1","feeReceiver()":"b3f00674","gardenToken()":"db61d65c","getBasisStakedAmount()":"0331383c","getMemberPowerInStrategy(address,address)":"7817ee4f","getMemberStakedAmount(address)":"2c611c4a","getRoleAdmin(bytes32)":"248a9ca3","getStakeAmountWithFees()":"28c309e9","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increasePower(uint256)":"559de05d","initialize((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"96f0adec","isCouncilMember(address)":"ebd7dc52","isKickEnabled()":"1f787d28","isMember(address)":"a230c524","kickMember(address,address)":"6871eb4d","memberActivatedInStrategies(address,address)":"477a5cc0","memberPowerInStrategy(address,address)":"65e3864c","pendingCouncilSafe()":"68decabb","profileId()":"08386eba","registerStakeAmount()":"78a0b8a9","registry()":"7b103999","registryFactory()":"f86c5f89","removeStrategy(address)":"175188e8","removeStrategyByPoolId(uint256)":"73265c37","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setBasisStakedAmount(uint256)":"31f61bca","setCommunityFee(uint256)":"0d12bbdb","setCouncilSafe(address)":"397e2543","stakeAndRegisterMember()":"3517aa7d","strategiesByMember(address,uint256)":"2b38c69c","strategyTemplate()":"5c94e4d2","supportsInterface(bytes4)":"01ffc9a7","unregisterMember()":"b99b4370"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decreaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_currentPower\",\"type\":\"uint256\"}],\"name\":\"CantDecreaseMoreThanPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DecreaseUnderMinimum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KickNotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewFeeGreaterThanMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PointsDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotNewOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotStrategy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotGardenOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInCouncil\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueCannotBeZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"name\":\"AlloSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"BasisStakedAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newFee\",\"type\":\"uint256\"}],\"name\":\"CommunityFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safeOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newSafeOwner\",\"type\":\"address\"}],\"name\":\"CouncilSafeChangeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"CouncilSafeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"MemberActivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"MemberDeactivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberKicked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_unstakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_stakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"RegistryInitialized\",\"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\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNCIL_MEMBER_CHANGE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"activateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newStrategy\",\"type\":\"address\"}],\"name\":\"addStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"addStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"addressToMemberInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo\",\"outputs\":[{\"internalType\":\"contract FAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloneNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilSafe\",\"outputs\":[{\"internalType\":\"contract ISafe\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"covenantIpfsHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"deactivateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountUnstaked\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"enabledStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardenToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasisStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"getMemberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"getMemberStakedAmount\",\"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\":[],\"name\":\"getStakeAmountWithFees\",\"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\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isCouncilMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isKickEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isMember\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"}],\"name\":\"kickMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"memberActivatedInStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActivated\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"memberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingCouncilSafe\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"removeStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"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\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"setBasisStakedAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newCommunityFee\",\"type\":\"uint256\"}],\"name\":\"setCommunityFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"setCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesByMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategiesAddresses\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyTemplate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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 `account`. 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\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"RegistryCommunity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_decreaseAmount","type":"uint256"},{"internalType":"uint256","name":"_currentPower","type":"uint256"}],"type":"error","name":"CantDecreaseMoreThanPower"},{"inputs":[],"type":"error","name":"DecreaseUnderMinimum"},{"inputs":[],"type":"error","name":"KickNotEnabled"},{"inputs":[],"type":"error","name":"NewFeeGreaterThanMax"},{"inputs":[],"type":"error","name":"PointsDeactivated"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[],"type":"error","name":"SenderNotNewOwner"},{"inputs":[],"type":"error","name":"SenderNotStrategy"},{"inputs":[],"type":"error","name":"StrategyDisabled"},{"inputs":[],"type":"error","name":"StrategyExists"},{"inputs":[],"type":"error","name":"UserAlreadyActivated"},{"inputs":[],"type":"error","name":"UserAlreadyDeactivated"},{"inputs":[],"type":"error","name":"UserAlreadyRegistered"},{"inputs":[],"type":"error","name":"UserNotGardenOwner"},{"inputs":[],"type":"error","name":"UserNotInCouncil"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ValueCannotBeZero"},{"inputs":[{"internalType":"address","name":"_allo","type":"address","indexed":false}],"type":"event","name":"AlloSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256","indexed":false}],"type":"event","name":"BasisStakedAmountSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256","indexed":false}],"type":"event","name":"CommunityFeeUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_safeOwner","type":"address","indexed":false},{"internalType":"address","name":"_newSafeOwner","type":"address","indexed":false}],"type":"event","name":"CouncilSafeChangeStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"_safe","type":"address","indexed":false}],"type":"event","name":"CouncilSafeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"uint256","name":"_pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"MemberActivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"MemberDeactivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_transferAddress","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberKicked","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_unstakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_stakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountStaked","type":"uint256","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32","indexed":false},{"internalType":"string","name":"_communityName","type":"string","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"RegistryInitialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNCIL_MEMBER_CHANGE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptCouncilSafe"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"activateMemberInStrategy"},{"inputs":[{"internalType":"address","name":"_newStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addStrategyByPoolId"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"addressToMemberInfo","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"bool","name":"isRegistered","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allo","outputs":[{"internalType":"contract FAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"cloneNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"councilSafe","outputs":[{"internalType":"contract ISafe","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"covenantIpfsHash","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivateMemberInStrategy"},{"inputs":[{"internalType":"uint256","name":"_amountUnstaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower"},{"inputs":[{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"enabledStrategies","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardenToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasisStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberPowerInStrategy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeAmountWithFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_amountStaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower"},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isCouncilMember","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isKickEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMember","outputs":[{"internalType":"bool","name":"_isMember","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_transferAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"kickMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"memberActivatedInStrategies","outputs":[{"internalType":"bool","name":"isActivated","type":"bool"}]},{"inputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"memberPowerInStrategy","outputs":[{"internalType":"uint256","name":"power","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingCouncilSafe","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registerStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategyByPoolId"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBasisStakedAmount"},{"inputs":[{"internalType":"uint256","name":"_newCommunityFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityFee"},{"inputs":[{"internalType":"address payable","name":"_safe","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCouncilSafe"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stakeAndRegisterMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"strategiesByMember","outputs":[{"internalType":"address","name":"strategiesAddresses","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategyTemplate","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"}],"devdoc":{"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 `account`. 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":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"RegistryCommunity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":56055,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":55017,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"_roles","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_struct(RoleData)55012_storage)"},{"astId":76127,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"isKickEnabled","offset":0,"slot":"2","type":"t_bool"},{"astId":76129,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registerStakeAmount","offset":0,"slot":"3","type":"t_uint256"},{"astId":76131,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"communityFee","offset":0,"slot":"4","type":"t_uint256"},{"astId":76133,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"profileId","offset":0,"slot":"5","type":"t_bytes32"},{"astId":76135,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"feeReceiver","offset":0,"slot":"6","type":"t_address"},{"astId":76137,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registryFactory","offset":0,"slot":"7","type":"t_address"},{"astId":76139,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"strategyTemplate","offset":0,"slot":"8","type":"t_address"},{"astId":76141,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"cloneNonce","offset":0,"slot":"9","type":"t_uint256"},{"astId":76143,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"pendingCouncilSafe","offset":0,"slot":"10","type":"t_address_payable"},{"astId":76146,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registry","offset":0,"slot":"11","type":"t_contract(IRegistry)2802"},{"astId":76149,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"gardenToken","offset":0,"slot":"12","type":"t_contract(IERC20)56900"},{"astId":76152,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"councilSafe","offset":0,"slot":"13","type":"t_contract(ISafe)75578"},{"astId":76155,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"allo","offset":0,"slot":"14","type":"t_contract(FAllo)75832"},{"astId":76157,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"communityName","offset":0,"slot":"15","type":"t_string_storage"},{"astId":76159,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"covenantIpfsHash","offset":0,"slot":"16","type":"t_string_storage"},{"astId":76163,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"enabledStrategies","offset":0,"slot":"17","type":"t_mapping(t_address,t_bool)"},{"astId":76169,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"memberPowerInStrategy","offset":0,"slot":"18","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":76174,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"addressToMemberInfo","offset":0,"slot":"19","type":"t_mapping(t_address,t_struct(Member)76092_storage)"},{"astId":76179,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"strategiesByMember","offset":0,"slot":"20","type":"t_mapping(t_address,t_array(t_address)dyn_storage)"},{"astId":76185,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"memberActivatedInStrategies","offset":0,"slot":"21","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":76188,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"initialMembers","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(FAllo)75832":{"encoding":"inplace","label":"contract FAllo","numberOfBytes":"20"},"t_contract(IERC20)56900":{"encoding":"inplace","label":"contract IERC20","numberOfBytes":"20"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(ISafe)75578":{"encoding":"inplace","label":"contract ISafe","numberOfBytes":"20"},"t_mapping(t_address,t_array(t_address)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address[])","numberOfBytes":"32","value":"t_array(t_address)dyn_storage"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Member)76092_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryCommunity.Member)","numberOfBytes":"32","value":"t_struct(Member)76092_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)55012_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)55012_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Member)76092_storage":{"encoding":"inplace","label":"struct RegistryCommunity.Member","numberOfBytes":"96","members":[{"astId":76087,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"member","offset":0,"slot":"0","type":"t_address"},{"astId":76089,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"stakedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":76091,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"isRegistered","offset":0,"slot":"2","type":"t_bool"}]},"t_struct(RoleData)55012_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","numberOfBytes":"64","members":[{"astId":55009,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":55011,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","id":77693,"exportedSymbols":{"AccessControl":[55308],"CVStrategy":[75569],"Clone":[3002],"ERC165Checker":[58299],"FAllo":[75832],"IAllo":[2610],"IERC20":[56900],"IPointStrategy":[72801],"IRegistry":[2802],"ISafe":[75578],"Metadata":[3098],"ReentrancyGuard":[56109],"RegistryCommunity":[77692],"RegistryFactory":[77928],"SafeERC20":[57337],"StrategyStruct":[72892],"console":[29549]},"nodeType":"SourceUnit","src":"42:23113:130","nodes":[{"id":75771,"nodeType":"PragmaDirective","src":"42:24:130","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75773,"nodeType":"ImportDirective","src":"68:70:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":56901,"symbolAliases":[{"foreign":{"id":75772,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"76:6:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75775,"nodeType":"ImportDirective","src":"139:79:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":55309,"symbolAliases":[{"foreign":{"id":75774,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55308,"src":"147:13:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75777,"nodeType":"ImportDirective","src":"219:82:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":57338,"symbolAliases":[{"foreign":{"id":75776,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57337,"src":"227:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75779,"nodeType":"ImportDirective","src":"302:85:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":56110,"symbolAliases":[{"foreign":{"id":75778,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56109,"src":"310:15:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75782,"nodeType":"ImportDirective","src":"518:84:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":75780,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"526:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75781,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"537:8:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75784,"nodeType":"ImportDirective","src":"603:66:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":75783,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"611:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75786,"nodeType":"ImportDirective","src":"670:54:130","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":77929,"symbolAliases":[{"foreign":{"id":75785,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"678:15:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75788,"nodeType":"ImportDirective","src":"725:34:130","nodes":[],"absolutePath":"pkg/contracts/src/ISafe.sol","file":"./ISafe.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":75579,"symbolAliases":[{"foreign":{"id":75787,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75578,"src":"733:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75789,"nodeType":"ImportDirective","src":"819:31:130","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":75791,"nodeType":"ImportDirective","src":"851:92:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":58300,"symbolAliases":[{"foreign":{"id":75790,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58299,"src":"859:13:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75795,"nodeType":"ImportDirective","src":"945:76:130","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":75570,"symbolAliases":[{"foreign":{"id":75792,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"953:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75793,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75569,"src":"969:10:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75794,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"981:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75797,"nodeType":"ImportDirective","src":"1023:65:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":77693,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":75796,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"1031:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75832,"nodeType":"ContractDefinition","src":"1161:467:130","nodes":[{"id":75818,"nodeType":"FunctionDefinition","src":"1183:301:130","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"1192:28:130","parameters":{"id":75814,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75799,"mutability":"mutable","name":"_profileId","nameLocation":"1238:10:130","nodeType":"VariableDeclaration","scope":75818,"src":"1230:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75798,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1230:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75801,"mutability":"mutable","name":"_strategy","nameLocation":"1266:9:130","nodeType":"VariableDeclaration","scope":75818,"src":"1258:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75800,"name":"address","nodeType":"ElementaryTypeName","src":"1258:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75803,"mutability":"mutable","name":"_initStrategyData","nameLocation":"1298:17:130","nodeType":"VariableDeclaration","scope":75818,"src":"1285:30:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75802,"name":"bytes","nodeType":"ElementaryTypeName","src":"1285:5:130","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75805,"mutability":"mutable","name":"_token","nameLocation":"1333:6:130","nodeType":"VariableDeclaration","scope":75818,"src":"1325:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75804,"name":"address","nodeType":"ElementaryTypeName","src":"1325:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75807,"mutability":"mutable","name":"_amount","nameLocation":"1357:7:130","nodeType":"VariableDeclaration","scope":75818,"src":"1349:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75806,"name":"uint256","nodeType":"ElementaryTypeName","src":"1349:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75810,"mutability":"mutable","name":"_metadata","nameLocation":"1390:9:130","nodeType":"VariableDeclaration","scope":75818,"src":"1374:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75809,"nodeType":"UserDefinedTypeName","pathNode":{"id":75808,"name":"Metadata","nameLocations":["1374:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1374:8:130"},"referencedDeclaration":3098,"src":"1374:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":75813,"mutability":"mutable","name":"_managers","nameLocation":"1426:9:130","nodeType":"VariableDeclaration","scope":75818,"src":"1409:26:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75811,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75812,"nodeType":"ArrayTypeName","src":"1409:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1220:221:130"},"returnParameters":{"id":75817,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75816,"mutability":"mutable","name":"poolId","nameLocation":"1476:6:130","nodeType":"VariableDeclaration","scope":75818,"src":"1468:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75815,"name":"uint256","nodeType":"ElementaryTypeName","src":"1468:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1467:16:130"},"scope":75832,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75823,"nodeType":"FunctionDefinition","src":"1490:55:130","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1499:11:130","parameters":{"id":75819,"nodeType":"ParameterList","parameters":[],"src":"1510:2:130"},"returnParameters":{"id":75822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75823,"src":"1536:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75820,"name":"address","nodeType":"ElementaryTypeName","src":"1536:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1535:9:130"},"scope":75832,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75831,"nodeType":"FunctionDefinition","src":"1550:76:130","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"1559:7:130","parameters":{"id":75826,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75825,"mutability":"mutable","name":"_poolId","nameLocation":"1575:7:130","nodeType":"VariableDeclaration","scope":75831,"src":"1567:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75824,"name":"uint256","nodeType":"ElementaryTypeName","src":"1567:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1566:17:130"},"returnParameters":{"id":75830,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75829,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75831,"src":"1607:17:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":75828,"nodeType":"UserDefinedTypeName","pathNode":{"id":75827,"name":"IAllo.Pool","nameLocations":["1607:5:130","1613:4:130"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"1607:10:130"},"referencedDeclaration":2319,"src":"1607:10:130","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"1606:19:130"},"scope":75832,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[75832],"name":"FAllo","nameLocation":"1171:5:130","scope":77693,"usedErrors":[]},{"id":77692,"nodeType":"ContractDefinition","src":"1630:21524:130","nodes":[{"id":75839,"nodeType":"UsingForDirective","src":"1697:32:130","nodes":[],"global":false,"libraryName":{"id":75837,"name":"ERC165Checker","nameLocations":["1703:13:130"],"nodeType":"IdentifierPath","referencedDeclaration":58299,"src":"1703:13:130"},"typeName":{"id":75838,"name":"address","nodeType":"ElementaryTypeName","src":"1721:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75843,"nodeType":"UsingForDirective","src":"1734:27:130","nodes":[],"global":false,"libraryName":{"id":75840,"name":"SafeERC20","nameLocations":["1740:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":57337,"src":"1740:9:130"},"typeName":{"id":75842,"nodeType":"UserDefinedTypeName","pathNode":{"id":75841,"name":"IERC20","nameLocations":["1754:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1754:6:130"},"referencedDeclaration":56900,"src":"1754:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}},{"id":75846,"nodeType":"UsingForDirective","src":"1766:24:130","nodes":[],"global":false,"libraryName":{"id":75844,"name":"Clone","nameLocations":["1772:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1772:5:130"},"typeName":{"id":75845,"name":"address","nodeType":"ElementaryTypeName","src":"1782:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75849,"nodeType":"VariableDeclaration","src":"1796:75:130","nodes":[],"constant":true,"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1820:6:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75847,"name":"address","nodeType":"ElementaryTypeName","src":"1796:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":75848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1829:42:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":75854,"nodeType":"VariableDeclaration","src":"2042:82:130","nodes":[],"constant":true,"functionSelector":"a0b21cdf","mutability":"constant","name":"COUNCIL_MEMBER_CHANGE","nameLocation":"2066:21:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75850,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2042:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d4245525f4348414e4745","id":75852,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2100:23:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""},"value":"COUNCIL_MEMBER_CHANGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""}],"id":75851,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2090:9:130","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75853,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2090:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":75858,"nodeType":"EventDefinition","src":"2296:29:130","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"2302:7:130","parameters":{"id":75857,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75856,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"2318:5:130","nodeType":"VariableDeclaration","scope":75858,"src":"2310:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75855,"name":"address","nodeType":"ElementaryTypeName","src":"2310:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2309:15:130"}},{"id":75862,"nodeType":"EventDefinition","src":"2330:36:130","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"2336:14:130","parameters":{"id":75861,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75860,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"2359:5:130","nodeType":"VariableDeclaration","scope":75862,"src":"2351:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75859,"name":"address","nodeType":"ElementaryTypeName","src":"2351:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2350:15:130"}},{"id":75868,"nodeType":"EventDefinition","src":"2371:74:130","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"2377:24:130","parameters":{"id":75867,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75864,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"2410:10:130","nodeType":"VariableDeclaration","scope":75868,"src":"2402:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75863,"name":"address","nodeType":"ElementaryTypeName","src":"2402:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75866,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"2430:13:130","nodeType":"VariableDeclaration","scope":75868,"src":"2422:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75865,"name":"address","nodeType":"ElementaryTypeName","src":"2422:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2401:43:130"}},{"id":75874,"nodeType":"EventDefinition","src":"2450:63:130","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"2456:16:130","parameters":{"id":75873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75870,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2481:7:130","nodeType":"VariableDeclaration","scope":75874,"src":"2473:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75869,"name":"address","nodeType":"ElementaryTypeName","src":"2473:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75872,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"2498:13:130","nodeType":"VariableDeclaration","scope":75874,"src":"2490:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75871,"name":"uint256","nodeType":"ElementaryTypeName","src":"2490:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2472:40:130"}},{"id":75880,"nodeType":"EventDefinition","src":"2518:67:130","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"2524:18:130","parameters":{"id":75879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75876,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2551:7:130","nodeType":"VariableDeclaration","scope":75880,"src":"2543:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75875,"name":"address","nodeType":"ElementaryTypeName","src":"2543:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75878,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2568:15:130","nodeType":"VariableDeclaration","scope":75880,"src":"2560:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75877,"name":"uint256","nodeType":"ElementaryTypeName","src":"2560:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2542:42:130"}},{"id":75888,"nodeType":"EventDefinition","src":"2590:87:130","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"2596:12:130","parameters":{"id":75887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75882,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2617:7:130","nodeType":"VariableDeclaration","scope":75888,"src":"2609:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75881,"name":"address","nodeType":"ElementaryTypeName","src":"2609:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75884,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"2634:16:130","nodeType":"VariableDeclaration","scope":75888,"src":"2626:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75883,"name":"address","nodeType":"ElementaryTypeName","src":"2626:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75886,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2660:15:130","nodeType":"VariableDeclaration","scope":75888,"src":"2652:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75885,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2608:68:130"}},{"id":75892,"nodeType":"EventDefinition","src":"2682:43:130","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"2688:19:130","parameters":{"id":75891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75890,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"2716:7:130","nodeType":"VariableDeclaration","scope":75892,"src":"2708:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75889,"name":"uint256","nodeType":"ElementaryTypeName","src":"2708:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2707:17:130"}},{"id":75901,"nodeType":"EventDefinition","src":"2730:89:130","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"2736:19:130","parameters":{"id":75900,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75894,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"2764:10:130","nodeType":"VariableDeclaration","scope":75901,"src":"2756:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75893,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2756:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75896,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"2783:14:130","nodeType":"VariableDeclaration","scope":75901,"src":"2776:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75895,"name":"string","nodeType":"ElementaryTypeName","src":"2776:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75899,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"2808:9:130","nodeType":"VariableDeclaration","scope":75901,"src":"2799:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75898,"nodeType":"UserDefinedTypeName","pathNode":{"id":75897,"name":"Metadata","nameLocations":["2799:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"2799:8:130"},"referencedDeclaration":3098,"src":"2799:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"2755:63:130"}},{"id":75905,"nodeType":"EventDefinition","src":"2824:39:130","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"2830:13:130","parameters":{"id":75904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75903,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2852:9:130","nodeType":"VariableDeclaration","scope":75905,"src":"2844:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75902,"name":"address","nodeType":"ElementaryTypeName","src":"2844:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2843:19:130"}},{"id":75909,"nodeType":"EventDefinition","src":"2868:41:130","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"2874:15:130","parameters":{"id":75908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75907,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2898:9:130","nodeType":"VariableDeclaration","scope":75909,"src":"2890:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75906,"name":"address","nodeType":"ElementaryTypeName","src":"2890:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2889:19:130"}},{"id":75917,"nodeType":"EventDefinition","src":"2914:93:130","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"2920:23:130","parameters":{"id":75916,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75911,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2952:7:130","nodeType":"VariableDeclaration","scope":75917,"src":"2944:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75910,"name":"address","nodeType":"ElementaryTypeName","src":"2944:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75913,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2969:9:130","nodeType":"VariableDeclaration","scope":75917,"src":"2961:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75912,"name":"address","nodeType":"ElementaryTypeName","src":"2961:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75915,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"2988:17:130","nodeType":"VariableDeclaration","scope":75917,"src":"2980:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75914,"name":"uint256","nodeType":"ElementaryTypeName","src":"2980:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2943:63:130"}},{"id":75923,"nodeType":"EventDefinition","src":"3012:68:130","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"3018:25:130","parameters":{"id":75922,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75919,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3052:7:130","nodeType":"VariableDeclaration","scope":75923,"src":"3044:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75918,"name":"address","nodeType":"ElementaryTypeName","src":"3044:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75921,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3069:9:130","nodeType":"VariableDeclaration","scope":75923,"src":"3061:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75920,"name":"address","nodeType":"ElementaryTypeName","src":"3061:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3043:36:130"}},{"id":75927,"nodeType":"EventDefinition","src":"3085:47:130","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"3091:20:130","parameters":{"id":75926,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75925,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"3120:10:130","nodeType":"VariableDeclaration","scope":75927,"src":"3112:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75924,"name":"uint256","nodeType":"ElementaryTypeName","src":"3112:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3111:20:130"}},{"id":75933,"nodeType":"EventDefinition","src":"3137:67:130","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"3143:20:130","parameters":{"id":75932,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75929,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3172:7:130","nodeType":"VariableDeclaration","scope":75933,"src":"3164:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75928,"name":"address","nodeType":"ElementaryTypeName","src":"3164:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75931,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"3189:13:130","nodeType":"VariableDeclaration","scope":75933,"src":"3181:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75930,"name":"uint256","nodeType":"ElementaryTypeName","src":"3181:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3163:40:130"}},{"id":75939,"nodeType":"EventDefinition","src":"3209:69:130","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"3215:20:130","parameters":{"id":75938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75935,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3244:7:130","nodeType":"VariableDeclaration","scope":75939,"src":"3236:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75934,"name":"address","nodeType":"ElementaryTypeName","src":"3236:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75937,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"3261:15:130","nodeType":"VariableDeclaration","scope":75939,"src":"3253:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75936,"name":"uint256","nodeType":"ElementaryTypeName","src":"3253:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3235:42:130"}},{"id":75952,"nodeType":"EventDefinition","src":"3283:110:130","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"3289:11:130","parameters":{"id":75951,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75941,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"3309:7:130","nodeType":"VariableDeclaration","scope":75952,"src":"3301:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75940,"name":"uint256","nodeType":"ElementaryTypeName","src":"3301:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75943,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3326:9:130","nodeType":"VariableDeclaration","scope":75952,"src":"3318:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75942,"name":"address","nodeType":"ElementaryTypeName","src":"3318:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75945,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"3345:10:130","nodeType":"VariableDeclaration","scope":75952,"src":"3337:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75944,"name":"address","nodeType":"ElementaryTypeName","src":"3337:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75947,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"3365:6:130","nodeType":"VariableDeclaration","scope":75952,"src":"3357:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75946,"name":"address","nodeType":"ElementaryTypeName","src":"3357:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75950,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"3382:9:130","nodeType":"VariableDeclaration","scope":75952,"src":"3373:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75949,"nodeType":"UserDefinedTypeName","pathNode":{"id":75948,"name":"Metadata","nameLocations":["3373:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"3373:8:130"},"referencedDeclaration":3098,"src":"3373:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"3300:92:130"}},{"id":75967,"nodeType":"FunctionDefinition","src":"3564:155:130","nodes":[],"body":{"id":75966,"nodeType":"Block","src":"3604:115:130","nodes":[],"statements":[{"condition":{"id":75960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3618:43:130","subExpression":{"arguments":[{"id":75956,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"3627:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75957,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3650:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3654:6:130","memberName":"sender","nodeType":"MemberAccess","src":"3650:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75955,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"3619:7:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3619:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75965,"nodeType":"IfStatement","src":"3614:99:130","trueBody":{"id":75964,"nodeType":"Block","src":"3663:50:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75961,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76051,"src":"3684:16:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75962,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3684:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75963,"nodeType":"RevertStatement","src":"3677:25:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"3573:15:130","parameters":{"id":75953,"nodeType":"ParameterList","parameters":[],"src":"3588:2:130"},"returnParameters":{"id":75954,"nodeType":"ParameterList","parameters":[],"src":"3604:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75981,"nodeType":"FunctionDefinition","src":"3725:143:130","nodes":[],"body":{"id":75980,"nodeType":"Block","src":"3774:94:130","nodes":[],"statements":[{"condition":{"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3788:21:130","subExpression":{"arguments":[{"expression":{"id":75971,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3798:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3802:6:130","memberName":"sender","nodeType":"MemberAccess","src":"3798:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75970,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"3789:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75973,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3789:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75979,"nodeType":"IfStatement","src":"3784:78:130","trueBody":{"id":75978,"nodeType":"Block","src":"3811:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75975,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"3832:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3832:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75977,"nodeType":"RevertStatement","src":"3825:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"3734:24:130","parameters":{"id":75968,"nodeType":"ParameterList","parameters":[],"src":"3758:2:130"},"returnParameters":{"id":75969,"nodeType":"ParameterList","parameters":[],"src":"3774:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75996,"nodeType":"FunctionDefinition","src":"3874:156:130","nodes":[],"body":{"id":75995,"nodeType":"Block","src":"3939:91:130","nodes":[],"statements":[{"condition":{"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3953:18:130","subExpression":{"arguments":[{"id":75987,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75983,"src":"3963:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75986,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"3954:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3954:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75994,"nodeType":"IfStatement","src":"3949:75:130","trueBody":{"id":75993,"nodeType":"Block","src":"3973:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75990,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"3994:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3994:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75992,"nodeType":"RevertStatement","src":"3987:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"3883:25:130","parameters":{"id":75984,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75983,"mutability":"mutable","name":"_sender","nameLocation":"3917:7:130","nodeType":"VariableDeclaration","scope":75996,"src":"3909:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75982,"name":"address","nodeType":"ElementaryTypeName","src":"3909:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3908:17:130"},"returnParameters":{"id":75985,"nodeType":"ParameterList","parameters":[],"src":"3939:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76011,"nodeType":"FunctionDefinition","src":"4036:162:130","nodes":[],"body":{"id":76010,"nodeType":"Block","src":"4097:101:130","nodes":[],"statements":[{"condition":{"id":76004,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4111:29:130","subExpression":{"baseExpression":{"id":76001,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"4112:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76003,"indexExpression":{"id":76002,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75998,"src":"4130:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4112:28:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76009,"nodeType":"IfStatement","src":"4107:85:130","trueBody":{"id":76008,"nodeType":"Block","src":"4142:50:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76005,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76065,"src":"4163:16:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4163:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76007,"nodeType":"RevertStatement","src":"4156:25:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"4045:19:130","parameters":{"id":75999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75998,"mutability":"mutable","name":"_strategy","nameLocation":"4073:9:130","nodeType":"VariableDeclaration","scope":76011,"src":"4065:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75997,"name":"address","nodeType":"ElementaryTypeName","src":"4065:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4064:19:130"},"returnParameters":{"id":76000,"nodeType":"ParameterList","parameters":[],"src":"4097:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76027,"nodeType":"FunctionDefinition","src":"4204:171:130","nodes":[],"body":{"id":76026,"nodeType":"Block","src":"4282:93:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76020,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76018,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76013,"src":"4296:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76019,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76015,"src":"4307:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4296:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76025,"nodeType":"IfStatement","src":"4292:77:130","trueBody":{"id":76024,"nodeType":"Block","src":"4318:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76021,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76069,"src":"4339:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76022,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4339:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76023,"nodeType":"RevertStatement","src":"4332:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"4213:19:130","parameters":{"id":76016,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76013,"mutability":"mutable","name":"_sender","nameLocation":"4241:7:130","nodeType":"VariableDeclaration","scope":76027,"src":"4233:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76012,"name":"address","nodeType":"ElementaryTypeName","src":"4233:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76015,"mutability":"mutable","name":"_strategy","nameLocation":"4258:9:130","nodeType":"VariableDeclaration","scope":76027,"src":"4250:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76014,"name":"address","nodeType":"ElementaryTypeName","src":"4250:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4232:36:130"},"returnParameters":{"id":76017,"nodeType":"ParameterList","parameters":[],"src":"4282:0:130"},"scope":77692,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76045,"nodeType":"FunctionDefinition","src":"4381:189:130","nodes":[],"body":{"id":76044,"nodeType":"Block","src":"4446:124:130","nodes":[],"statements":[{"condition":{"id":76038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4460:51:130","subExpression":{"baseExpression":{"baseExpression":{"id":76032,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"4461:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76035,"indexExpression":{"expression":{"id":76033,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4489:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76034,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4493:6:130","memberName":"sender","nodeType":"MemberAccess","src":"4489:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:39:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76037,"indexExpression":{"id":76036,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76029,"src":"4501:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4461:50:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76043,"nodeType":"IfStatement","src":"4456:108:130","trueBody":{"id":76042,"nodeType":"Block","src":"4513:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76039,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76077,"src":"4534:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76040,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4534:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76041,"nodeType":"RevertStatement","src":"4527:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"4390:23:130","parameters":{"id":76030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76029,"mutability":"mutable","name":"_strategy","nameLocation":"4422:9:130","nodeType":"VariableDeclaration","scope":76045,"src":"4414:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76028,"name":"address","nodeType":"ElementaryTypeName","src":"4414:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4413:19:130"},"returnParameters":{"id":76031,"nodeType":"ParameterList","parameters":[],"src":"4446:0:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76047,"nodeType":"ErrorDefinition","src":"4742:28:130","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"4748:19:130","parameters":{"id":76046,"nodeType":"ParameterList","parameters":[],"src":"4767:2:130"}},{"id":76049,"nodeType":"ErrorDefinition","src":"4775:29:130","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"4781:20:130","parameters":{"id":76048,"nodeType":"ParameterList","parameters":[],"src":"4801:2:130"}},{"id":76051,"nodeType":"ErrorDefinition","src":"4809:25:130","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"4815:16:130","parameters":{"id":76050,"nodeType":"ParameterList","parameters":[],"src":"4831:2:130"}},{"id":76053,"nodeType":"ErrorDefinition","src":"4839:26:130","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"4845:17:130","parameters":{"id":76052,"nodeType":"ParameterList","parameters":[],"src":"4862:2:130"}},{"id":76055,"nodeType":"ErrorDefinition","src":"4870:30:130","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"4876:21:130","parameters":{"id":76054,"nodeType":"ParameterList","parameters":[],"src":"4897:2:130"}},{"id":76057,"nodeType":"ErrorDefinition","src":"4905:27:130","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"4911:18:130","parameters":{"id":76056,"nodeType":"ParameterList","parameters":[],"src":"4929:2:130"}},{"id":76059,"nodeType":"ErrorDefinition","src":"4937:29:130","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"4943:20:130","parameters":{"id":76058,"nodeType":"ParameterList","parameters":[],"src":"4963:2:130"}},{"id":76061,"nodeType":"ErrorDefinition","src":"4971:31:130","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"4977:22:130","parameters":{"id":76060,"nodeType":"ParameterList","parameters":[],"src":"4999:2:130"}},{"id":76063,"nodeType":"ErrorDefinition","src":"5007:23:130","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"5013:14:130","parameters":{"id":76062,"nodeType":"ParameterList","parameters":[],"src":"5027:2:130"}},{"id":76065,"nodeType":"ErrorDefinition","src":"5035:25:130","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"5041:16:130","parameters":{"id":76064,"nodeType":"ParameterList","parameters":[],"src":"5057:2:130"}},{"id":76067,"nodeType":"ErrorDefinition","src":"5065:26:130","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"5071:17:130","parameters":{"id":76066,"nodeType":"ParameterList","parameters":[],"src":"5088:2:130"}},{"id":76069,"nodeType":"ErrorDefinition","src":"5096:26:130","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"5102:17:130","parameters":{"id":76068,"nodeType":"ParameterList","parameters":[],"src":"5119:2:130"}},{"id":76071,"nodeType":"ErrorDefinition","src":"5127:26:130","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"5133:17:130","parameters":{"id":76070,"nodeType":"ParameterList","parameters":[],"src":"5150:2:130"}},{"id":76073,"nodeType":"ErrorDefinition","src":"5158:29:130","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"5164:20:130","parameters":{"id":76072,"nodeType":"ParameterList","parameters":[],"src":"5184:2:130"}},{"id":76075,"nodeType":"ErrorDefinition","src":"5192:23:130","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"5198:14:130","parameters":{"id":76074,"nodeType":"ParameterList","parameters":[],"src":"5212:2:130"}},{"id":76077,"nodeType":"ErrorDefinition","src":"5220:26:130","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"5226:17:130","parameters":{"id":76076,"nodeType":"ParameterList","parameters":[],"src":"5243:2:130"}},{"id":76079,"nodeType":"ErrorDefinition","src":"5251:29:130","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"5257:20:130","parameters":{"id":76078,"nodeType":"ParameterList","parameters":[],"src":"5277:2:130"}},{"id":76085,"nodeType":"ErrorDefinition","src":"5285:80:130","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"5291:25:130","parameters":{"id":76084,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76081,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"5325:15:130","nodeType":"VariableDeclaration","scope":76085,"src":"5317:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76080,"name":"uint256","nodeType":"ElementaryTypeName","src":"5317:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76083,"mutability":"mutable","name":"_currentPower","nameLocation":"5350:13:130","nodeType":"VariableDeclaration","scope":76085,"src":"5342:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76082,"name":"uint256","nodeType":"ElementaryTypeName","src":"5342:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5316:48:130"}},{"id":76092,"nodeType":"StructDefinition","src":"5536:102:130","nodes":[],"canonicalName":"RegistryCommunity.Member","members":[{"constant":false,"id":76087,"mutability":"mutable","name":"member","nameLocation":"5568:6:130","nodeType":"VariableDeclaration","scope":76092,"src":"5560:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76086,"name":"address","nodeType":"ElementaryTypeName","src":"5560:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76089,"mutability":"mutable","name":"stakedAmount","nameLocation":"5592:12:130","nodeType":"VariableDeclaration","scope":76092,"src":"5584:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76088,"name":"uint256","nodeType":"ElementaryTypeName","src":"5584:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76091,"mutability":"mutable","name":"isRegistered","nameLocation":"5619:12:130","nodeType":"VariableDeclaration","scope":76092,"src":"5614:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76090,"name":"bool","nodeType":"ElementaryTypeName","src":"5614:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"5543:6:130","scope":77692,"visibility":"public"},{"id":76096,"nodeType":"StructDefinition","src":"5644:55:130","nodes":[],"canonicalName":"RegistryCommunity.Strategies","members":[{"constant":false,"id":76095,"mutability":"mutable","name":"strategies","nameLocation":"5682:10:130","nodeType":"VariableDeclaration","scope":76096,"src":"5672:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76093,"name":"address","nodeType":"ElementaryTypeName","src":"5672:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76094,"nodeType":"ArrayTypeName","src":"5672:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"5651:10:130","scope":77692,"visibility":"public"},{"id":76125,"nodeType":"StructDefinition","src":"5705:490:130","nodes":[],"canonicalName":"RegistryCommunity.InitializeParams","members":[{"constant":false,"id":76098,"mutability":"mutable","name":"_allo","nameLocation":"5747:5:130","nodeType":"VariableDeclaration","scope":76125,"src":"5739:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76097,"name":"address","nodeType":"ElementaryTypeName","src":"5739:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76101,"mutability":"mutable","name":"_gardenToken","nameLocation":"5769:12:130","nodeType":"VariableDeclaration","scope":76125,"src":"5762:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76100,"nodeType":"UserDefinedTypeName","pathNode":{"id":76099,"name":"IERC20","nameLocations":["5762:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"5762:6:130"},"referencedDeclaration":56900,"src":"5762:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":76103,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"5799:20:130","nodeType":"VariableDeclaration","scope":76125,"src":"5791:28:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76102,"name":"uint256","nodeType":"ElementaryTypeName","src":"5791:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76105,"mutability":"mutable","name":"_communityFee","nameLocation":"5837:13:130","nodeType":"VariableDeclaration","scope":76125,"src":"5829:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76104,"name":"uint256","nodeType":"ElementaryTypeName","src":"5829:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76107,"mutability":"mutable","name":"_nonce","nameLocation":"5924:6:130","nodeType":"VariableDeclaration","scope":76125,"src":"5916:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76106,"name":"uint256","nodeType":"ElementaryTypeName","src":"5916:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76109,"mutability":"mutable","name":"_registryFactory","nameLocation":"5948:16:130","nodeType":"VariableDeclaration","scope":76125,"src":"5940:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76108,"name":"address","nodeType":"ElementaryTypeName","src":"5940:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76111,"mutability":"mutable","name":"_feeReceiver","nameLocation":"5982:12:130","nodeType":"VariableDeclaration","scope":76125,"src":"5974:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76110,"name":"address","nodeType":"ElementaryTypeName","src":"5974:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76114,"mutability":"mutable","name":"_metadata","nameLocation":"6013:9:130","nodeType":"VariableDeclaration","scope":76125,"src":"6004:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":76113,"nodeType":"UserDefinedTypeName","pathNode":{"id":76112,"name":"Metadata","nameLocations":["6004:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6004:8:130"},"referencedDeclaration":3098,"src":"6004:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76116,"mutability":"mutable","name":"_councilSafe","nameLocation":"6048:12:130","nodeType":"VariableDeclaration","scope":76125,"src":"6032:28:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76115,"name":"address","nodeType":"ElementaryTypeName","src":"6032:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":76118,"mutability":"mutable","name":"_communityName","nameLocation":"6077:14:130","nodeType":"VariableDeclaration","scope":76125,"src":"6070:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76117,"name":"string","nodeType":"ElementaryTypeName","src":"6070:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76120,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"6106:14:130","nodeType":"VariableDeclaration","scope":76125,"src":"6101:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76119,"name":"bool","nodeType":"ElementaryTypeName","src":"6101:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":76122,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"6137:16:130","nodeType":"VariableDeclaration","scope":76125,"src":"6130:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76121,"name":"string","nodeType":"ElementaryTypeName","src":"6130:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76124,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"6171:17:130","nodeType":"VariableDeclaration","scope":76125,"src":"6163:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76123,"name":"address","nodeType":"ElementaryTypeName","src":"6163:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"5712:16:130","scope":77692,"visibility":"public"},{"id":76127,"nodeType":"VariableDeclaration","src":"6292:25:130","nodes":[],"constant":false,"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"6304:13:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76126,"name":"bool","nodeType":"ElementaryTypeName","src":"6292:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76129,"nodeType":"VariableDeclaration","src":"6461:34:130","nodes":[],"constant":false,"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"6476:19:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76128,"name":"uint256","nodeType":"ElementaryTypeName","src":"6461:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76131,"nodeType":"VariableDeclaration","src":"6501:27:130","nodes":[],"constant":false,"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"6516:12:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76130,"name":"uint256","nodeType":"ElementaryTypeName","src":"6501:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76133,"nodeType":"VariableDeclaration","src":"6534:24:130","nodes":[],"constant":false,"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"6549:9:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76132,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6534:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76135,"nodeType":"VariableDeclaration","src":"6609:26:130","nodes":[],"constant":false,"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"6624:11:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76134,"name":"address","nodeType":"ElementaryTypeName","src":"6609:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76137,"nodeType":"VariableDeclaration","src":"6641:30:130","nodes":[],"constant":false,"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"6656:15:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76136,"name":"address","nodeType":"ElementaryTypeName","src":"6641:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76139,"nodeType":"VariableDeclaration","src":"6677:31:130","nodes":[],"constant":false,"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"6692:16:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76138,"name":"address","nodeType":"ElementaryTypeName","src":"6677:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76141,"nodeType":"VariableDeclaration","src":"6714:25:130","nodes":[],"constant":false,"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"6729:10:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76140,"name":"uint256","nodeType":"ElementaryTypeName","src":"6714:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76143,"nodeType":"VariableDeclaration","src":"6745:41:130","nodes":[],"constant":false,"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"6768:18:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76142,"name":"address","nodeType":"ElementaryTypeName","src":"6745:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":76146,"nodeType":"VariableDeclaration","src":"6864:25:130","nodes":[],"constant":false,"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"6881:8:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":76145,"nodeType":"UserDefinedTypeName","pathNode":{"id":76144,"name":"IRegistry","nameLocations":["6864:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6864:9:130"},"referencedDeclaration":2802,"src":"6864:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":76149,"nodeType":"VariableDeclaration","src":"6895:25:130","nodes":[],"constant":false,"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"6909:11:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76148,"nodeType":"UserDefinedTypeName","pathNode":{"id":76147,"name":"IERC20","nameLocations":["6895:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"6895:6:130"},"referencedDeclaration":56900,"src":"6895:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"public"},{"id":76152,"nodeType":"VariableDeclaration","src":"6926:24:130","nodes":[],"constant":false,"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"6939:11:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"},"typeName":{"id":76151,"nodeType":"UserDefinedTypeName","pathNode":{"id":76150,"name":"ISafe","nameLocations":["6926:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":75578,"src":"6926:5:130"},"referencedDeclaration":75578,"src":"6926:5:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"visibility":"public"},{"id":76155,"nodeType":"VariableDeclaration","src":"6956:17:130","nodes":[],"constant":false,"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"6969:4:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"},"typeName":{"id":76154,"nodeType":"UserDefinedTypeName","pathNode":{"id":76153,"name":"FAllo","nameLocations":["6956:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":75832,"src":"6956:5:130"},"referencedDeclaration":75832,"src":"6956:5:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"visibility":"public"},{"id":76157,"nodeType":"VariableDeclaration","src":"7037:27:130","nodes":[],"constant":false,"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"7051:13:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76156,"name":"string","nodeType":"ElementaryTypeName","src":"7037:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76159,"nodeType":"VariableDeclaration","src":"7070:30:130","nodes":[],"constant":false,"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"7084:16:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76158,"name":"string","nodeType":"ElementaryTypeName","src":"7070:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76163,"nodeType":"VariableDeclaration","src":"7164:68:130","nodes":[],"constant":false,"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"7215:17:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":76162,"keyName":"strategy","keyNameLocation":"7180:8:130","keyType":{"id":76160,"name":"address","nodeType":"ElementaryTypeName","src":"7172:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7164:43:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"7197:9:130","valueType":{"id":76161,"name":"bool","nodeType":"ElementaryTypeName","src":"7192:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":76169,"nodeType":"VariableDeclaration","src":"7238:98:130","nodes":[],"constant":false,"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"7315:21:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":76168,"keyName":"strategy","keyNameLocation":"7254:8:130","keyType":{"id":76164,"name":"address","nodeType":"ElementaryTypeName","src":"7246:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7238:69:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76167,"keyName":"member","keyNameLocation":"7282:6:130","keyType":{"id":76165,"name":"address","nodeType":"ElementaryTypeName","src":"7274:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7266:40:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"7300:5:130","valueType":{"id":76166,"name":"uint256","nodeType":"ElementaryTypeName","src":"7292:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":76174,"nodeType":"VariableDeclaration","src":"7343:60:130","nodes":[],"constant":false,"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"7384:19:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"typeName":{"id":76173,"keyName":"member","keyNameLocation":"7359:6:130","keyType":{"id":76170,"name":"address","nodeType":"ElementaryTypeName","src":"7351:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7343:33:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76172,"nodeType":"UserDefinedTypeName","pathNode":{"id":76171,"name":"Member","nameLocations":["7369:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"7369:6:130"},"referencedDeclaration":76092,"src":"7369:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}}},"visibility":"public"},{"id":76179,"nodeType":"VariableDeclaration","src":"7409:82:130","nodes":[],"constant":false,"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"7473:18:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":76178,"keyName":"member","keyNameLocation":"7425:6:130","keyType":{"id":76175,"name":"address","nodeType":"ElementaryTypeName","src":"7417:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7409:56:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"7445:19:130","valueType":{"baseType":{"id":76176,"name":"address","nodeType":"ElementaryTypeName","src":"7435:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76177,"nodeType":"ArrayTypeName","src":"7435:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":76185,"nodeType":"VariableDeclaration","src":"7497:107:130","nodes":[],"constant":false,"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"7577:27:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":76184,"keyName":"member","keyNameLocation":"7513:6:130","keyType":{"id":76180,"name":"address","nodeType":"ElementaryTypeName","src":"7505:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7497:72:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76183,"keyName":"strategy","keyNameLocation":"7539:8:130","keyType":{"id":76181,"name":"address","nodeType":"ElementaryTypeName","src":"7531:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7523:45:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"7556:11:130","valueType":{"id":76182,"name":"bool","nodeType":"ElementaryTypeName","src":"7551:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":76188,"nodeType":"VariableDeclaration","src":"7611:24:130","nodes":[],"constant":false,"mutability":"mutable","name":"initialMembers","nameLocation":"7621:14:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":76186,"name":"address","nodeType":"ElementaryTypeName","src":"7611:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76187,"nodeType":"ArrayTypeName","src":"7611:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":76193,"nodeType":"VariableDeclaration","src":"7642:49:130","nodes":[],"constant":true,"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"7666:15:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76189,"name":"uint256","nodeType":"ElementaryTypeName","src":"7642:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":76192,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76190,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7684:2:130","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":76191,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7690:1:130","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7684:7:130","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":76198,"nodeType":"VariableDeclaration","src":"7697:54:130","nodes":[],"constant":true,"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"7721:7:130","scope":77692,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76194,"name":"uint256","nodeType":"ElementaryTypeName","src":"7697:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76197,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7731:2:130","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":76196,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"7736:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7731:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76207,"nodeType":"FunctionDefinition","src":"7758:145:130","nodes":[],"body":{"id":76206,"nodeType":"Block","src":"7772:131:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":76202,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"7854:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76203,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55020,"src":"7877:18:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76201,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55244,"src":"7840:13:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":76204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7840:56:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76205,"nodeType":"ExpressionStatement","src":"7840:56:130"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76199,"nodeType":"ParameterList","parameters":[],"src":"7769:2:130"},"returnParameters":{"id":76200,"nodeType":"ParameterList","parameters":[],"src":"7772:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76430,"nodeType":"FunctionDefinition","src":"7909:1945:130","nodes":[],"body":{"id":76429,"nodeType":"Block","src":"7986:1868:130","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76216,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8023:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76217,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8030:12:130","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76101,"src":"8023:19:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":76215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8015:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76214,"name":"address","nodeType":"ElementaryTypeName","src":"8015:7:130","typeDescriptions":{}}},"id":76218,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8015:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76213,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"7996:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7996:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76220,"nodeType":"ExpressionStatement","src":"7996:48:130"},{"expression":{"arguments":[{"expression":{"id":76222,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8073:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76223,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8080:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76116,"src":"8073:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76221,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8054:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76224,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8054:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76225,"nodeType":"ExpressionStatement","src":"8054:39:130"},{"expression":{"arguments":[{"expression":{"id":76227,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8122:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76228,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8129:5:130","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76098,"src":"8122:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76226,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8103:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8103:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76230,"nodeType":"ExpressionStatement","src":"8103:32:130"},{"expression":{"arguments":[{"expression":{"id":76232,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8164:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76233,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8171:16:130","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76109,"src":"8164:23:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76231,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8145:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8145:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76235,"nodeType":"ExpressionStatement","src":"8145:43:130"},{"expression":{"arguments":[{"expression":{"id":76237,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8217:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8224:17:130","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76124,"src":"8217:24:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76236,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8198:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8198:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76240,"nodeType":"ExpressionStatement","src":"8198:44:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76241,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8257:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76242,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8264:13:130","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76105,"src":"8257:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76243,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8281:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8257:25:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76251,"nodeType":"IfStatement","src":"8253:95:130","trueBody":{"id":76250,"nodeType":"Block","src":"8284:64:130","statements":[{"expression":{"arguments":[{"expression":{"id":76246,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8317:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76247,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8324:12:130","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76111,"src":"8317:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76245,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"8298:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8298:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76249,"nodeType":"ExpressionStatement","src":"8298:39:130"}]}},{"expression":{"id":76257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76252,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"8357:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76254,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8370:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76255,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8377:5:130","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76098,"src":"8370:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76253,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75832,"src":"8364:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$75832_$","typeString":"type(contract FAllo)"}},"id":76256,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8364:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"src":"8357:26:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":76258,"nodeType":"ExpressionStatement","src":"8357:26:130"},{"expression":{"id":76262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76259,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"8393:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76260,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8407:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76261,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8414:12:130","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76101,"src":"8407:19:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"src":"8393:33:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76263,"nodeType":"ExpressionStatement","src":"8393:33:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76264,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8440:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76265,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8447:20:130","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76103,"src":"8440:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8471:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8440:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76272,"nodeType":"IfStatement","src":"8436:89:130","trueBody":{"id":76271,"nodeType":"Block","src":"8474:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76268,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76071,"src":"8495:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8495:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76270,"nodeType":"RevertStatement","src":"8488:26:130"}]}},{"expression":{"id":76276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76273,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"8534:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76274,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8556:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76275,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8563:20:130","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76103,"src":"8556:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8534:49:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76277,"nodeType":"ExpressionStatement","src":"8534:49:130"},{"expression":{"id":76281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76278,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"8593:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76279,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8608:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76280,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8615:13:130","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76105,"src":"8608:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8593:35:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76282,"nodeType":"ExpressionStatement","src":"8593:35:130"},{"expression":{"id":76286,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76283,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76127,"src":"8638:13:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76284,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8654:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76285,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8661:14:130","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":76120,"src":"8654:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8638:37:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76287,"nodeType":"ExpressionStatement","src":"8638:37:130"},{"expression":{"id":76291,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76288,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"8685:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76289,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8701:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76290,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8708:14:130","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":76118,"src":"8701:21:130","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8685:37:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76292,"nodeType":"ExpressionStatement","src":"8685:37:130"},{"expression":{"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76293,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76159,"src":"8732:16:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76294,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8751:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76295,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8758:16:130","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":76122,"src":"8751:23:130","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8732:42:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76297,"nodeType":"ExpressionStatement","src":"8732:42:130"},{"expression":{"id":76301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76298,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"8784:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8802:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8809:16:130","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76109,"src":"8802:23:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8784:41:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76302,"nodeType":"ExpressionStatement","src":"8784:41:130"},{"expression":{"id":76306,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76303,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"8835:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76304,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8849:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76305,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8856:12:130","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76111,"src":"8849:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8835:33:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76307,"nodeType":"ExpressionStatement","src":"8835:33:130"},{"expression":{"id":76313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76308,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"8878:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76310,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8898:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76311,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8905:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76116,"src":"8898:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76309,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75578,"src":"8892:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75578_$","typeString":"type(contract ISafe)"}},"id":76312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8892:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"src":"8878:40:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"id":76314,"nodeType":"ExpressionStatement","src":"8878:40:130"},{"expression":{"id":76318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76315,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76139,"src":"8928:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76316,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"8947:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76317,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8954:17:130","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76124,"src":"8947:24:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8928:43:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76319,"nodeType":"ExpressionStatement","src":"8928:43:130"},{"expression":{"arguments":[{"id":76321,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"8993:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76322,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9016:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76323,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9023:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76116,"src":"9016:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76320,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55276,"src":"8982:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8982:54:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76325,"nodeType":"ExpressionStatement","src":"8982:54:130"},{"expression":{"id":76332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76326,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"9047:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76328,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"9068:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":76329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9073:11:130","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":75823,"src":"9068:16:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76330,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9068:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76327,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"9058:9:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":76331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9058:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"9047:40:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76333,"nodeType":"ExpressionStatement","src":"9047:40:130"},{"assignments":[76338],"declarations":[{"constant":false,"id":76338,"mutability":"mutable","name":"owners","nameLocation":"9115:6:130","nodeType":"VariableDeclaration","scope":76429,"src":"9098:23:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76336,"name":"address","nodeType":"ElementaryTypeName","src":"9098:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76337,"nodeType":"ArrayTypeName","src":"9098:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76342,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76339,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"9124:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"id":76340,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9136:9:130","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":75577,"src":"9124:21:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":76341,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9124:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9098:49:130"},{"assignments":[76347],"declarations":[{"constant":false,"id":76347,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"9174:19:130","nodeType":"VariableDeclaration","scope":76429,"src":"9157:36:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76345,"name":"address","nodeType":"ElementaryTypeName","src":"9157:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76346,"nodeType":"ArrayTypeName","src":"9157:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76356,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76351,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"9210:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76352,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9217:6:130","memberName":"length","nodeType":"MemberAccess","src":"9210:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":76353,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9226:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9210:17:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76350,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9196:13:130","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76348,"name":"address","nodeType":"ElementaryTypeName","src":"9200:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76349,"nodeType":"ArrayTypeName","src":"9200:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9196:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9157:71:130"},{"body":{"id":76376,"nodeType":"Block","src":"9283:59:130","statements":[{"expression":{"id":76374,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76368,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9297:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76370,"indexExpression":{"id":76369,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9317:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9297:22:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76371,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"9322:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76373,"indexExpression":{"id":76372,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9329:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9322:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9297:34:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76375,"nodeType":"ExpressionStatement","src":"9297:34:130"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76361,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9259:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76362,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76338,"src":"9263:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9270:6:130","memberName":"length","nodeType":"MemberAccess","src":"9263:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9259:17:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76377,"initializationExpression":{"assignments":[76358],"declarations":[{"constant":false,"id":76358,"mutability":"mutable","name":"i","nameLocation":"9252:1:130","nodeType":"VariableDeclaration","scope":76377,"src":"9244:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76357,"name":"uint256","nodeType":"ElementaryTypeName","src":"9244:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76360,"initialValue":{"hexValue":"30","id":76359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9256:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9244:13:130"},"loopExpression":{"expression":{"id":76366,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9278:3:130","subExpression":{"id":76365,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76358,"src":"9278:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76367,"nodeType":"ExpressionStatement","src":"9278:3:130"},"nodeType":"ForStatement","src":"9239:103:130"},{"expression":{"id":76388,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76378,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9352:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76383,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76382,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76379,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9372:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9392:6:130","memberName":"length","nodeType":"MemberAccess","src":"9372:26:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9401:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9372:30:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9352:51:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76386,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"9414:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}],"id":76385,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9406:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76384,"name":"address","nodeType":"ElementaryTypeName","src":"9406:7:130","typeDescriptions":{}}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9406:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9352:74:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76389,"nodeType":"ExpressionStatement","src":"9352:74:130"},{"expression":{"id":76400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76390,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9436:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76395,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76391,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9456:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9476:6:130","memberName":"length","nodeType":"MemberAccess","src":"9456:26:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":76393,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9485:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9456:30:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9436:51:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76398,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9498:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76397,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9490:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76396,"name":"address","nodeType":"ElementaryTypeName","src":"9490:7:130","typeDescriptions":{}}},"id":76399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9490:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9436:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76401,"nodeType":"ExpressionStatement","src":"9436:67:130"},{"expression":{"id":76416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76402,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"9591:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76405,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9638:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76406,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9645:6:130","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"9638:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76407,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"9653:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9668:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9675:9:130","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76114,"src":"9668:16:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":76412,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9694:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76411,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9686:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76410,"name":"address","nodeType":"ElementaryTypeName","src":"9686:7:130","typeDescriptions":{}}},"id":76413,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9686:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76414,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9701:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76403,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"9615:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9624:13:130","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"9615:22:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":76415,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9615:106:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9591:130:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76417,"nodeType":"ExpressionStatement","src":"9591:130:130"},{"expression":{"id":76420,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76418,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"9732:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76419,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76347,"src":"9749:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"9732:36:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76421,"nodeType":"ExpressionStatement","src":"9732:36:130"},{"eventCall":{"arguments":[{"id":76423,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"9804:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76424,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"9815:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76425,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76210,"src":"9830:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76426,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9837:9:130","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76114,"src":"9830:16:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76422,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75901,"src":"9784:19:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":76427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9784:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76428,"nodeType":"EmitStatement","src":"9779:68:130"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7918:10:130","parameters":{"id":76211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76210,"mutability":"mutable","name":"params","nameLocation":"7971:6:130","nodeType":"VariableDeclaration","scope":76430,"src":"7929:48:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":76209,"nodeType":"UserDefinedTypeName","pathNode":{"id":76208,"name":"RegistryCommunity.InitializeParams","nameLocations":["7929:17:130","7947:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":76125,"src":"7929:34:130"},"referencedDeclaration":76125,"src":"7929:34:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"7928:50:130"},"returnParameters":{"id":76212,"nodeType":"ParameterList","parameters":[],"src":"7986:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76462,"nodeType":"FunctionDefinition","src":"9860:341:130","nodes":[],"body":{"id":76461,"nodeType":"Block","src":"10041:160:130","nodes":[],"statements":[{"assignments":[76446],"declarations":[{"constant":false,"id":76446,"mutability":"mutable","name":"strategyClone","nameLocation":"10059:13:130","nodeType":"VariableDeclaration","scope":76461,"src":"10051:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76445,"name":"address","nodeType":"ElementaryTypeName","src":"10051:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76453,"initialValue":{"arguments":[{"id":76449,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76139,"src":"10093:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76451,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10111:12:130","subExpression":{"id":76450,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76141,"src":"10111:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76447,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"10075:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":76448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10081:11:130","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"10075:17:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":76452,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10075:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10051:73:130"},{"expression":{"arguments":[{"id":76455,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76446,"src":"10152:13:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76456,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76432,"src":"10167:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76457,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76435,"src":"10175:7:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":76458,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76438,"src":"10184:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76454,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[76462,76534],"referencedDeclaration":76534,"src":"10141:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$72891_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":76459,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10141:53:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":76444,"id":76460,"nodeType":"Return","src":"10134:60:130"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"9869:10:130","parameters":{"id":76439,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76432,"mutability":"mutable","name":"_token","nameLocation":"9888:6:130","nodeType":"VariableDeclaration","scope":76462,"src":"9880:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76431,"name":"address","nodeType":"ElementaryTypeName","src":"9880:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76435,"mutability":"mutable","name":"_params","nameLocation":"9935:7:130","nodeType":"VariableDeclaration","scope":76462,"src":"9896:46:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76434,"nodeType":"UserDefinedTypeName","pathNode":{"id":76433,"name":"StrategyStruct.InitializeParams","nameLocations":["9896:14:130","9911:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"9896:31:130"},"referencedDeclaration":72891,"src":"9896:31:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76438,"mutability":"mutable","name":"_metadata","nameLocation":"9960:9:130","nodeType":"VariableDeclaration","scope":76462,"src":"9944:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76437,"nodeType":"UserDefinedTypeName","pathNode":{"id":76436,"name":"Metadata","nameLocations":["9944:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9944:8:130"},"referencedDeclaration":3098,"src":"9944:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"9879:91:130"},"returnParameters":{"id":76444,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76441,"mutability":"mutable","name":"poolId","nameLocation":"10011:6:130","nodeType":"VariableDeclaration","scope":76462,"src":"10003:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76440,"name":"uint256","nodeType":"ElementaryTypeName","src":"10003:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76443,"mutability":"mutable","name":"strategy","nameLocation":"10027:8:130","nodeType":"VariableDeclaration","scope":76462,"src":"10019:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76442,"name":"address","nodeType":"ElementaryTypeName","src":"10019:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10002:34:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76534,"nodeType":"FunctionDefinition","src":"10207:653:130","nodes":[],"body":{"id":76533,"nodeType":"Block","src":"10425:435:130","nodes":[],"statements":[{"assignments":[76480],"declarations":[{"constant":false,"id":76480,"mutability":"mutable","name":"token","nameLocation":"10443:5:130","nodeType":"VariableDeclaration","scope":76533,"src":"10435:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76479,"name":"address","nodeType":"ElementaryTypeName","src":"10435:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76482,"initialValue":{"id":76481,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75849,"src":"10451:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10435:22:130"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76488,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76483,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"10471:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76486,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10489:1:130","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":76485,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10481:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76484,"name":"address","nodeType":"ElementaryTypeName","src":"10481:7:130","typeDescriptions":{}}},"id":76487,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10481:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10471:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76494,"nodeType":"IfStatement","src":"10467:65:130","trueBody":{"id":76493,"nodeType":"Block","src":"10493:39:130","statements":[{"expression":{"id":76491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76489,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"10507:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76490,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"10515:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10507:14:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76492,"nodeType":"ExpressionStatement","src":"10507:14:130"}]}},{"expression":{"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76495,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"src":"10541:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76496,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76464,"src":"10552:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10541:20:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76498,"nodeType":"ExpressionStatement","src":"10541:20:130"},{"assignments":[76503],"declarations":[{"constant":false,"id":76503,"mutability":"mutable","name":"_pool_managers","nameLocation":"10589:14:130","nodeType":"VariableDeclaration","scope":76533,"src":"10572:31:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76501,"name":"address","nodeType":"ElementaryTypeName","src":"10572:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76502,"nodeType":"ArrayTypeName","src":"10572:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76505,"initialValue":{"id":76504,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76188,"src":"10606:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10572:48:130"},{"expression":{"id":76520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76506,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76475,"src":"10631:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76509,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76133,"src":"10687:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76510,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"src":"10698:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76513,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76469,"src":"10719:7:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":76511,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10708:3:130","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76512,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10712:6:130","memberName":"encode","nodeType":"MemberAccess","src":"10708:10:130","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10708:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76515,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76480,"src":"10729:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76516,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10736:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":76517,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76472,"src":"10739:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":76518,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76503,"src":"10750:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76507,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"10640:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":76508,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10645:28:130","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":75818,"src":"10640:33:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":76519,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10640:134:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10631:143:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76521,"nodeType":"ExpressionStatement","src":"10631:143:130"},{"eventCall":{"arguments":[{"id":76523,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76475,"src":"10802:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76524,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76477,"src":"10810:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76527,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10828:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76526,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10820:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76525,"name":"address","nodeType":"ElementaryTypeName","src":"10820:7:130","typeDescriptions":{}}},"id":76528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10820:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76529,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76466,"src":"10835:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76530,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76472,"src":"10843:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76522,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75952,"src":"10790:11:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":76531,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10790:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76532,"nodeType":"EmitStatement","src":"10785:68:130"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"10216:10:130","parameters":{"id":76473,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76464,"mutability":"mutable","name":"_strategy","nameLocation":"10244:9:130","nodeType":"VariableDeclaration","scope":76534,"src":"10236:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76463,"name":"address","nodeType":"ElementaryTypeName","src":"10236:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76466,"mutability":"mutable","name":"_token","nameLocation":"10271:6:130","nodeType":"VariableDeclaration","scope":76534,"src":"10263:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76465,"name":"address","nodeType":"ElementaryTypeName","src":"10263:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76469,"mutability":"mutable","name":"_params","nameLocation":"10326:7:130","nodeType":"VariableDeclaration","scope":76534,"src":"10287:46:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76468,"nodeType":"UserDefinedTypeName","pathNode":{"id":76467,"name":"StrategyStruct.InitializeParams","nameLocations":["10287:14:130","10302:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":72891,"src":"10287:31:130"},"referencedDeclaration":72891,"src":"10287:31:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72891_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76472,"mutability":"mutable","name":"_metadata","nameLocation":"10359:9:130","nodeType":"VariableDeclaration","scope":76534,"src":"10343:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76471,"nodeType":"UserDefinedTypeName","pathNode":{"id":76470,"name":"Metadata","nameLocations":["10343:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10343:8:130"},"referencedDeclaration":3098,"src":"10343:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10226:148:130"},"returnParameters":{"id":76478,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76475,"mutability":"mutable","name":"poolId","nameLocation":"10399:6:130","nodeType":"VariableDeclaration","scope":76534,"src":"10391:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76474,"name":"uint256","nodeType":"ElementaryTypeName","src":"10391:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76477,"mutability":"mutable","name":"strategy","nameLocation":"10415:8:130","nodeType":"VariableDeclaration","scope":76534,"src":"10407:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76476,"name":"address","nodeType":"ElementaryTypeName","src":"10407:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10390:34:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76651,"nodeType":"FunctionDefinition","src":"10866:1179:130","nodes":[],"body":{"id":76650,"nodeType":"Block","src":"10943:1102:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":76542,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"10979:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76541,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"10953:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10953:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76544,"nodeType":"ExpressionStatement","src":"10953:34:130"},{"expression":{"arguments":[{"id":76546,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11017:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76545,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76011,"src":"10997:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76547,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10997:30:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76548,"nodeType":"ExpressionStatement","src":"10997:30:130"},{"expression":{"arguments":[{"id":76550,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11056:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76549,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"11037:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76551,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11037:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76552,"nodeType":"ExpressionStatement","src":"11037:29:130"},{"condition":{"baseExpression":{"baseExpression":{"id":76553,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11081:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76555,"indexExpression":{"id":76554,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11109:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76557,"indexExpression":{"id":76556,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11118:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11081:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76562,"nodeType":"IfStatement","src":"11077:107:130","trueBody":{"id":76561,"nodeType":"Block","src":"11130:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76558,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76059,"src":"11151:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11151:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76560,"nodeType":"RevertStatement","src":"11144:29:130"}]}},{"assignments":[76565],"declarations":[{"constant":false,"id":76565,"mutability":"mutable","name":"member","nameLocation":"11208:6:130","nodeType":"VariableDeclaration","scope":76650,"src":"11194:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":76564,"nodeType":"UserDefinedTypeName","pathNode":{"id":76563,"name":"Member","nameLocations":["11194:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"11194:6:130"},"referencedDeclaration":76092,"src":"11194:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":76569,"initialValue":{"baseExpression":{"id":76566,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"11217:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76568,"indexExpression":{"id":76567,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11237:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11217:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11194:51:130"},{"assignments":[76571],"declarations":[{"constant":false,"id":76571,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"11264:17:130","nodeType":"VariableDeclaration","scope":76650,"src":"11256:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76570,"name":"uint256","nodeType":"ElementaryTypeName","src":"11256:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76574,"initialValue":{"expression":{"id":76572,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76565,"src":"11284:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":76573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11291:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"11284:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11256:47:130"},{"assignments":[76576],"declarations":[{"constant":false,"id":76576,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"11321:16:130","nodeType":"VariableDeclaration","scope":76650,"src":"11313:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76575,"name":"uint256","nodeType":"ElementaryTypeName","src":"11313:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76578,"initialValue":{"id":76577,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"11340:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11313:46:130"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":76587,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76580,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11389:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76579,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11374:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76582,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11400:14:130","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"11374:40:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72810_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11374:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":76584,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"11420:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11435:11:130","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11420:26:130","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76586,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11447:9:130","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72809,"src":"11420:36:130","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"11374:82:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"},"id":76607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76600,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11578:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76599,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11563:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11589:14:130","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72800,"src":"11563:40:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72810_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76603,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11563:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76604,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72892,"src":"11609:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72892_$","typeString":"type(library StrategyStruct)"}},"id":76605,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11624:11:130","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72810,"src":"11609:26:130","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72810_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76606,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11636:5:130","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":72806,"src":"11609:32:130","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72810","typeString":"enum StrategyStruct.PointSystem"}},"src":"11563:78:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76619,"nodeType":"IfStatement","src":"11559:195:130","trueBody":{"id":76618,"nodeType":"Block","src":"11643:111:130","statements":[{"expression":{"id":76616,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76608,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"11657:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76613,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11716:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76614,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76571,"src":"11725:17:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76610,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11691:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76609,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11676:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76611,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76612,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11702:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72785,"src":"11676:39:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11676:67:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11657:86:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76617,"nodeType":"ExpressionStatement","src":"11657:86:130"}]}},"id":76620,"nodeType":"IfStatement","src":"11370:384:130","trueBody":{"id":76598,"nodeType":"Block","src":"11458:95:130","statements":[{"expression":{"id":76596,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76588,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"11472:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76593,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11531:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76594,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11540:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":76590,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11506:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76589,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"11491:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76592,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11517:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72785,"src":"11491:39:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11491:51:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11472:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76597,"nodeType":"ExpressionStatement","src":"11472:70:130"}]}},{"expression":{"id":76627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76621,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"11764:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76624,"indexExpression":{"id":76622,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11786:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11764:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76625,"indexExpression":{"id":76623,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11795:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11764:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76626,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"11808:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11764:60:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76628,"nodeType":"ExpressionStatement","src":"11764:60:130"},{"expression":{"id":76635,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76629,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"11853:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76632,"indexExpression":{"id":76630,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11881:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11853:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76633,"indexExpression":{"id":76631,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11890:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11853:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76634,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11903:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11853:54:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76636,"nodeType":"ExpressionStatement","src":"11853:54:130"},{"expression":{"arguments":[{"id":76641,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"11951:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":76637,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"11918:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76639,"indexExpression":{"id":76638,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"11937:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11918:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76640,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11946:4:130","memberName":"push","nodeType":"MemberAccess","src":"11918:32:130","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":76642,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11918:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76643,"nodeType":"ExpressionStatement","src":"11918:43:130"},{"eventCall":{"arguments":[{"id":76645,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76536,"src":"12001:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76646,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76538,"src":"12010:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76647,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76576,"src":"12021:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76644,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75917,"src":"11977:23:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":76648,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11977:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76649,"nodeType":"EmitStatement","src":"11972:66:130"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"10875:24:130","parameters":{"id":76539,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76536,"mutability":"mutable","name":"_member","nameLocation":"10908:7:130","nodeType":"VariableDeclaration","scope":76651,"src":"10900:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76535,"name":"address","nodeType":"ElementaryTypeName","src":"10900:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76538,"mutability":"mutable","name":"_strategy","nameLocation":"10925:9:130","nodeType":"VariableDeclaration","scope":76651,"src":"10917:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76537,"name":"address","nodeType":"ElementaryTypeName","src":"10917:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10899:36:130"},"returnParameters":{"id":76540,"nodeType":"ParameterList","parameters":[],"src":"10943:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76710,"nodeType":"FunctionDefinition","src":"12051:691:130","nodes":[],"body":{"id":76709,"nodeType":"Block","src":"12130:612:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":76659,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12166:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76658,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"12140:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76660,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12140:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76661,"nodeType":"ExpressionStatement","src":"12140:34:130"},{"expression":{"arguments":[{"id":76663,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12203:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76662,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"12184:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12184:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76665,"nodeType":"ExpressionStatement","src":"12184:29:130"},{"expression":{"arguments":[{"expression":{"id":76667,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12243:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12247:6:130","memberName":"sender","nodeType":"MemberAccess","src":"12243:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76669,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12255:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76666,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76027,"src":"12223:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":76670,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12223:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76671,"nodeType":"ExpressionStatement","src":"12223:42:130"},{"condition":{"id":76677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12280:48:130","subExpression":{"baseExpression":{"baseExpression":{"id":76672,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"12281:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76674,"indexExpression":{"id":76673,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12309:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76676,"indexExpression":{"id":76675,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12318:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12281:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76682,"nodeType":"IfStatement","src":"12276:110:130","trueBody":{"id":76681,"nodeType":"Block","src":"12330:56:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76678,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76061,"src":"12351:22:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12351:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76680,"nodeType":"RevertStatement","src":"12344:31:130"}]}},{"expression":{"id":76689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76683,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76185,"src":"12396:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76686,"indexExpression":{"id":76684,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12424:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12396:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76687,"indexExpression":{"id":76685,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12433:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12396:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":76688,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12446:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12396:55:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76690,"nodeType":"ExpressionStatement","src":"12396:55:130"},{"expression":{"id":76697,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76691,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"12461:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76694,"indexExpression":{"id":76692,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12483:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12461:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76695,"indexExpression":{"id":76693,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12492:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12461:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":76696,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12505:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12461:45:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76698,"nodeType":"ExpressionStatement","src":"12461:45:130"},{"expression":{"arguments":[{"id":76700,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12541:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76701,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12550:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76699,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76763,"src":"12516:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76702,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12516:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76703,"nodeType":"ExpressionStatement","src":"12516:44:130"},{"eventCall":{"arguments":[{"id":76705,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76653,"src":"12716:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76706,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76655,"src":"12725:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76704,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75923,"src":"12690:25:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76707,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12690:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76708,"nodeType":"EmitStatement","src":"12685:50:130"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"12060:26:130","parameters":{"id":76656,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76653,"mutability":"mutable","name":"_member","nameLocation":"12095:7:130","nodeType":"VariableDeclaration","scope":76710,"src":"12087:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76652,"name":"address","nodeType":"ElementaryTypeName","src":"12087:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76655,"mutability":"mutable","name":"_strategy","nameLocation":"12112:9:130","nodeType":"VariableDeclaration","scope":76710,"src":"12104:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76654,"name":"address","nodeType":"ElementaryTypeName","src":"12104:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12086:36:130"},"returnParameters":{"id":76657,"nodeType":"ParameterList","parameters":[],"src":"12130:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76763,"nodeType":"FunctionDefinition","src":"12748:425:130","nodes":[],"body":{"id":76762,"nodeType":"Block","src":"12827:346:130","nodes":[],"statements":[{"assignments":[76721],"declarations":[{"constant":false,"id":76721,"mutability":"mutable","name":"memberStrategies","nameLocation":"12855:16:130","nodeType":"VariableDeclaration","scope":76762,"src":"12837:34:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76719,"name":"address","nodeType":"ElementaryTypeName","src":"12837:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76720,"nodeType":"ArrayTypeName","src":"12837:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76725,"initialValue":{"baseExpression":{"id":76722,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"12874:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76724,"indexExpression":{"id":76723,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76712,"src":"12893:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12874:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12837:64:130"},{"body":{"id":76760,"nodeType":"Block","src":"12965:202:130","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76737,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"12983:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76739,"indexExpression":{"id":76738,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"13000:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12983:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76740,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76714,"src":"13006:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12983:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76759,"nodeType":"IfStatement","src":"12979:178:130","trueBody":{"id":76758,"nodeType":"Block","src":"13017:140:130","statements":[{"expression":{"id":76751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76742,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13035:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76744,"indexExpression":{"id":76743,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"13052:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13035:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76745,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13057:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76750,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76749,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76746,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13074:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76747,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13091:6:130","memberName":"length","nodeType":"MemberAccess","src":"13074:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76748,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13100:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13074:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13057:45:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13035:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76752,"nodeType":"ExpressionStatement","src":"13035:67:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76753,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"13120:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76755,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13137:3:130","memberName":"pop","nodeType":"MemberAccess","src":"13120:20:130","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":76756,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13120:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76757,"nodeType":"ExpressionStatement","src":"13120:22:130"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76733,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76730,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"12931:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76731,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76721,"src":"12935:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12952:6:130","memberName":"length","nodeType":"MemberAccess","src":"12935:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12931:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76761,"initializationExpression":{"assignments":[76727],"declarations":[{"constant":false,"id":76727,"mutability":"mutable","name":"i","nameLocation":"12924:1:130","nodeType":"VariableDeclaration","scope":76761,"src":"12916:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76726,"name":"uint256","nodeType":"ElementaryTypeName","src":"12916:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76729,"initialValue":{"hexValue":"30","id":76728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12928:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12916:13:130"},"loopExpression":{"expression":{"id":76735,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12960:3:130","subExpression":{"id":76734,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76727,"src":"12960:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76736,"nodeType":"ExpressionStatement","src":"12960:3:130"},"nodeType":"ForStatement","src":"12911:256:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"12757:24:130","parameters":{"id":76715,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76712,"mutability":"mutable","name":"_member","nameLocation":"12790:7:130","nodeType":"VariableDeclaration","scope":76763,"src":"12782:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76711,"name":"address","nodeType":"ElementaryTypeName","src":"12782:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76714,"mutability":"mutable","name":"_strategy","nameLocation":"12807:9:130","nodeType":"VariableDeclaration","scope":76763,"src":"12799:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76713,"name":"address","nodeType":"ElementaryTypeName","src":"12799:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12781:36:130"},"returnParameters":{"id":76716,"nodeType":"ParameterList","parameters":[],"src":"12827:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76867,"nodeType":"FunctionDefinition","src":"13179:998:130","nodes":[],"body":{"id":76866,"nodeType":"Block","src":"13245:932:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76770,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75981,"src":"13255:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13255:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76772,"nodeType":"ExpressionStatement","src":"13255:26:130"},{"assignments":[76774],"declarations":[{"constant":false,"id":76774,"mutability":"mutable","name":"member","nameLocation":"13299:6:130","nodeType":"VariableDeclaration","scope":76866,"src":"13291:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76773,"name":"address","nodeType":"ElementaryTypeName","src":"13291:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76777,"initialValue":{"expression":{"id":76775,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13308:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76776,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13312:6:130","memberName":"sender","nodeType":"MemberAccess","src":"13308:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13291:27:130"},{"assignments":[76782],"declarations":[{"constant":false,"id":76782,"mutability":"mutable","name":"memberStrategies","nameLocation":"13345:16:130","nodeType":"VariableDeclaration","scope":76866,"src":"13328:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76780,"name":"address","nodeType":"ElementaryTypeName","src":"13328:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76781,"nodeType":"ArrayTypeName","src":"13328:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76786,"initialValue":{"baseExpression":{"id":76783,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"13364:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76785,"indexExpression":{"id":76784,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13383:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13364:26:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13328:62:130"},{"assignments":[76788],"declarations":[{"constant":false,"id":76788,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13409:16:130","nodeType":"VariableDeclaration","scope":76866,"src":"13401:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76787,"name":"uint256","nodeType":"ElementaryTypeName","src":"13401:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76789,"nodeType":"VariableDeclarationStatement","src":"13401:24:130"},{"body":{"id":76841,"nodeType":"Block","src":"13490:479:130","statements":[{"expression":{"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76801,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76788,"src":"13609:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76808,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13678:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76809,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13686:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":76803,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13643:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76805,"indexExpression":{"id":76804,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13660:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13643:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76802,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"13628:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76806,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13664:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72785,"src":"13628:49:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13628:72:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13609:91:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76812,"nodeType":"ExpressionStatement","src":"13609:91:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76815,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76813,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76788,"src":"13718:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76814,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13738:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13718:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76840,"nodeType":"IfStatement","src":"13714:229:130","trueBody":{"id":76839,"nodeType":"Block","src":"13741:202:130","statements":[{"expression":{"id":76824,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76816,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"13759:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76821,"indexExpression":{"id":76817,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13781:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13759:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76822,"indexExpression":{"baseExpression":{"id":76818,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13789:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76820,"indexExpression":{"id":76819,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13806:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13789:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13759:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76823,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76788,"src":"13813:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13759:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76825,"nodeType":"ExpressionStatement","src":"13759:70:130"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":76829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13859:16:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":76830,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"13877:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76832,"indexExpression":{"id":76831,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13899:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76836,"indexExpression":{"baseExpression":{"id":76833,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13907:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76835,"indexExpression":{"id":76834,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13924:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13907:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13877:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76826,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"13847:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13855:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"13847:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":76837,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13847:81:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76838,"nodeType":"ExpressionStatement","src":"13847:81:130"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76797,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76794,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13456:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76795,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76782,"src":"13460:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76796,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13477:6:130","memberName":"length","nodeType":"MemberAccess","src":"13460:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13456:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76842,"initializationExpression":{"assignments":[76791],"declarations":[{"constant":false,"id":76791,"mutability":"mutable","name":"i","nameLocation":"13449:1:130","nodeType":"VariableDeclaration","scope":76842,"src":"13441:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76790,"name":"uint256","nodeType":"ElementaryTypeName","src":"13441:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76793,"initialValue":{"hexValue":"30","id":76792,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13453:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13441:13:130"},"loopExpression":{"expression":{"id":76799,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13485:3:130","subExpression":{"id":76798,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76791,"src":"13485:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76800,"nodeType":"ExpressionStatement","src":"13485:3:130"},"nodeType":"ForStatement","src":"13436:533:130"},{"expression":{"arguments":[{"id":76846,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"14008:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76849,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14024:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":76848,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14016:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76847,"name":"address","nodeType":"ElementaryTypeName","src":"14016:7:130","typeDescriptions":{}}},"id":76850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14016:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76851,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"14031:13:130","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":76843,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"13979:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13991:16:130","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"13979:28:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":76852,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13979:66:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76853,"nodeType":"ExpressionStatement","src":"13979:66:130"},{"expression":{"id":76859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":76854,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"14055:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76856,"indexExpression":{"id":76855,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"14075:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14055:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76857,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14083:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"14055:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76858,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"14099:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14055:57:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76860,"nodeType":"ExpressionStatement","src":"14055:57:130"},{"eventCall":{"arguments":[{"id":76862,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"14148:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76863,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"14156:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76861,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75933,"src":"14127:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76864,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14127:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76865,"nodeType":"EmitStatement","src":"14122:48:130"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":76768,"kind":"modifierInvocation","modifierName":{"id":76767,"name":"nonReentrant","nameLocations":["13232:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"13232:12:130"},"nodeType":"ModifierInvocation","src":"13232:12:130"}],"name":"increasePower","nameLocation":"13188:13:130","parameters":{"id":76766,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76765,"mutability":"mutable","name":"_amountStaked","nameLocation":"13210:13:130","nodeType":"VariableDeclaration","scope":76867,"src":"13202:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76764,"name":"uint256","nodeType":"ElementaryTypeName","src":"13202:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13201:23:130"},"returnParameters":{"id":76769,"nodeType":"ParameterList","parameters":[],"src":"13245:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77017,"nodeType":"FunctionDefinition","src":"14317:1554:130","nodes":[],"body":{"id":77016,"nodeType":"Block","src":"14385:1486:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76874,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75981,"src":"14395:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76875,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14395:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76876,"nodeType":"ExpressionStatement","src":"14395:26:130"},{"assignments":[76878],"declarations":[{"constant":false,"id":76878,"mutability":"mutable","name":"member","nameLocation":"14439:6:130","nodeType":"VariableDeclaration","scope":77016,"src":"14431:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76877,"name":"address","nodeType":"ElementaryTypeName","src":"14431:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76881,"initialValue":{"expression":{"id":76879,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14448:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76880,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14452:6:130","memberName":"sender","nodeType":"MemberAccess","src":"14448:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14431:27:130"},{"assignments":[76886],"declarations":[{"constant":false,"id":76886,"mutability":"mutable","name":"memberStrategies","nameLocation":"14486:16:130","nodeType":"VariableDeclaration","scope":77016,"src":"14468:34:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76884,"name":"address","nodeType":"ElementaryTypeName","src":"14468:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76885,"nodeType":"ArrayTypeName","src":"14468:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76890,"initialValue":{"baseExpression":{"id":76887,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"14505:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76889,"indexExpression":{"id":76888,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"14524:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14505:26:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14468:63:130"},{"assignments":[76892],"declarations":[{"constant":false,"id":76892,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14550:16:130","nodeType":"VariableDeclaration","scope":77016,"src":"14542:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76891,"name":"uint256","nodeType":"ElementaryTypeName","src":"14542:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76893,"nodeType":"VariableDeclarationStatement","src":"14542:24:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76901,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76899,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":76894,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"14581:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76896,"indexExpression":{"id":76895,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"14601:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14581:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76897,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14609:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"14581:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76898,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14624:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:58:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76900,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"14642:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14581:80:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76906,"nodeType":"IfStatement","src":"14577:140:130","trueBody":{"id":76905,"nodeType":"Block","src":"14663:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76902,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76079,"src":"14684:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76903,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14684:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76904,"nodeType":"RevertStatement","src":"14677:29:130"}]}},{"expression":{"arguments":[{"id":76910,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"14751:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76911,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14759:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76907,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"14726:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76909,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14738:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"14726:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":76912,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14726:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76913,"nodeType":"ExpressionStatement","src":"14726:49:130"},{"body":{"id":77002,"nodeType":"Block","src":"14839:897:130","statements":[{"assignments":[76926],"declarations":[{"constant":false,"id":76926,"mutability":"mutable","name":"strategy","nameLocation":"14861:8:130","nodeType":"VariableDeclaration","scope":77002,"src":"14853:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76925,"name":"address","nodeType":"ElementaryTypeName","src":"14853:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76930,"initialValue":{"baseExpression":{"id":76927,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"14872:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76929,"indexExpression":{"id":76928,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"14889:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14872:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14853:38:130"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":76934,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"14941:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":76933,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14936:4:130","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76935,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14936:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":76936,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14957:11:130","memberName":"interfaceId","nodeType":"MemberAccess","src":"14936:32:130","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76931,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"14909:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76932,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14918:17:130","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58155,"src":"14909:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":76937,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14909:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":77000,"nodeType":"Block","src":"15459:250:130","statements":[{"expression":{"id":76989,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76980,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15544:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76982,"indexExpression":{"id":76981,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"15561:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15544:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76983,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15566:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76988,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76984,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15583:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76985,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15600:6:130","memberName":"length","nodeType":"MemberAccess","src":"15583:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15609:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15583:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15566:45:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15544:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76990,"nodeType":"ExpressionStatement","src":"15544:67:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76991,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15629:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15646:3:130","memberName":"pop","nodeType":"MemberAccess","src":"15629:20:130","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":76994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15629:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76995,"nodeType":"ExpressionStatement","src":"15629:22:130"},{"expression":{"arguments":[{"id":76997,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"15685:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76996,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77184,"src":"15669:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76998,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15669:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76999,"nodeType":"ExpressionStatement","src":"15669:25:130"}]},"id":77001,"nodeType":"IfStatement","src":"14905:804:130","trueBody":{"id":76979,"nodeType":"Block","src":"14971:482:130","statements":[{"expression":{"id":76946,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76938,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"14989:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76943,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15047:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76944,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15055:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76940,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76926,"src":"15023:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76939,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"15008:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":76941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":76942,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15033:13:130","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":72794,"src":"15008:38:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15008:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14989:82:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76947,"nodeType":"ExpressionStatement","src":"14989:82:130"},{"assignments":[76949],"declarations":[{"constant":false,"id":76949,"mutability":"mutable","name":"currentPower","nameLocation":"15097:12:130","nodeType":"VariableDeclaration","scope":76979,"src":"15089:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76948,"name":"uint256","nodeType":"ElementaryTypeName","src":"15089:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76957,"initialValue":{"baseExpression":{"baseExpression":{"id":76950,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"15112:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76952,"indexExpression":{"id":76951,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15134:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76956,"indexExpression":{"baseExpression":{"id":76953,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15142:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76955,"indexExpression":{"id":76954,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"15159:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15142:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15112:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15089:73:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76960,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76958,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"15184:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":76959,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76949,"src":"15203:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15184:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76977,"nodeType":"Block","src":"15328:111:130","statements":[{"expression":{"id":76975,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76967,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"15350:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76972,"indexExpression":{"id":76968,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15372:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15350:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76973,"indexExpression":{"baseExpression":{"id":76969,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"15380:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76971,"indexExpression":{"id":76970,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"15397:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15380:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15350:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":76974,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"15404:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15350:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76976,"nodeType":"ExpressionStatement","src":"15350:70:130"}]},"id":76978,"nodeType":"IfStatement","src":"15180:259:130","trueBody":{"id":76966,"nodeType":"Block","src":"15217:105:130","statements":[{"errorCall":{"arguments":[{"id":76962,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76892,"src":"15272:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76963,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76949,"src":"15290:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76961,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76085,"src":"15246:25:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":76964,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15246:57:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76965,"nodeType":"RevertStatement","src":"15239:64:130"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76918,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"14805:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76919,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76886,"src":"14809:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76920,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14826:6:130","memberName":"length","nodeType":"MemberAccess","src":"14809:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14805:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77003,"initializationExpression":{"assignments":[76915],"declarations":[{"constant":false,"id":76915,"mutability":"mutable","name":"i","nameLocation":"14798:1:130","nodeType":"VariableDeclaration","scope":77003,"src":"14790:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76914,"name":"uint256","nodeType":"ElementaryTypeName","src":"14790:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76917,"initialValue":{"hexValue":"30","id":76916,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14802:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14790:13:130"},"loopExpression":{"expression":{"id":76923,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14834:3:130","subExpression":{"id":76922,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76915,"src":"14834:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76924,"nodeType":"ExpressionStatement","src":"14834:3:130"},"nodeType":"ForStatement","src":"14785:951:130"},{"expression":{"id":77009,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77004,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"15745:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77006,"indexExpression":{"id":77005,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15765:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15745:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77007,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15773:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"15745:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":77008,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15789:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15745:59:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77010,"nodeType":"ExpressionStatement","src":"15745:59:130"},{"eventCall":{"arguments":[{"id":77012,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76878,"src":"15840:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77013,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15848:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77011,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75939,"src":"15819:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77014,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15819:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77015,"nodeType":"EmitStatement","src":"15814:50:130"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":76872,"kind":"modifierInvocation","modifierName":{"id":76871,"name":"nonReentrant","nameLocations":["14372:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"14372:12:130"},"nodeType":"ModifierInvocation","src":"14372:12:130"}],"name":"decreasePower","nameLocation":"14326:13:130","parameters":{"id":76870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76869,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"14348:15:130","nodeType":"VariableDeclaration","scope":77017,"src":"14340:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76868,"name":"uint256","nodeType":"ElementaryTypeName","src":"14340:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14339:25:130"},"returnParameters":{"id":76873,"nodeType":"ParameterList","parameters":[],"src":"14385:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77033,"nodeType":"FunctionDefinition","src":"15877:165:130","nodes":[],"body":{"id":77032,"nodeType":"Block","src":"15977:65:130","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":77026,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76169,"src":"15994:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77028,"indexExpression":{"id":77027,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77019,"src":"16016:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77030,"indexExpression":{"id":77029,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77021,"src":"16025:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15994:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77025,"id":77031,"nodeType":"Return","src":"15987:48:130"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"15886:24:130","parameters":{"id":77022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77019,"mutability":"mutable","name":"_member","nameLocation":"15919:7:130","nodeType":"VariableDeclaration","scope":77033,"src":"15911:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77018,"name":"address","nodeType":"ElementaryTypeName","src":"15911:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77021,"mutability":"mutable","name":"_strategy","nameLocation":"15936:9:130","nodeType":"VariableDeclaration","scope":77033,"src":"15928:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77020,"name":"address","nodeType":"ElementaryTypeName","src":"15928:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15910:36:130"},"returnParameters":{"id":77025,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77024,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77033,"src":"15968:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77023,"name":"uint256","nodeType":"ElementaryTypeName","src":"15968:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15967:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77046,"nodeType":"FunctionDefinition","src":"16048:143:130","nodes":[],"body":{"id":77045,"nodeType":"Block","src":"16126:65:130","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77040,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"16143:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77042,"indexExpression":{"id":77041,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77035,"src":"16163:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16143:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77043,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16172:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"16143:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77039,"id":77044,"nodeType":"Return","src":"16136:48:130"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"16057:21:130","parameters":{"id":77036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77035,"mutability":"mutable","name":"_member","nameLocation":"16087:7:130","nodeType":"VariableDeclaration","scope":77046,"src":"16079:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77034,"name":"address","nodeType":"ElementaryTypeName","src":"16079:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16078:17:130"},"returnParameters":{"id":77039,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77038,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77046,"src":"16117:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77037,"name":"uint256","nodeType":"ElementaryTypeName","src":"16117:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16116:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77083,"nodeType":"FunctionDefinition","src":"16320:313:130","nodes":[],"body":{"id":77082,"nodeType":"Block","src":"16372:261:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77051,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"16382:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77052,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16382:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77053,"nodeType":"ExpressionStatement","src":"16382:17:130"},{"assignments":[77055],"declarations":[{"constant":false,"id":77055,"mutability":"mutable","name":"strategy","nameLocation":"16417:8:130","nodeType":"VariableDeclaration","scope":77082,"src":"16409:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77054,"name":"address","nodeType":"ElementaryTypeName","src":"16409:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77064,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77060,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77048,"src":"16449:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77058,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"16436:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":77059,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16441:7:130","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75831,"src":"16436:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16436:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77062,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16457:8:130","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"16436:29:130","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16428:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77056,"name":"address","nodeType":"ElementaryTypeName","src":"16428:7:130","typeDescriptions":{}}},"id":77063,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16428:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16409:57:130"},{"expression":{"arguments":[{"id":77066,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16495:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77065,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"16476:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77067,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16476:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77068,"nodeType":"ExpressionStatement","src":"16476:28:130"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77072,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"16550:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}],"id":77071,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16545:4:130","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77073,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16545:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72801","typeString":"type(contract IPointStrategy)"}},"id":77074,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16566:11:130","memberName":"interfaceId","nodeType":"MemberAccess","src":"16545:32:130","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77069,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16518:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77070,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16527:17:130","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58155,"src":"16518:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16518:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77081,"nodeType":"IfStatement","src":"16514:113:130","trueBody":{"id":77080,"nodeType":"Block","src":"16580:47:130","statements":[{"expression":{"arguments":[{"id":77077,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77055,"src":"16607:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77076,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77120,"src":"16594:12:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77078,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16594:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77079,"nodeType":"ExpressionStatement","src":"16594:22:130"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"16329:19:130","parameters":{"id":77049,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77048,"mutability":"mutable","name":"poolId","nameLocation":"16357:6:130","nodeType":"VariableDeclaration","scope":77083,"src":"16349:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77047,"name":"uint256","nodeType":"ElementaryTypeName","src":"16349:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16348:16:130"},"returnParameters":{"id":77050,"nodeType":"ParameterList","parameters":[],"src":"16372:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77096,"nodeType":"FunctionDefinition","src":"16639:120:130","nodes":[],"body":{"id":77095,"nodeType":"Block","src":"16689:70:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77088,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"16699:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77089,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16699:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77090,"nodeType":"ExpressionStatement","src":"16699:17:130"},{"expression":{"arguments":[{"id":77092,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77085,"src":"16739:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77091,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77120,"src":"16726:12:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77093,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16726:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77094,"nodeType":"ExpressionStatement","src":"16726:26:130"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"16648:11:130","parameters":{"id":77086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77085,"mutability":"mutable","name":"_newStrategy","nameLocation":"16668:12:130","nodeType":"VariableDeclaration","scope":77096,"src":"16660:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77084,"name":"address","nodeType":"ElementaryTypeName","src":"16660:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16659:22:130"},"returnParameters":{"id":77087,"nodeType":"ParameterList","parameters":[],"src":"16689:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77120,"nodeType":"FunctionDefinition","src":"16765:244:130","nodes":[],"body":{"id":77119,"nodeType":"Block","src":"16818:191:130","nodes":[],"statements":[{"condition":{"baseExpression":{"id":77101,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"16832:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77103,"indexExpression":{"id":77102,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"16850:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16832:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77108,"nodeType":"IfStatement","src":"16828:85:130","trueBody":{"id":77107,"nodeType":"Block","src":"16865:48:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77104,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76063,"src":"16886:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77105,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16886:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77106,"nodeType":"RevertStatement","src":"16879:23:130"}]}},{"expression":{"id":77113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77109,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"16922:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77111,"indexExpression":{"id":77110,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"16940:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16922:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16956:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16922:38:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77114,"nodeType":"ExpressionStatement","src":"16922:38:130"},{"eventCall":{"arguments":[{"id":77116,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77098,"src":"16989:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77115,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75905,"src":"16975:13:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77117,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16975:27:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77118,"nodeType":"EmitStatement","src":"16970:32:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"16774:12:130","parameters":{"id":77099,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77098,"mutability":"mutable","name":"_newStrategy","nameLocation":"16795:12:130","nodeType":"VariableDeclaration","scope":77120,"src":"16787:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77097,"name":"address","nodeType":"ElementaryTypeName","src":"16787:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16786:22:130"},"returnParameters":{"id":77100,"nodeType":"ParameterList","parameters":[],"src":"16818:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77136,"nodeType":"FunctionDefinition","src":"17015:133:130","nodes":[],"body":{"id":77135,"nodeType":"Block","src":"17075:73:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77130,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77125,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77122,"src":"17089:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17109:1:130","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":77127,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17101:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77126,"name":"address","nodeType":"ElementaryTypeName","src":"17101:7:130","typeDescriptions":{}}},"id":77129,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17101:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17089:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77134,"nodeType":"IfStatement","src":"17085:56:130","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77131,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76047,"src":"17120:19:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17120:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77133,"nodeType":"RevertStatement","src":"17113:28:130"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"17024:18:130","parameters":{"id":77123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77122,"mutability":"mutable","name":"_address","nameLocation":"17051:8:130","nodeType":"VariableDeclaration","scope":77136,"src":"17043:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77121,"name":"address","nodeType":"ElementaryTypeName","src":"17043:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17042:18:130"},"returnParameters":{"id":77124,"nodeType":"ParameterList","parameters":[],"src":"17075:0:130"},"scope":77692,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77164,"nodeType":"FunctionDefinition","src":"17154:229:130","nodes":[],"body":{"id":77163,"nodeType":"Block","src":"17209:174:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77141,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"17219:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17219:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77143,"nodeType":"ExpressionStatement","src":"17219:17:130"},{"assignments":[77145],"declarations":[{"constant":false,"id":77145,"mutability":"mutable","name":"strategy","nameLocation":"17254:8:130","nodeType":"VariableDeclaration","scope":77163,"src":"17246:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77144,"name":"address","nodeType":"ElementaryTypeName","src":"17246:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77154,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77150,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77138,"src":"17286:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77148,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76155,"src":"17273:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75832","typeString":"contract FAllo"}},"id":77149,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17278:7:130","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75831,"src":"17273:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17273:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77152,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17294:8:130","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17273:29:130","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77147,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17265:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77146,"name":"address","nodeType":"ElementaryTypeName","src":"17265:7:130","typeDescriptions":{}}},"id":77153,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17265:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17246:57:130"},{"expression":{"arguments":[{"id":77156,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77145,"src":"17332:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77155,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"17313:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17313:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77158,"nodeType":"ExpressionStatement","src":"17313:28:130"},{"expression":{"arguments":[{"id":77160,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77145,"src":"17367:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77159,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77184,"src":"17351:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17351:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77162,"nodeType":"ExpressionStatement","src":"17351:25:130"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"17163:22:130","parameters":{"id":77139,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77138,"mutability":"mutable","name":"poolId","nameLocation":"17194:6:130","nodeType":"VariableDeclaration","scope":77164,"src":"17186:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77137,"name":"uint256","nodeType":"ElementaryTypeName","src":"17186:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17185:16:130"},"returnParameters":{"id":77140,"nodeType":"ParameterList","parameters":[],"src":"17209:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77184,"nodeType":"FunctionDefinition","src":"17389:186:130","nodes":[],"body":{"id":77183,"nodeType":"Block","src":"17442:133:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":77170,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"17471:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77169,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"17452:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77171,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17452:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77172,"nodeType":"ExpressionStatement","src":"17452:29:130"},{"expression":{"id":77177,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77173,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76163,"src":"17491:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77175,"indexExpression":{"id":77174,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"17509:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17491:28:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":77176,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17522:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17491:36:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77178,"nodeType":"ExpressionStatement","src":"17491:36:130"},{"eventCall":{"arguments":[{"id":77180,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77166,"src":"17558:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77179,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75909,"src":"17542:15:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77181,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17542:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77182,"nodeType":"EmitStatement","src":"17537:31:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"17398:15:130","parameters":{"id":77167,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77166,"mutability":"mutable","name":"_strategy","nameLocation":"17422:9:130","nodeType":"VariableDeclaration","scope":77184,"src":"17414:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77165,"name":"address","nodeType":"ElementaryTypeName","src":"17414:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17413:19:130"},"returnParameters":{"id":77168,"nodeType":"ParameterList","parameters":[],"src":"17442:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77197,"nodeType":"FunctionDefinition","src":"17581:120:130","nodes":[],"body":{"id":77196,"nodeType":"Block","src":"17631:70:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77189,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"17641:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17641:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77191,"nodeType":"ExpressionStatement","src":"17641:17:130"},{"expression":{"arguments":[{"id":77193,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77186,"src":"17684:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77192,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77184,"src":"17668:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17668:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77195,"nodeType":"ExpressionStatement","src":"17668:26:130"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"17590:14:130","parameters":{"id":77187,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77186,"mutability":"mutable","name":"_strategy","nameLocation":"17613:9:130","nodeType":"VariableDeclaration","scope":77197,"src":"17605:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77185,"name":"address","nodeType":"ElementaryTypeName","src":"17605:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17604:19:130"},"returnParameters":{"id":77188,"nodeType":"ParameterList","parameters":[],"src":"17631:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77222,"nodeType":"FunctionDefinition","src":"17707:240:130","nodes":[],"body":{"id":77221,"nodeType":"Block","src":"17761:186:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77202,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"17771:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17771:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77204,"nodeType":"ExpressionStatement","src":"17771:17:130"},{"expression":{"arguments":[{"id":77206,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77199,"src":"17817:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77205,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77136,"src":"17798:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17798:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77208,"nodeType":"ExpressionStatement","src":"17798:25:130"},{"expression":{"id":77211,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77209,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"17833:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77210,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77199,"src":"17854:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17833:26:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":77212,"nodeType":"ExpressionStatement","src":"17833:26:130"},{"eventCall":{"arguments":[{"arguments":[{"id":77216,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"17907:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}],"id":77215,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17899:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77214,"name":"address","nodeType":"ElementaryTypeName","src":"17899:7:130","typeDescriptions":{}}},"id":77217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17899:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77218,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"17921:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77213,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75868,"src":"17874:24:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17874:66:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77220,"nodeType":"EmitStatement","src":"17869:71:130"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"17716:14:130","parameters":{"id":77200,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77199,"mutability":"mutable","name":"_safe","nameLocation":"17747:5:130","nodeType":"VariableDeclaration","scope":77222,"src":"17731:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77198,"name":"address","nodeType":"ElementaryTypeName","src":"17731:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"17730:23:130"},"returnParameters":{"id":77201,"nodeType":"ParameterList","parameters":[],"src":"17761:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77239,"nodeType":"FunctionDefinition","src":"17953:179:130","nodes":[],"body":{"id":77238,"nodeType":"Block","src":"17992:140:130","nodes":[],"statements":[{"expression":{"id":77229,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77225,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"18002:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77227,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18022:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77226,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75578,"src":"18016:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$75578_$","typeString":"type(contract ISafe)"}},"id":77228,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18016:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"src":"18002:39:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$75578","typeString":"contract ISafe"}},"id":77230,"nodeType":"ExpressionStatement","src":"18002:39:130"},{"expression":{"id":77232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18051:25:130","subExpression":{"id":77231,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18058:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77233,"nodeType":"ExpressionStatement","src":"18051:25:130"},{"eventCall":{"arguments":[{"id":77235,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18106:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77234,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75862,"src":"18091:14:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77236,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18091:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77237,"nodeType":"EmitStatement","src":"18086:39:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"17962:18:130","parameters":{"id":77223,"nodeType":"ParameterList","parameters":[],"src":"17980:2:130"},"returnParameters":{"id":77224,"nodeType":"ParameterList","parameters":[],"src":"17992:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77255,"nodeType":"FunctionDefinition","src":"18138:171:130","nodes":[],"body":{"id":77254,"nodeType":"Block","src":"18174:135:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77242,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18188:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18192:6:130","memberName":"sender","nodeType":"MemberAccess","src":"18188:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77244,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76143,"src":"18202:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"18188:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77250,"nodeType":"IfStatement","src":"18184:89:130","trueBody":{"id":77249,"nodeType":"Block","src":"18222:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77246,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76067,"src":"18243:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77247,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18243:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77248,"nodeType":"RevertStatement","src":"18236:26:130"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77251,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77239,"src":"18282:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18282:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77253,"nodeType":"ExpressionStatement","src":"18282:20:130"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"18147:17:130","parameters":{"id":77240,"nodeType":"ParameterList","parameters":[],"src":"18164:2:130"},"returnParameters":{"id":77241,"nodeType":"ParameterList","parameters":[],"src":"18174:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77273,"nodeType":"FunctionDefinition","src":"18315:182:130","nodes":[],"body":{"id":77272,"nodeType":"Block","src":"18387:110:130","nodes":[],"statements":[{"assignments":[77264],"declarations":[{"constant":false,"id":77264,"mutability":"mutable","name":"newMember","nameLocation":"18411:9:130","nodeType":"VariableDeclaration","scope":77272,"src":"18397:23:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77263,"nodeType":"UserDefinedTypeName","pathNode":{"id":77262,"name":"Member","nameLocations":["18397:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"18397:6:130"},"referencedDeclaration":76092,"src":"18397:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77268,"initialValue":{"baseExpression":{"id":77265,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"18423:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77267,"indexExpression":{"id":77266,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77257,"src":"18443:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18423:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18397:54:130"},{"expression":{"expression":{"id":77269,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77264,"src":"18468:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77270,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18478:12:130","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76091,"src":"18468:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77261,"id":77271,"nodeType":"Return","src":"18461:29:130"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"18324:8:130","parameters":{"id":77258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77257,"mutability":"mutable","name":"_member","nameLocation":"18341:7:130","nodeType":"VariableDeclaration","scope":77273,"src":"18333:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77256,"name":"address","nodeType":"ElementaryTypeName","src":"18333:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18332:17:130"},"returnParameters":{"id":77261,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77260,"mutability":"mutable","name":"_isMember","nameLocation":"18376:9:130","nodeType":"VariableDeclaration","scope":77273,"src":"18371:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77259,"name":"bool","nodeType":"ElementaryTypeName","src":"18371:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18370:16:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77432,"nodeType":"FunctionDefinition","src":"18503:1907:130","nodes":[],"body":{"id":77431,"nodeType":"Block","src":"18557:1853:130","nodes":[],"statements":[{"assignments":[77279],"declarations":[{"constant":false,"id":77279,"mutability":"mutable","name":"_member","nameLocation":"18575:7:130","nodeType":"VariableDeclaration","scope":77431,"src":"18567:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77278,"name":"address","nodeType":"ElementaryTypeName","src":"18567:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77282,"initialValue":{"expression":{"id":77280,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18585:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77281,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18589:6:130","memberName":"sender","nodeType":"MemberAccess","src":"18585:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18567:28:130"},{"assignments":[77285],"declarations":[{"constant":false,"id":77285,"mutability":"mutable","name":"newMember","nameLocation":"18620:9:130","nodeType":"VariableDeclaration","scope":77431,"src":"18605:24:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77284,"nodeType":"UserDefinedTypeName","pathNode":{"id":77283,"name":"Member","nameLocations":["18605:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"18605:6:130"},"referencedDeclaration":76092,"src":"18605:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77289,"initialValue":{"baseExpression":{"id":77286,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"18632:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77288,"indexExpression":{"id":77287,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"18652:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18632:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18605:55:130"},{"assignments":[77292],"declarations":[{"constant":false,"id":77292,"mutability":"mutable","name":"gardensFactory","nameLocation":"18686:14:130","nodeType":"VariableDeclaration","scope":77431,"src":"18670:30:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"},"typeName":{"id":77291,"nodeType":"UserDefinedTypeName","pathNode":{"id":77290,"name":"RegistryFactory","nameLocations":["18670:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":77928,"src":"18670:15:130"},"referencedDeclaration":77928,"src":"18670:15:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77296,"initialValue":{"arguments":[{"id":77294,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"18719:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77293,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"18703:15:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$77928_$","typeString":"type(contract RegistryFactory)"}},"id":77295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18703:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"18670:65:130"},{"assignments":[77298],"declarations":[{"constant":false,"id":77298,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"18753:18:130","nodeType":"VariableDeclaration","scope":77431,"src":"18745:26:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77297,"name":"uint256","nodeType":"ElementaryTypeName","src":"18745:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77308,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77299,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"18775:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77300,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"18797:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18775:34:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77302,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18774:36:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77305,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77303,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18814:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77304,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"18820:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18814:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77306,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18813:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18774:62:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18745:91:130"},{"assignments":[77310],"declarations":[{"constant":false,"id":77310,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"18854:16:130","nodeType":"VariableDeclaration","scope":77431,"src":"18846:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77309,"name":"uint256","nodeType":"ElementaryTypeName","src":"18846:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77326,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77311,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"18886:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77316,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18946:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77315,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18938:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77314,"name":"address","nodeType":"ElementaryTypeName","src":"18938:7:130","typeDescriptions":{}}},"id":77317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18938:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77312,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"18908:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18923:14:130","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":77927,"src":"18908:29:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77318,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18908:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18886:66:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77320,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18885:68:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77323,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77321,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18957:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77322,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"18963:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18957:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77324,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18956:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18885:94:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18846:133:130"},{"condition":{"id":77330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"18993:18:130","subExpression":{"arguments":[{"id":77328,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"19003:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77327,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"18994:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77329,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18994:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77430,"nodeType":"IfStatement","src":"18989:1415:130","trueBody":{"id":77429,"nodeType":"Block","src":"19013:1391:130","statements":[{"expression":{"id":77335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77331,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77285,"src":"19027:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77333,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19037:12:130","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76091,"src":"19027:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77334,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19052:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19027:29:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77336,"nodeType":"ExpressionStatement","src":"19027:29:130"},{"expression":{"id":77341,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77337,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77285,"src":"19071:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19081:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"19071:22:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77340,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"19096:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19071:44:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77342,"nodeType":"ExpressionStatement","src":"19071:44:130"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":77346,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19213:13:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":77349,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"19236:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":77348,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19228:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77347,"name":"address","nodeType":"ElementaryTypeName","src":"19228:7:130","typeDescriptions":{}}},"id":77350,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19228:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77343,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19201:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19209:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19201:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77351,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19201:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77352,"nodeType":"ExpressionStatement","src":"19201:48:130"},{"expression":{"arguments":[{"id":77356,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"19310:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77359,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19327:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77358,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19319:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77357,"name":"address","nodeType":"ElementaryTypeName","src":"19319:7:130","typeDescriptions":{}}},"id":77360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19319:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77361,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"19334:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77362,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19356:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77364,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"19377:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19334:59:130","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":77353,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"19264:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77355,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19276:16:130","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"19264:28:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19264:143:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77367,"nodeType":"ExpressionStatement","src":"19264:143:130"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":77371,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19770:20:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":77372,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19792:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77368,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19758:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19766:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"19758:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19758:53:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77374,"nodeType":"ExpressionStatement","src":"19758:53:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77375,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19829:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19850:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19829:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77393,"nodeType":"IfStatement","src":"19825:175:130","trueBody":{"id":77392,"nodeType":"Block","src":"19853:147:130","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":77381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19883:13:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":77382,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"19898:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77378,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19871:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77380,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19879:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19871:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77383,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19871:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77384,"nodeType":"ExpressionStatement","src":"19871:39:130"},{"expression":{"arguments":[{"id":77388,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"19953:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77389,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77298,"src":"19966:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77385,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"19928:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19940:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"19928:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77390,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19928:57:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77391,"nodeType":"ExpressionStatement","src":"19928:57:130"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":77397,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20025:18:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":77398,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"20045:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77394,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20013:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77396,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20021:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"20013:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77399,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20013:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77400,"nodeType":"ExpressionStatement","src":"20013:49:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77401,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"20080:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77402,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20099:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20080:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77423,"nodeType":"IfStatement","src":"20076:252:130","trueBody":{"id":77422,"nodeType":"Block","src":"20102:226:130","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":77407,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20132:40:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77408,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"20174:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77409,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20189:21:130","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":77846,"src":"20174:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20174:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77404,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20120:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77406,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20128:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"20120:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77411,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20120:93:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77412,"nodeType":"ExpressionStatement","src":"20120:93:130"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77416,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77292,"src":"20256:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77417,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20271:21:130","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":77846,"src":"20256:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77418,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20256:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77419,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77310,"src":"20296:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77413,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"20231:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77415,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20243:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"20231:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20231:82:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77421,"nodeType":"ExpressionStatement","src":"20231:82:130"}]}},{"eventCall":{"arguments":[{"id":77425,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77279,"src":"20364:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77426,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20373:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77424,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75874,"src":"20347:16:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20347:46:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77428,"nodeType":"EmitStatement","src":"20342:51:130"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":77276,"kind":"modifierInvocation","modifierName":{"id":77275,"name":"nonReentrant","nameLocations":["18544:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"18544:12:130"},"nodeType":"ModifierInvocation","src":"18544:12:130"}],"name":"stakeAndRegisterMember","nameLocation":"18512:22:130","parameters":{"id":77274,"nodeType":"ParameterList","parameters":[],"src":"18534:2:130"},"returnParameters":{"id":77277,"nodeType":"ParameterList","parameters":[],"src":"18557:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77481,"nodeType":"FunctionDefinition","src":"20416:467:130","nodes":[],"body":{"id":77480,"nodeType":"Block","src":"20480:403:130","nodes":[],"statements":[{"assignments":[77439],"declarations":[{"constant":false,"id":77439,"mutability":"mutable","name":"gardensFactory","nameLocation":"20506:14:130","nodeType":"VariableDeclaration","scope":77480,"src":"20490:30:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"},"typeName":{"id":77438,"nodeType":"UserDefinedTypeName","pathNode":{"id":77437,"name":"RegistryFactory","nameLocations":["20490:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":77928,"src":"20490:15:130"},"referencedDeclaration":77928,"src":"20490:15:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77443,"initialValue":{"arguments":[{"id":77441,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76137,"src":"20539:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77440,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"20523:15:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$77928_$","typeString":"type(contract RegistryFactory)"}},"id":77442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20523:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20490:65:130"},{"assignments":[77445],"declarations":[{"constant":false,"id":77445,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20573:18:130","nodeType":"VariableDeclaration","scope":77480,"src":"20565:26:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77444,"name":"uint256","nodeType":"ElementaryTypeName","src":"20565:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77455,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77454,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77448,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77446,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20595:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77447,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"20617:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20595:34:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77449,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20594:36:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77452,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77450,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20634:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77451,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"20640:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20634:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77453,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20633:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20594:62:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20565:91:130"},{"assignments":[77457],"declarations":[{"constant":false,"id":77457,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20674:16:130","nodeType":"VariableDeclaration","scope":77480,"src":"20666:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77456,"name":"uint256","nodeType":"ElementaryTypeName","src":"20666:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77473,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77472,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77466,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77458,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20706:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77463,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20766:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77462,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20758:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77461,"name":"address","nodeType":"ElementaryTypeName","src":"20758:7:130","typeDescriptions":{}}},"id":77464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20758:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77459,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77439,"src":"20728:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}},"id":77460,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20743:14:130","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":77927,"src":"20728:29:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77465,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20728:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20706:66:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77467,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20705:68:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77470,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77468,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20777:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77469,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"20783:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20777:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77471,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20776:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20705:94:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20666:133:130"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77478,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77476,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77474,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20817:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77475,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77445,"src":"20839:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77477,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77457,"src":"20860:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20817:59:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77436,"id":77479,"nodeType":"Return","src":"20810:66:130"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"20425:22:130","parameters":{"id":77433,"nodeType":"ParameterList","parameters":[],"src":"20447:2:130"},"returnParameters":{"id":77436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77481,"src":"20471:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77434,"name":"uint256","nodeType":"ElementaryTypeName","src":"20471:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20470:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77489,"nodeType":"FunctionDefinition","src":"20889:107:130","nodes":[],"body":{"id":77488,"nodeType":"Block","src":"20953:43:130","nodes":[],"statements":[{"expression":{"id":77486,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"20970:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77485,"id":77487,"nodeType":"Return","src":"20963:26:130"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"20898:20:130","parameters":{"id":77482,"nodeType":"ParameterList","parameters":[],"src":"20918:2:130"},"returnParameters":{"id":77485,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77484,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77489,"src":"20944:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77483,"name":"uint256","nodeType":"ElementaryTypeName","src":"20944:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20943:9:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77506,"nodeType":"FunctionDefinition","src":"21002:182:130","nodes":[],"body":{"id":77505,"nodeType":"Block","src":"21061:123:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77494,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"21071:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21071:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77496,"nodeType":"ExpressionStatement","src":"21071:17:130"},{"expression":{"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77497,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"21098:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77498,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21120:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21098:32:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77500,"nodeType":"ExpressionStatement","src":"21098:32:130"},{"eventCall":{"arguments":[{"id":77502,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21166:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77501,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75927,"src":"21145:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21145:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77504,"nodeType":"EmitStatement","src":"21140:37:130"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"21011:20:130","parameters":{"id":77492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77491,"mutability":"mutable","name":"_newAmount","nameLocation":"21040:10:130","nodeType":"VariableDeclaration","scope":77506,"src":"21032:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77490,"name":"uint256","nodeType":"ElementaryTypeName","src":"21032:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21031:20:130"},"returnParameters":{"id":77493,"nodeType":"ParameterList","parameters":[],"src":"21061:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77531,"nodeType":"FunctionDefinition","src":"21190:280:130","nodes":[],"body":{"id":77530,"nodeType":"Block","src":"21248:222:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77511,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"21258:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77512,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21258:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77513,"nodeType":"ExpressionStatement","src":"21258:17:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77516,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77514,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"21289:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77515,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76198,"src":"21308:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21289:26:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77521,"nodeType":"IfStatement","src":"21285:86:130","trueBody":{"id":77520,"nodeType":"Block","src":"21317:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77517,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76073,"src":"21338:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77518,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21338:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77519,"nodeType":"RevertStatement","src":"21331:29:130"}]}},{"expression":{"id":77524,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77522,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76131,"src":"21380:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77523,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"21395:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21380:31:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77525,"nodeType":"ExpressionStatement","src":"21380:31:130"},{"eventCall":{"arguments":[{"id":77527,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77508,"src":"21446:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77526,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"21426:19:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21426:37:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77529,"nodeType":"EmitStatement","src":"21421:42:130"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"21199:15:130","parameters":{"id":77509,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77508,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"21223:16:130","nodeType":"VariableDeclaration","scope":77531,"src":"21215:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77507,"name":"uint256","nodeType":"ElementaryTypeName","src":"21215:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21214:26:130"},"returnParameters":{"id":77510,"nodeType":"ParameterList","parameters":[],"src":"21248:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77544,"nodeType":"FunctionDefinition","src":"21512:132:130","nodes":[],"body":{"id":77543,"nodeType":"Block","src":"21581:63:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":77539,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75854,"src":"21606:21:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77540,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21629:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77538,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"21598:7:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77541,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21598:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77537,"id":77542,"nodeType":"Return","src":"21591:46:130"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"21521:15:130","parameters":{"id":77534,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77533,"mutability":"mutable","name":"_member","nameLocation":"21545:7:130","nodeType":"VariableDeclaration","scope":77544,"src":"21537:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77532,"name":"address","nodeType":"ElementaryTypeName","src":"21537:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21536:17:130"},"returnParameters":{"id":77537,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77536,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77544,"src":"21575:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77535,"name":"bool","nodeType":"ElementaryTypeName","src":"21575:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21574:6:130"},"scope":77692,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77594,"nodeType":"FunctionDefinition","src":"21650:453:130","nodes":[],"body":{"id":77593,"nodeType":"Block","src":"21698:405:130","nodes":[],"statements":[{"assignments":[77550],"declarations":[{"constant":false,"id":77550,"mutability":"mutable","name":"_member","nameLocation":"21716:7:130","nodeType":"VariableDeclaration","scope":77593,"src":"21708:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77549,"name":"address","nodeType":"ElementaryTypeName","src":"21708:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77553,"initialValue":{"expression":{"id":77551,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21726:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77552,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21730:6:130","memberName":"sender","nodeType":"MemberAccess","src":"21726:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21708:28:130"},{"expression":{"arguments":[{"id":77555,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21772:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77554,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"21746:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77556,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21746:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77557,"nodeType":"ExpressionStatement","src":"21746:34:130"},{"expression":{"arguments":[{"id":77559,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21814:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77558,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77631,"src":"21790:23:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77560,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21790:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77561,"nodeType":"ExpressionStatement","src":"21790:32:130"},{"assignments":[77564],"declarations":[{"constant":false,"id":77564,"mutability":"mutable","name":"member","nameLocation":"21846:6:130","nodeType":"VariableDeclaration","scope":77593,"src":"21832:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77563,"nodeType":"UserDefinedTypeName","pathNode":{"id":77562,"name":"Member","nameLocations":["21832:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"21832:6:130"},"referencedDeclaration":76092,"src":"21832:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77568,"initialValue":{"baseExpression":{"id":77565,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"21855:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77567,"indexExpression":{"id":77566,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21875:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21855:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21832:51:130"},{"expression":{"id":77572,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21893:35:130","subExpression":{"baseExpression":{"id":77569,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"21900:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77571,"indexExpression":{"id":77570,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21920:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21900:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77573,"nodeType":"ExpressionStatement","src":"21893:35:130"},{"expression":{"id":77577,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21938:34:130","subExpression":{"baseExpression":{"id":77574,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"21945:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77576,"indexExpression":{"id":77575,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"21964:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21945:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77578,"nodeType":"ExpressionStatement","src":"21938:34:130"},{"expression":{"arguments":[{"id":77582,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"22004:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77583,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77564,"src":"22013:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77584,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22020:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"22013:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77579,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"21983:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21995:8:130","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"21983:20:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77585,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21983:50:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77586,"nodeType":"ExpressionStatement","src":"21983:50:130"},{"eventCall":{"arguments":[{"id":77588,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77550,"src":"22067:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77589,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77564,"src":"22076:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77590,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22083:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"22076:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77587,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75880,"src":"22048:18:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77591,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22048:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77592,"nodeType":"EmitStatement","src":"22043:53:130"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":77547,"kind":"modifierInvocation","modifierName":{"id":77546,"name":"nonReentrant","nameLocations":["21685:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"21685:12:130"},"nodeType":"ModifierInvocation","src":"21685:12:130"}],"name":"unregisterMember","nameLocation":"21659:16:130","parameters":{"id":77545,"nodeType":"ParameterList","parameters":[],"src":"21675:2:130"},"returnParameters":{"id":77548,"nodeType":"ParameterList","parameters":[],"src":"21698:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77631,"nodeType":"FunctionDefinition","src":"22109:466:130","nodes":[],"body":{"id":77630,"nodeType":"Block","src":"22168:407:130","nodes":[],"statements":[{"assignments":[77603],"declarations":[{"constant":false,"id":77603,"mutability":"mutable","name":"memberStrategies","nameLocation":"22195:16:130","nodeType":"VariableDeclaration","scope":77630,"src":"22178:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77601,"name":"address","nodeType":"ElementaryTypeName","src":"22178:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77602,"nodeType":"ArrayTypeName","src":"22178:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77607,"initialValue":{"baseExpression":{"id":77604,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76179,"src":"22214:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77606,"indexExpression":{"id":77605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77596,"src":"22233:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22214:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22178:63:130"},{"body":{"id":77628,"nodeType":"Block","src":"22371:198:130","statements":[{"expression":{"arguments":[{"id":77625,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77596,"src":"22550:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":77620,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77603,"src":"22512:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77622,"indexExpression":{"id":77621,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77609,"src":"22529:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22512:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77619,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72801,"src":"22497:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72801_$","typeString":"type(contract IPointStrategy)"}},"id":77623,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72801","typeString":"contract IPointStrategy"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22533:16:130","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72776,"src":"22497:52:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77626,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22497:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77627,"nodeType":"ExpressionStatement","src":"22497:61:130"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77615,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77612,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77609,"src":"22337:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77613,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77603,"src":"22341:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77614,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22358:6:130","memberName":"length","nodeType":"MemberAccess","src":"22341:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22337:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77629,"initializationExpression":{"assignments":[77609],"declarations":[{"constant":false,"id":77609,"mutability":"mutable","name":"i","nameLocation":"22330:1:130","nodeType":"VariableDeclaration","scope":77629,"src":"22322:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77608,"name":"uint256","nodeType":"ElementaryTypeName","src":"22322:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77611,"initialValue":{"hexValue":"30","id":77610,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22334:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22322:13:130"},"loopExpression":{"expression":{"id":77617,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22366:3:130","subExpression":{"id":77616,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77609,"src":"22366:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77618,"nodeType":"ExpressionStatement","src":"22366:3:130"},"nodeType":"ForStatement","src":"22317:252:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"22118:23:130","parameters":{"id":77597,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77596,"mutability":"mutable","name":"_member","nameLocation":"22150:7:130","nodeType":"VariableDeclaration","scope":77631,"src":"22142:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77595,"name":"address","nodeType":"ElementaryTypeName","src":"22142:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22141:17:130"},"returnParameters":{"id":77598,"nodeType":"ParameterList","parameters":[],"src":"22168:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77691,"nodeType":"FunctionDefinition","src":"22581:571:130","nodes":[],"body":{"id":77690,"nodeType":"Block","src":"22664:488:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77640,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75967,"src":"22674:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77641,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22674:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77642,"nodeType":"ExpressionStatement","src":"22674:17:130"},{"condition":{"id":77644,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22705:14:130","subExpression":{"id":77643,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76127,"src":"22706:13:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77649,"nodeType":"IfStatement","src":"22701:68:130","trueBody":{"id":77648,"nodeType":"Block","src":"22721:48:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77645,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76075,"src":"22742:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77646,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22742:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77647,"nodeType":"RevertStatement","src":"22735:23:130"}]}},{"condition":{"id":77653,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22782:18:130","subExpression":{"arguments":[{"id":77651,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22792:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77650,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77273,"src":"22783:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77652,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22783:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77658,"nodeType":"IfStatement","src":"22778:75:130","trueBody":{"id":77657,"nodeType":"Block","src":"22802:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77654,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76053,"src":"22823:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77655,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22823:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77656,"nodeType":"RevertStatement","src":"22816:26:130"}]}},{"assignments":[77661],"declarations":[{"constant":false,"id":77661,"mutability":"mutable","name":"member","nameLocation":"22876:6:130","nodeType":"VariableDeclaration","scope":77690,"src":"22862:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77660,"nodeType":"UserDefinedTypeName","pathNode":{"id":77659,"name":"Member","nameLocations":["22862:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":76092,"src":"22862:6:130"},"referencedDeclaration":76092,"src":"22862:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77665,"initialValue":{"baseExpression":{"id":77662,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"22885:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77664,"indexExpression":{"id":77663,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22905:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22885:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22862:51:130"},{"expression":{"arguments":[{"id":77667,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22947:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77666,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77631,"src":"22923:23:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77668,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22923:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77669,"nodeType":"ExpressionStatement","src":"22923:32:130"},{"expression":{"id":77673,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"22965:35:130","subExpression":{"baseExpression":{"id":77670,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76174,"src":"22972:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76092_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77672,"indexExpression":{"id":77671,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"22992:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22972:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77674,"nodeType":"ExpressionStatement","src":"22965:35:130"},{"expression":{"arguments":[{"id":77678,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"23032:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77679,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77661,"src":"23050:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77680,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23057:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"23050:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77675,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76149,"src":"23011:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23023:8:130","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"23011:20:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77681,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23011:59:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77682,"nodeType":"ExpressionStatement","src":"23011:59:130"},{"eventCall":{"arguments":[{"id":77684,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77633,"src":"23098:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77685,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77635,"src":"23107:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77686,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77661,"src":"23125:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76092_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77687,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23132:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76089,"src":"23125:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77683,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75888,"src":"23085:12:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":77688,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23085:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77689,"nodeType":"EmitStatement","src":"23080:65:130"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":77638,"kind":"modifierInvocation","modifierName":{"id":77637,"name":"nonReentrant","nameLocations":["22651:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"22651:12:130"},"nodeType":"ModifierInvocation","src":"22651:12:130"}],"name":"kickMember","nameLocation":"22590:10:130","parameters":{"id":77636,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77633,"mutability":"mutable","name":"_member","nameLocation":"22609:7:130","nodeType":"VariableDeclaration","scope":77691,"src":"22601:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77632,"name":"address","nodeType":"ElementaryTypeName","src":"22601:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77635,"mutability":"mutable","name":"_transferAddress","nameLocation":"22626:16:130","nodeType":"VariableDeclaration","scope":77691,"src":"22618:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77634,"name":"address","nodeType":"ElementaryTypeName","src":"22618:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22600:43:130"},"returnParameters":{"id":77639,"nodeType":"ParameterList","parameters":[],"src":"22664:0:130"},"scope":77692,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":75833,"name":"ReentrancyGuard","nameLocations":["1660:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":56109,"src":"1660:15:130"},"id":75834,"nodeType":"InheritanceSpecifier","src":"1660:15:130"},{"baseName":{"id":75835,"name":"AccessControl","nameLocations":["1677:13:130"],"nodeType":"IdentifierPath","referencedDeclaration":55308,"src":"1677:13:130"},"id":75836,"nodeType":"InheritanceSpecifier","src":"1677:13:130"}],"canonicalName":"RegistryCommunity","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77692,55308,58105,58311,55381,57742,56109],"name":"RegistryCommunity","nameLocation":"1639:17:130","scope":77693,"usedErrors":[76047,76049,76051,76053,76055,76057,76059,76061,76063,76065,76067,76069,76071,76073,76075,76077,76079,76085]}],"license":"AGPL-3.0-only"},"id":130} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"COUNCIL_MEMBER_CHANGE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PRECISION_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"acceptCouncilSafe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"activateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategy","inputs":[{"name":"_newStrategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addressToMemberInfo","inputs":[{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"member","type":"address","internalType":"address"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FAllo"}],"stateMutability":"view"},{"type":"function","name":"cloneNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"councilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISafe"}],"stateMutability":"view"},{"type":"function","name":"covenantIpfsHash","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"createPool","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"_strategy","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deactivateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_amountUnstaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enabledStrategies","inputs":[{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isEnabled","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"feeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"gardenToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getBasisStakedAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberPowerInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberStakedAmount","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStakeAmountWithFees","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"increasePower","inputs":[{"name":"_amountStaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCouncilMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isKickEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"_isMember","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"kickMember","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_transferAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"memberActivatedInStrategies","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isActivated","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberPowerInStrategy","inputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"power","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"pendingCouncilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"profileId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerStakeAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"registryFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasisStakedAmount","inputs":[{"name":"_newAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityFee","inputs":[{"name":"_newCommunityFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCouncilSafe","inputs":[{"name":"_safe","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"strategiesByMember","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategiesAddresses","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"strategyTemplate","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"unregisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AlloSet","inputs":[{"name":"_allo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BasisStakedAmountSet","inputs":[{"name":"_newAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CommunityFeeUpdated","inputs":[{"name":"_newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CouncilSafeChangeStarted","inputs":[{"name":"_safeOwner","type":"address","indexed":false,"internalType":"address"},{"name":"_newSafeOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CouncilSafeSet","inputs":[{"name":"_safe","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberActivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberDeactivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberKicked","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_transferAddress","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerDecreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_unstakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerIncreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_stakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountStaked","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"_poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_token","type":"address","indexed":false,"internalType":"address"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryInitialized","inputs":[{"name":"_profileId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_communityName","type":"string","indexed":false,"internalType":"string"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyAdded","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CantDecreaseMoreThanPower","inputs":[{"name":"_decreaseAmount","type":"uint256","internalType":"uint256"},{"name":"_currentPower","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DecreaseUnderMinimum","inputs":[]},{"type":"error","name":"KickNotEnabled","inputs":[]},{"type":"error","name":"NewFeeGreaterThanMax","inputs":[]},{"type":"error","name":"PointsDeactivated","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SenderNotNewOwner","inputs":[]},{"type":"error","name":"SenderNotStrategy","inputs":[]},{"type":"error","name":"StrategyDisabled","inputs":[]},{"type":"error","name":"StrategyExists","inputs":[]},{"type":"error","name":"UserAlreadyActivated","inputs":[]},{"type":"error","name":"UserAlreadyDeactivated","inputs":[]},{"type":"error","name":"UserAlreadyRegistered","inputs":[]},{"type":"error","name":"UserNotGardenOwner","inputs":[]},{"type":"error","name":"UserNotInCouncil","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ValueCannotBeZero","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212203c4ff9afac5dd82a85680e0f646b9a25ff724a8be36ccb90c81d1dcad98c794864736f6c63430008130033","sourceMap":"1641:21524:129:-:0;;;7769:145;;;;;;;;;-1:-1:-1;1716:1:68;1821:7;:22;;;7851:56:129;;2101:34;;7851:13;:56::i;:::-;1641:21524;;7172:247:58;7255:25;4604:12;;;:6;:12;;;;;;;;:22;;;;;7311:34;;;;7360:52;;4604:22;;7311:34;;4604:22;;:12;;7360:52;;7255:25;7360:52;7245:174;7172:247;;:::o;1641:21524:129:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212203c4ff9afac5dd82a85680e0f646b9a25ff724a8be36ccb90c81d1dcad98c794864736f6c63430008130033","sourceMap":"1641:21524:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2732:202:58;;;;;;:::i;:::-;;:::i;:::-;;;516:14:145;;509:22;491:41;;479:2;464:18;2732:202:58;;;;;;;;20900:107:129;20981:19;;20900:107;;;689:25:145;;;677:2;662:18;20900:107:129;543:177:145;6545:24:129;;;;;;21201:280;;;;;;:::i;:::-;;:::i;:::-;;10877:1179;;;;;;:::i;:::-;;:::i;17592:120::-;;;;;;:::i;:::-;;:::i;6303:25::-;;;;;;;;;16650:120;;;;;;:::i;:::-;;:::i;12062:691::-;;;;;;:::i;:::-;;:::i;4504:129:58:-;;;;;;:::i;:::-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;;4504:129;20427:467:129;;;:::i;7420:82::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2704:55:145;;;2686:74;;2674:2;2659:18;7420:82:129;2540:226:145;16059:143:129;;;;;;:::i;:::-;-1:-1:-1;;;;;16154:28:129;16128:7;16154:28;;;:19;:28;;;;;:41;;;;16059:143;4929:145:58;;;;;;:::i;:::-;;:::i;21013:182:129:-;;;;;;:::i;:::-;;:::i;6725:25::-;;;;;;18514:1907;;;:::i;6038:214:58:-;;;;;;:::i;:::-;;:::i;17718:240:129:-;;;;;;:::i;:::-;;:::i;7175:68::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;7508:107;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;13190:998;;;;;;:::i;:::-;;:::i;6688:31::-;;;;;-1:-1:-1;;;;;6688:31:129;;;14328:1554;;;;;;:::i;:::-;;:::i;7249:98::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;22592:571;;;;;;:::i;:::-;;:::i;6756:41::-;;;;;-1:-1:-1;;;;;6756:41:129;;;6937:24;;;;;-1:-1:-1;;;;;6937:24:129;;;17165:229;;;;;;:::i;:::-;;:::i;15888:165::-;;;;;;:::i;:::-;-1:-1:-1;;;;;16005:30:129;;;15979:7;16005:30;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;;15888:165;6472:34;;;;;;6875:25;;;;;-1:-1:-1;;;;;6875:25:129;;;16331:313;;;;;;:::i;:::-;;:::i;7354:60::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7354:60:129;;;;;;;;;;;;;-1:-1:-1;;;;;4307:55:145;;;4289:74;;4394:2;4379:18;;4372:34;;;;4449:14;4442:22;4422:18;;;4415:50;4277:2;4262:18;7354:60:129;4093:378:145;6512:27:129;;;;;;3021:145:58;;;;;;:::i;:::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;;;;3021:145;7920:1945:129;;;;;;:::i;:::-;;:::i;9871:341::-;;;;;;:::i;:::-;;:::i;:::-;;;;11918:25:145;;;-1:-1:-1;;;;;11979:55:145;;;11974:2;11959:18;;11952:83;11891:18;9871:341:129;11744:297:145;2053:82:129;;2101:34;2053:82;;1807:75;;1840:42;1807:75;;2153:49:58;;2198:4;2153:49;;18326:182:129;;;;;;:::i;:::-;-1:-1:-1;;;;;18434:28:129;;;18382:14;18434:28;;;:19;:28;;;;;;;;;18408:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18326:182;6620:26;;;;;-1:-1:-1;;;;;6620:26:129;;;18149:171;;;:::i;7081:30::-;;;:::i;:::-;;;;;;;:::i;21661:453::-;;;:::i;7708:54::-;;;:::i;7048:27::-;;;:::i;10218:653::-;;;;;;:::i;:::-;;:::i;5354:147:58:-;;;;;;:::i;:::-;;:::i;6967:17:129:-;;;;;-1:-1:-1;;;;;6967:17:129;;;7653:49;;7695:7;7653:49;;6906:25;;;;;-1:-1:-1;;;;;6906:25:129;;;21523:132;;;;;;:::i;:::-;;:::i;6652:30::-;;;;;-1:-1:-1;;;;;6652:30:129;;;2732:202:58;2817:4;-1:-1:-1;;;;;;2840:47:58;;2855:32;2840:47;;:87;;-1:-1:-1;;;;;;;;;;937:40:83;;;2891:36:58;2833:94;2732:202;-1:-1:-1;;2732:202:58:o;21201:280:129:-;21269:17;:15;:17::i;:::-;7742:20;7695:7;7742:2;:20;:::i;:::-;21300:16;:26;21296:86;;;21349:22;;;;;;;;;;;;;;21296:86;21391:12;:31;;;21437:37;;689:25:145;;;21437:37:129;;677:2:145;662:18;21437:37:129;;;;;;;;21201:280;:::o;10877:1179::-;10964:34;10990:7;10964:25;:34::i;:::-;11008:30;11028:9;11008:19;:30::i;:::-;11048:29;11067:9;11048:18;:29::i;:::-;-1:-1:-1;;;;;11092:36:129;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;11088:107;;;11162:22;;;;;;;;;;;;;;11088:107;-1:-1:-1;;;;;11228:28:129;;;11205:20;11228:28;;;:19;:28;;;;;;;;;11205:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11351:19;;;;11400:9;-1:-1:-1;;;;;11385:40:129;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;;;;;;:::i;:::-;;11381:384;;11502:51;;-1:-1:-1;;;11502:51:129;;-1:-1:-1;;;;;15092:55:145;;;11502:51:129;;;15074:74:145;11551:1:129;15164:18:145;;;15157:34;11502:39:129;;;;;15047:18:145;;11502:51:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11483:70;;11381:384;;;11620:32;11589:9;-1:-1:-1;;;;;11574:40:129;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;;;;;;:::i;:::-;;11570:195;;11687:67;;-1:-1:-1;;;11687:67:129;;-1:-1:-1;;;;;15092:55:145;;;11687:67:129;;;15074:74:145;15164:18;;;15157:34;;;11687:39:129;;;;;15047:18:145;;11687:67:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11668:86;;11570:195;-1:-1:-1;;;;;11775:30:129;;;;;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;:60;;;11864:36;;;:27;:36;;;;;:47;;;;;;;;:54;;-1:-1:-1;;11864:54:129;11914:4;11864:54;;;;;;11929:27;;;:18;:27;;;;;:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;11929:43:129;;;;;11988:61;;15956:34:145;;;16006:18;;15999:43;;;;16058:18;;;16051:34;;;11988:61:129;;15883:2:145;15868:18;11988:61:129;;;;;;;10954:1102;;;10877:1179;;:::o;17592:120::-;17652:17;:15;:17::i;:::-;17679:26;17695:9;17679:15;:26::i;:::-;17592:120;:::o;16650:::-;16710:17;:15;:17::i;:::-;16737:26;16750:12;16737;:26::i;12062:691::-;12151:34;12177:7;12151:25;:34::i;:::-;12195:29;12214:9;12195:18;:29::i;:::-;12234:42;12254:10;12266:9;12234:19;:42::i;:::-;-1:-1:-1;;;;;12292:36:129;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;12287:110;;12362:24;;;;;;;;;;;;;;12287:110;-1:-1:-1;;;;;12407:36:129;;;12457:5;12407:36;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;:55;;-1:-1:-1;;12407:55:129;;;12472:30;;;:21;:30;;;;;:41;;;;;;;;;:45;12527:44;12435:7;12444:9;12527:24;:44::i;:::-;12701:45;;;-1:-1:-1;;;;;16349:15:145;;;16331:34;;16401:15;;16396:2;16381:18;;16374:43;12701:45:129;;16243:18:145;12701:45:129;;;;;;;12062:691;;:::o;20427:467::-;20550:15;;20482:7;;-1:-1:-1;;;;;20550:15:129;20482:7;20645:21;7695:7;20645:3;:21;:::i;:::-;20628:12;;20606:19;;:34;;;;:::i;:::-;20605:62;;;;:::i;:::-;20576:91;-1:-1:-1;20677:24:129;20788:21;7695:7;20788:3;:21;:::i;:::-;20739:44;;-1:-1:-1;;;20739:44:129;;20777:4;20739:44;;;2686:74:145;-1:-1:-1;;;;;20739:29:129;;;;;2659:18:145;;20739:44:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20717:19;;:66;;;;:::i;:::-;20716:94;;;;:::i;:::-;20677:133;;20871:16;20850:18;20828:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;20821:66;;;;;20427:467;:::o;7420:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;7420:82:129;;-1:-1:-1;7420:82:129;;-1:-1:-1;7420:82:129:o;4929:145:58:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5042:25:::1;5053:4;5059:7;5042:10;:25::i;:::-;4929:145:::0;;;:::o;21013:182:129:-;21082:17;:15;:17::i;:::-;21109:19;:32;;;21156;;689:25:145;;;21156:32:129;;677:2:145;662:18;21156:32:129;543:177:145;18514:1907:129;2261:21:68;:19;:21::i;:::-;18596:10:129::1;18578:15;18643:28:::0;;;:19:::1;:28;::::0;;;;18730:15:::1;::::0;18643:28;;-1:-1:-1;;;;;18730:15:129;;::::1;::::0;18825:21:::1;7695:7;18825:3;:21;:::i;:::-;18808:12;;18786:19;;:34;;;;:::i;:::-;18785:62;;;;:::i;:::-;18756:91:::0;-1:-1:-1;18857:24:129::1;18968:21;7695:7;18968:3;:21;:::i;:::-;18919:44;::::0;-1:-1:-1;;;18919:44:129;;18957:4:::1;18919:44;::::0;::::1;2686:74:145::0;-1:-1:-1;;;;;18919:29:129;::::1;::::0;::::1;::::0;2659:18:145;;18919:44:129::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18897:19;;:66;;;;:::i;:::-;18896:94;;;;:::i;:::-;-1:-1:-1::0;;;;;18434:28:129;;;18382:14;18434:28;;;:19;:28;;;;;;;;;18408:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18857:133;;-1:-1:-1;19000:1415:129::1;;19038:22;::::0;::::1;:29:::0;;-1:-1:-1;;19038:29:129::1;19063:4;19038:29:::0;;::::1;::::0;;;19107:19:::1;::::0;19082:22;;::::1;:44:::0;19212:48:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19247:11:::1;::::0;19212:48:::1;::::0;;-1:-1:-1;;;;;19247:11:129::1;19212;:48::i;:::-;19275:143;19321:7;19338:4;19388:16;19367:18;19345:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;19275:11;::::0;-1:-1:-1;;;;;19275:11:129::1;::::0;:143;;:28:::1;:143::i;:::-;19769:53;;;;;;;;;;;;;;;;;::::0;19803:18:::1;19769:11;:53::i;:::-;19840:22:::0;;19836:175:::1;;19882:39;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;19909:11:::1;::::0;19882:39:::1;::::0;;-1:-1:-1;;;;;19909:11:129::1;19882;:39::i;:::-;19964:11;::::0;19939::::1;::::0;:57:::1;::::0;-1:-1:-1;;;;;19939:11:129;;::::1;::::0;19964::::1;19977:18:::0;19939:24:::1;:57::i;:::-;20024:49;;;;;;;;;;;;;;;;;::::0;20056:16:::1;20024:11;:49::i;:::-;20091:20:::0;;20087:252:::1;;20131:93;;;;;;;;;;;;;;;;;;20185:14;-1:-1:-1::0;;;;;20185:36:129::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20131:11;:93::i;:::-;20242:82;20267:14;-1:-1:-1::0;;;;;20267:36:129::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20242:11;::::0;-1:-1:-1;;;;;20242:11:129::1;::::0;20307:16;20242:24:::1;:82::i;:::-;20384:19;::::0;20358:46:::1;::::0;;-1:-1:-1;;;;;15092:55:145;;15074:74;;15179:2;15164:18;;15157:34;;;;20358:46:129::1;::::0;15047:18:145;20358:46:129::1;;;;;;;19000:1415;18568:1853;;;;;2303:20:68::0;1716:1;2809:7;:22;2629:209;2303:20;18514:1907:129:o;6038:214:58:-;-1:-1:-1;;;;;6133:23:58;;719:10:80;6133:23:58;6125:83;;;;-1:-1:-1;;;6125:83:58;;17295:2:145;6125:83:58;;;17277:21:145;17334:2;17314:18;;;17307:30;17373:34;17353:18;;;17346:62;17444:17;17424:18;;;17417:45;17479:19;;6125:83:58;;;;;;;;;6219:26;6231:4;6237:7;6219:11;:26::i;:::-;6038:214;;:::o;17718:240:129:-;17782:17;:15;:17::i;:::-;17809:25;17828:5;17809:18;:25::i;:::-;17844:18;:26;;-1:-1:-1;;;;;;17844:26:129;-1:-1:-1;;;;;17844:26:129;;;;;;;;;17918:11;;17885:66;;;17918:11;;;;16331:34:145;;16396:2;16381:18;;16374:43;;;;17885:66:129;;16243:18:145;17885:66:129;16096:327:145;13190:998:129;2261:21:68;:19;:21::i;:::-;13266:26:129::1;:24;:26::i;:::-;13319:10;13302:14;13375:26:::0;;;:18:::1;:26;::::0;;;;;;;13339:62;;;;;;::::1;::::0;;;;;;;;;;;;13375:26;;13339:62;;::::1;13375:26:::0;13339:62;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;13339:62:129::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;13412:24;13452:9:::0;13464:1:::1;13452:13;;13447:533;13471:16;:23;13467:1;:27;13447:533;;;13654:16;13671:1;13654:19;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;13639:72:::1;::::0;-1:-1:-1;;;13639:72:129;;-1:-1:-1;;;;;15092:55:145;;;13639:72:129::1;::::0;::::1;15074:74:145::0;15164:18;;;15157:34;;;13639:49:129;;::::1;::::0;::::1;::::0;15047:18:145;;13639:72:129::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13620:91:::0;-1:-1:-1;13729:21:129;;13725:229:::1;;-1:-1:-1::0;;;;;13770:29:129;::::1;;::::0;;;:21:::1;:29;::::0;;;;13800:19;;13824:16;;13770:29;13800:16;;13817:1;;13800:19;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13770:50:129::1;-1:-1:-1::0;;;;;13770:50:129::1;;;;;;;;;;;;;:70;;;;;;;:::i;:::-;;;;;;;;13858:81;;;;;;;;;;;;;;;;;::::0;13888:21:::1;:29;13910:6;-1:-1:-1::0;;;;;13888:29:129::1;-1:-1:-1::0;;;;;13888:29:129::1;;;;;;;;;;;;:50;13918:16;13935:1;13918:19;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;13888:50:129::1;-1:-1:-1::0;;;;;13888:50:129::1;;;;;;;;;;;;;13858:11;:81::i;:::-;13496:3:::0;::::1;::::0;::::1;:::i;:::-;;;;13447:533;;;-1:-1:-1::0;13990:11:129::1;::::0;:66:::1;::::0;-1:-1:-1;;;;;13990:11:129::1;14019:6:::0;14035:4:::1;14042:13:::0;13990:28:::1;:66::i;:::-;-1:-1:-1::0;;;;;14066:27:129;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:57:::0;;14110:13;;14066:27;:57:::1;::::0;14110:13;;14066:57:::1;:::i;:::-;::::0;;;-1:-1:-1;;14138:43:129::1;::::0;;-1:-1:-1;;;;;15092:55:145;;15074:74;;15179:2;15164:18;;15157:34;;;14138:43:129::1;::::0;15047:18:145;14138:43:129::1;;;;;;;;13256:932;;;2303:20:68::0;1716:1;2809:7;:22;2629:209;14328:1554:129;2261:21:68;:19;:21::i;:::-;14406:26:129::1;:24;:26::i;:::-;14459:10;14442:14;14516:26:::0;;;:18:::1;:26;::::0;;;;;;;14653:19:::1;::::0;14592::::1;:27:::0;;;;;;:40:::1;;::::0;14516:26;;14442:14;14653:19;14592:58:::1;::::0;14635:15;;14592:58:::1;:::i;:::-;:80;14588:140;;;14695:22;;;;;;;;;;;;;;14588:140;14737:11;::::0;:49:::1;::::0;-1:-1:-1;;;;;14737:11:129::1;14762:6:::0;14770:15;14737:24:::1;:49::i;:::-;14801:9;14796:951;14820:23:::0;;14816:27;::::1;14796:951;;;14864:16;14883;14900:1;14883:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;14883:19:129::1;::::0;-1:-1:-1;14920:60:129::1;14883:19:::0;-1:-1:-1;;;14920:26:129::1;:60::i;:::-;14916:804;;;15019:63;::::0;;;;-1:-1:-1;;;;;15092:55:145;;;15019:63:129::1;::::0;::::1;15074:74:145::0;15164:18;;;15157:34;;;15019:38:129;::::1;::::0;::::1;::::0;15047:18:145;;15019:63:129::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15000:82;;15100:20;15123:21;:29;15145:6;-1:-1:-1::0;;;;;15123:29:129::1;-1:-1:-1::0;;;;;15123:29:129::1;;;;;;;;;;;;:50;15153:16;15170:1;15153:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15153:19:129::1;15123:50:::0;;;::::1;::::0;;;;;;;;;;-1:-1:-1;15195:31:129;;::::1;15191:259;;;15257:57;::::0;::::1;::::0;;::::1;::::0;::::1;18485:25:145::0;;;18526:18;;;18519:34;;;18458:18;;15257:57:129::1;18311:248:145::0;15191:259:129::1;-1:-1:-1::0;;;;;15361:29:129;::::1;;::::0;;;:21:::1;:29;::::0;;;;15391:19;;15415:16;;15361:29;15391:16;;15408:1;;15391:19;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;15391:19:129::1;15361:50:::0;;;::::1;::::0;;;;;;;;:70;;:50;;15391:19;15361:70:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;14982:482:129::1;14916:804;;;15594:23:::0;;15577:16;;15594:27:::1;::::0;15620:1:::1;::::0;15594:27:::1;:::i;:::-;15577:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;15577:45:129::1;15555:16;15572:1;15555:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1::0;;;;;15555:67:129::1;;;;;-1:-1:-1::0;;;;;15555:67:129::1;;;;;;15640:16;:22;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;15640:22:129;;;;;-1:-1:-1;;;;;;15640:22:129::1;::::0;;;;;15680:25:::1;15696:8:::0;15680:15:::1;:25::i;:::-;-1:-1:-1::0;14845:3:129;::::1;::::0;::::1;:::i;:::-;;;;14796:951;;;-1:-1:-1::0;;;;;;15756:27:129;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:59:::0;;15800:15;;15756:27;:59:::1;::::0;15800:15;;15756:59:::1;:::i;:::-;::::0;;;-1:-1:-1;;15830:45:129::1;::::0;;-1:-1:-1;;;;;15092:55:145;;15074:74;;15179:2;15164:18;;15157:34;;;15830:45:129::1;::::0;15047:18:145;15830:45:129::1;14892:305:145::0;22592:571:129;2261:21:68;:19;:21::i;:::-;22685:17:129::1;:15;:17::i;:::-;22717:13;::::0;::::1;;22712:68;;22753:16;;;;;;;;;;;;;;22712:68;-1:-1:-1::0;;;;;18434:28:129;;;18382:14;18434:28;;;:19;:28;;;;;;;;;18408:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22789:75:::1;;22834:19;;-1:-1:-1::0;;;22834:19:129::1;;;;;;;;;;;22789:75;-1:-1:-1::0;;;;;22896:28:129;;::::1;22873:20;22896:28:::0;;;:19:::1;:28;::::0;;;;;;;;22873:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;::::1;;;;::::0;;;;22934:32:::1;22916:7:::0;22934:23:::1;:32::i;:::-;-1:-1:-1::0;;;;;22983:28:129;;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;22976:35;;-1:-1:-1;;;;;;22976:35:129::1;::::0;;-1:-1:-1;22976:35:129;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;22976:35:129::1;::::0;;23022:11:::1;::::0;23061:19;;::::1;::::0;23022:59;;-1:-1:-1;;;23022:59:129;;15092:55:145;;;23022:59:129::1;::::0;::::1;15074:74:145::0;15164:18;;;15157:34;;;;23022:11:129;;::::1;::::0;:20:::1;::::0;15047:18:145;;23022:59:129::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23136:19:129::1;::::0;;::::1;::::0;23096:60:::1;::::0;;-1:-1:-1;;;;;15974:15:145;;;15956:34;;16026:15;;16006:18;;;15999:43;;;;16058:18;;16051:34;23096:60:129::1;::::0;15883:2:145;15868:18;23096:60:129::1;;;;;;;22675:488;2303:20:68::0;1716:1;2809:7;:22;2629:209;17165:229:129;17230:17;:15;:17::i;:::-;17284:4;;:20;;-1:-1:-1;;;17284:20:129;;;;;689:25:145;;;17257:16:129;;-1:-1:-1;;;;;17284:4:129;;:12;;662:18:145;;17284:20:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;17284:20:129;;;;;;;;;;;;:::i;:::-;:29;;;17257:57;;17324:28;17343:8;17324:18;:28::i;:::-;17362:25;17378:8;17362:15;:25::i;16331:313::-;16393:17;:15;:17::i;:::-;16447:4;;:20;;-1:-1:-1;;;16447:20:129;;;;;689:25:145;;;16420:16:129;;-1:-1:-1;;;;;16447:4:129;;:12;;662:18:145;;16447:20:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;16447:20:129;;;;;;;;;;;;:::i;:::-;:29;;;16420:57;;16487:28;16506:8;16487:18;:28::i;:::-;16529:60;-1:-1:-1;;;;;16529:26:129;;-1:-1:-1;;;16529:26:129;:60::i;:::-;16525:113;;;16605:22;16618:8;16605:12;:22::i;7920:1945::-;8007:48;8034:6;:19;;;8007:18;:48::i;:::-;8065:39;8084:6;:19;;;8065:18;:39::i;:::-;8133:12;;8114:32;;:18;:32::i;:::-;8156:43;8175:6;:23;;;8156:18;:43::i;:::-;8209:44;8228:6;:24;;;8209:18;:44::i;:::-;8268:20;;;;:25;8264:95;;8309:39;8328:6;:19;;;8309:18;:39::i;:::-;8381:12;;8368:4;:26;;-1:-1:-1;;;;;8368:26:129;;;-1:-1:-1;;;;;;8368:26:129;;;;;;;8418:19;;;;8404:11;:33;;;;;;;;;;;8451:27;;;;8381:12;8451:32;8447:89;;8506:19;;;;;;;;;;;;;;8447:89;8567:27;;;;8545:19;:49;8619:20;;;;8604:12;:35;8665:21;;;;8649:13;:37;;-1:-1:-1;;8649:37:129;;;;;;;;;;8712:21;;;;8696:13;;:37;;:13;:37;:::i;:::-;-1:-1:-1;8762:23:129;;;;8743:16;;:42;;:16;:42;:::i;:::-;-1:-1:-1;8813:23:129;;;;8795:15;:41;;-1:-1:-1;;;;;;8795:41:129;;;-1:-1:-1;;;;;8795:41:129;;;;;;;8860:19;;;;8846:11;:33;;;;;;;;;;;;;8795:41;8909:19;;;8889:11;:40;;;;;;;;;;8958:24;;;;8939:16;:43;;;;;;;;;;;;;8993:54;;2101:34;;8993:10;:54::i;:::-;9079:4;;;;;;;;;-1:-1:-1;;;;;9079:4:129;-1:-1:-1;;;;;9079:16:129;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9058:8;:40;;-1:-1:-1;;;;;;9058:40:129;-1:-1:-1;;;;;9058:40:129;;;;;;9135:11;;:23;;;;;;;;-1:-1:-1;;9135:11:129;;;;;:21;;:23;;;;;-1:-1:-1;;9135:23:129;;;;;;;;:11;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9135:23:129;;;;;;;;;;;;:::i;:::-;9109:49;;9168:36;9221:6;:13;9237:1;9221:17;;;;:::i;:::-;9207:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9207:32:129;;9168:71;;9255:9;9250:103;9274:6;:13;9270:1;:17;9250:103;;;9333:6;9340:1;9333:9;;;;;;;;:::i;:::-;;;;;;;9308:19;9328:1;9308:22;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9308:34:129;;;:22;;;;;;;;;;;:34;9289:3;;;;:::i;:::-;;;;9250:103;;;-1:-1:-1;9425:11:129;;9383:26;;-1:-1:-1;;;;;9425:11:129;;;;9363:19;;9383:30;;9425:11;;9383:30;:::i;:::-;9363:51;;;;;;;;:::i;:::-;;;;;;:74;-1:-1:-1;;;;;9363:74:129;;;-1:-1:-1;;;;;9363:74:129;;;;;9509:4;9447:19;9496:1;9467:19;:26;:30;;;;:::i;:::-;9447:51;;;;;;;;:::i;:::-;-1:-1:-1;;;;;9447:67:129;;;:51;;;;;;;;;:67;9626:8;;9649:13;;;;9679:16;;;;9626:106;;;;;:8;;;;;:22;;:106;;9649:13;9664;;9705:4;;9712:19;;9626:106;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;9602:9;:130;9743:36;;;;:14;;:36;;;;;:::i;:::-;;9795:63;9815:9;;9826:13;9841:6;:16;;;9795:63;;;;;;;;:::i;:::-;;;;;;;;7997:1868;;7920:1945;:::o;9871:341::-;10104:16;;10122:10;:12;;10014:14;;;;;;10086:49;;-1:-1:-1;;;;;10104:16:129;;10014:14;10122:12;;;:::i;:::-;;;;;10086:17;:49::i;:::-;10062:73;;10152:53;10163:13;10178:6;10186:7;10195:9;10152:10;:53::i;:::-;10145:60;;;;;9871:341;;;;;;:::o;18149:171::-;18213:18;;-1:-1:-1;;;;;18213:18:129;18199:10;:32;18195:89;;18254:19;;;;;;;;;;;;;;18195:89;18293:20;:18;:20::i;7081:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;21661:453::-;2261:21:68;:19;:21::i;:::-;21737:10:129::1;21757:34;21737:10:::0;21757:25:::1;:34::i;:::-;21801:32;21825:7;21801:23;:32::i;:::-;-1:-1:-1::0;;;;;21866:28:129;;::::1;21843:20;21866:28:::0;;;:19:::1;:28;::::0;;;;;;;21843:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;;::::0;;;;21911:28;;;-1:-1:-1;;;;;;21904:35:129;;::::1;::::0;;;;;;;-1:-1:-1;;21904:35:129;;::::1;::::0;;;21956:18:::1;:27:::0;;;;;21843:51;;21949:34:::1;::::0;21956:27;21949:34:::1;:::i;:::-;21994:11;::::0;22024:19:::1;::::0;::::1;::::0;21994:50:::1;::::0;-1:-1:-1;;;21994:50:129;;-1:-1:-1;;;;;15092:55:145;;;21994:50:129::1;::::0;::::1;15074:74:145::0;15164:18;;;15157:34;;;;21994:11:129;::::1;::::0;:20:::1;::::0;15047:18:145;;21994:50:129::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;22087:19:129::1;::::0;;::::1;::::0;22059:48:::1;::::0;;-1:-1:-1;;;;;15092:55:145;;15074:74;;15164:18;;;15157:34;;;;22059:48:129::1;::::0;15047:18:145;22059:48:129::1;;;;;;;21709:405;;2303:20:68::0;1716:1;2809:7;:22;2629:209;7708:54:129;7742:20;7695:7;7742:2;:20;:::i;:::-;7708:54;:::o;7048:27::-;;;;;;;:::i;10218:653::-;10402:14;;1840:42;-1:-1:-1;;;;;10482:20:129;;;10478:65;;-1:-1:-1;10526:6:129;10478:65;10563:9;10552:20;;10583:31;10617:14;10583:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;10583:48:129;;;;;;;;;;;;;;;;-1:-1:-1;;10651:4:129;;10698:9;;10719:19;;10583:48;;-1:-1:-1;;;;;;10651:4:129;;;;:33;;-1:-1:-1;10698:9:129;;-1:-1:-1;10709:8:129;;-1:-1:-1;10719:19:129;;10730:7;;10719:19;;;:::i;:::-;;;;;;;;;;;;;10740:5;10747:1;10750:9;10761:14;10651:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10642:143;;10801:63;10813:6;10821:8;10839:4;10846:6;10854:9;10801:63;;;;;;;;;;:::i;:::-;;;;;;;;10436:435;;10218:653;;;;;;;:::o;5354:147:58:-;4578:7;4604:12;;;:6;:12;;;;;;;;:22;;2631:16;2642:4;2631:10;:16::i;:::-;5468:26:::1;5480:4;5486:7;5468:11;:26::i;21523:132:129:-:0;-1:-1:-1;;;;;3130:29:58;;21586:4:129;3130:29:58;;;:12;;:29;:12;:29;;;;;21609:39:129;3021:145:58;3575:155:129;3661:10;3107:4:58;3130:29;;;:12;;:29;:12;:29;;;;;3625:99:129;;3695:18;;;;;;;;;;;;;;3885:156;-1:-1:-1;;;;;18434:28:129;;;18382:14;18434:28;;;:19;:28;;;;;;;;;18408:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3960:75;;4005:19;;-1:-1:-1;;;4005:19:129;;;;;;;;;;;4047:162;-1:-1:-1;;;;;4123:28:129;;;;;;:17;:28;;;;;;;;4118:85;;4174:18;;;;;;;;;;;;;;17026:133;-1:-1:-1;;;;;17100:22:129;;17096:56;;17131:21;;;;;;;;;;;;;;17400:186;17463:29;17482:9;17463:18;:29::i;:::-;-1:-1:-1;;;;;17502:28:129;;17533:5;17502:28;;;:17;:28;;;;;;;;;:36;;-1:-1:-1;;17502:36:129;;;17553:26;;2686:74:145;;;17553:26:129;;2659:18:145;17553:26:129;2540:226:145;16776:244:129;-1:-1:-1;;;;;16843:31:129;;;;;;:17;:31;;;;;;;;16839:85;;;16897:16;;;;;;;;;;;;;;16839:85;-1:-1:-1;;;;;16933:31:129;;;;;;:17;:31;;;;;;;;;:38;;-1:-1:-1;;16933:38:129;16967:4;16933:38;;;16986:27;;2686:74:145;;;16986:27:129;;2659:18:145;16986:27:129;2540:226:145;4215:171:129;4318:9;-1:-1:-1;;;;;4307:20:129;:7;-1:-1:-1;;;;;4307:20:129;;4303:77;;4350:19;;;;;;;;;;;;;;12759:425;-1:-1:-1;;;;;12885:27:129;;12848:34;12885:27;;;:18;:27;;;;;;12922:256;12946:23;;12942:27;;12922:256;;;13017:9;-1:-1:-1;;;;;12994:32:129;:16;13011:1;12994:19;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;12994:19:129;:32;12990:178;;13085:23;;13068:16;;13085:27;;13111:1;;13085:27;:::i;:::-;13068:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;13068:45:129;13046:16;13063:1;13046:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1;;;;;13046:67:129;;;;;-1:-1:-1;;;;;13046:67:129;;;;;;13131:16;:22;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;13131:22:129;;;;;-1:-1:-1;;;;;;13131:22:129;;;;;;12990:178;12971:3;;;;:::i;:::-;;;;12922:256;;;;12838:346;12759:425;;:::o;3460:103:58:-;3526:30;3537:4;719:10:80;3526::58;:30::i;7587:233::-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;7665:149;;7708:12;;;;7740:4;7708:12;;;;;;;;-1:-1:-1;;;;;7708:29:58;;;;;;;;;;:36;;-1:-1:-1;;7708:36:58;;;;;;;7763:40;;719:10:80;;7708:12:58;;7763:40;;7708:12;7763:40;7587:233;;:::o;2336:287:68:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:68;;30815:2:145;2460:63:68;;;30797:21:145;30854:2;30834:18;;;30827:30;30893:33;30873:18;;;30866:61;30944:18;;2460:63:68;30613:355:145;2460:63:68;1759:1;2598:7;:18;2336:287::o;6994:145:35:-;7061:71;7124:2;7128;7077:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7077:54:35;;;;;;;;;;;;;;-1:-1:-1;;;;;7077:54:35;;;;;7061:15;:71::i;1355:203:76:-;1482:68;;-1:-1:-1;;;;;15974:15:145;;;1482:68:76;;;15956:34:145;16026:15;;16006:18;;;15999:43;16058:18;;;16051:34;;;1455:96:76;;1475:5;;1505:27;;15868:18:145;;1482:68:76;;;;-1:-1:-1;;1482:68:76;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:76;-1:-1:-1;;;;;;1482:68:76;;;;;;;;;;1455:19;:96::i;6548:139:35:-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:35;;;;;;;;;;;;;;-1:-1:-1;;;;;6628:51:35;;;;;6612:15;:68::i;941:175:76:-;1050:58;;-1:-1:-1;;;;;15092:55:145;;1050:58:76;;;15074:74:145;15164:18;;;15157:34;;;1023:86:76;;1043:5;;-1:-1:-1;;;1073:23:76;15047:18:145;;1050:58:76;14892:305:145;7991:234:58;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;8070:149;;;8144:5;8112:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8112:29:58;;;;;;;;;;:37;;-1:-1:-1;;8112:37:58;;;8168:40;719:10:80;;8112:12:58;;8168:40;;8144:5;8168:40;7991:234;;:::o;3736:143:129:-;3809:10;18382:14;18434:28;;;:19;:28;;;;;;;;;18408:54;;;;;;;;;-1:-1:-1;;;;;18408:54:129;;;;;;;;;;;;;;;;;;;;;;;;;;3795:78;;3843:19;;-1:-1:-1;;;3843:19:129;;;;;;;;;;;1349:282:84;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:84:o;22120:466:129:-;-1:-1:-1;;;;;22225:27:129;;22189:33;22225:27;;;:18;:27;;;;;;;;22189:63;;;;;;;;;;;;;;;;;;;22225:27;;22189:63;;;22225:27;22189:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22189:63:129;;;;;;;;;;;;;;;;;;;;;;;22333:9;22328:252;22352:16;:23;22348:1;:27;22328:252;;;22523:16;22540:1;22523:19;;;;;;;;:::i;:::-;;;;;;;;;;;22508:61;;;;;-1:-1:-1;;;;;2704:55:145;;;22508:61:129;;;2686:74:145;22508:52:129;;;;;;2659:18:145;;22508:61:129;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22377:3;;;;;:::i;:::-;;;;22328:252;;4749:279:6;4867:36;;-1:-1:-1;;4884:10:6;31791:2:145;31787:15;31783:53;4867:36:6;;;31771:66:145;31853:12;;;31846:28;;;4823:7:6;;;;31890:12:145;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;17964:179:129:-;18033:18;;;18013:11;:39;;-1:-1:-1;;;;;18033:18:129;;-1:-1:-1;;;;;;18013:39:129;;;;;;;18062:25;;;18102:34;;-1:-1:-1;2686:74:145;;18102:34:129;;2674:2:145;2659:18;18102:34:129;;;;;;;17964:179::o;3844:479:58:-;3107:4;3130:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3130:29:58;;;;;;;;;;;;3927:390;;4115:28;4135:7;4115:19;:28::i;:::-;4214:38;4242:4;4249:2;4214:19;:38::i;:::-;4022:252;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4022:252:58;;;;;;;;;;-1:-1:-1;;;3970:336:58;;;;;;;:::i;181:376:35:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;5173:642:76:-;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;-1:-1:-1;;;;;5618:27:76;;;:69;;;;;:::i;:::-;5592:95;;5705:10;:17;5726:1;5705:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5697:111;;;;-1:-1:-1;;;5697:111:76;;33171:2:145;5697:111:76;;;33153:21:145;33210:2;33190:18;;;33183:30;33249:34;33229:18;;;33222:62;33320:12;33300:18;;;33293:40;33350:19;;5697:111:76;32969:406:145;704:427:84;768:4;975:68;1008:7;-1:-1:-1;;;975:32:84;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:84;1093:7;-1:-1:-1;;;;;;1060:32:84;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:84:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;33542:79:145;;4592:71:84;;;;33524:98:145;;;;4592:71:84;;;;;;;;;;33497:18:145;;;;4592:71:84;;;;;;;;;-1:-1:-1;;;;;4592:71:84;-1:-1:-1;;;4592:71:84;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:84:o;2118:794:47:-;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:47;;2847:58;;;;-1:-1:-1;;;2847:58:47;;33835:2:145;2847:58:47;;;33817:21:145;33874:2;33854:18;;;33847:30;33913:25;33893:18;;;33886:53;33956:18;;2847:58:47;33633:347:145;2407:149:82;2465:13;2497:52;-1:-1:-1;;;;;2509:22:82;;343:2;1818:437;1893:13;1918:19;1950:10;1954:6;1950:1;:10;:::i;:::-;:14;;1963:1;1950:14;:::i;:::-;1940:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1940:25:82;;1918:47;;1975:15;:6;1982:1;1975:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1975:15:82;;;;;;;;;2000;:6;2007:1;2000:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2000:15:82;;;;;;;;-1:-1:-1;2030:9:82;2042:10;2046:6;2042:1;:10;:::i;:::-;:14;;2055:1;2042:14;:::i;:::-;2030:26;;2025:128;2062:1;2058;:5;2025:128;;;2096:8;2105:5;2113:3;2105:11;2096:21;;;;;;;:::i;:::-;;;;2084:6;2091:1;2084:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2084:33:82;;;;;;;;-1:-1:-1;2141:1:82;2131:11;;;;;2065:3;;;:::i;:::-;;;2025:128;;;-1:-1:-1;2170:10:82;;2162:55;;;;-1:-1:-1;;;2162:55:82;;34328:2:145;2162:55:82;;;34310:21:145;;;34347:18;;;34340:30;34406:34;34386:18;;;34379:62;34458:18;;2162:55:82;34126:356:145;4108:223:79;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4241;5446;5460:23;5487:6;-1:-1:-1;;;;;5487:11:79;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;7851;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1702:19:79;;;8113:60;;;;-1:-1:-1;;;8113:60:79;;35388:2:145;8113:60:79;;;35370:21:145;35427:2;35407:18;;;35400:30;35466:31;35446:18;;;35439:59;35515:18;;8113:60:79;35186:353:145;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:332:145;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;-1:-1:-1;;;;;;223:5:145;219:78;212:5;209:89;199:117;;312:1;309;302:12;907:180;966:6;1019:2;1007:9;998:7;994:23;990:32;987:52;;;1035:1;1032;1025:12;987:52;-1:-1:-1;1058:23:145;;907:180;-1:-1:-1;907:180:145:o;1092:154::-;-1:-1:-1;;;;;1171:5:145;1167:54;1160:5;1157:65;1147:93;;1236:1;1233;1226:12;1251:134;1319:20;;1348:31;1319:20;1348:31;:::i;:::-;1251:134;;;:::o;1390:388::-;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1574:9;1561:23;1593:31;1618:5;1593:31;:::i;:::-;1643:5;-1:-1:-1;1700:2:145;1685:18;;1672:32;1713:33;1672:32;1713:33;:::i;:::-;1765:7;1755:17;;;1390:388;;;;;:::o;1783:247::-;1842:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:52;;;1911:1;1908;1901:12;1863:52;1950:9;1937:23;1969:31;1994:5;1969:31;:::i;2220:315::-;2288:6;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2404:9;2391:23;2423:31;2448:5;2423:31;:::i;:::-;2473:5;2525:2;2510:18;;;;2497:32;;-1:-1:-1;;;2220:315:145:o;2771:::-;2839:6;2847;2900:2;2888:9;2879:7;2875:23;2871:32;2868:52;;;2916:1;2913;2906:12;2868:52;2952:9;2939:23;2929:33;;3012:2;3001:9;2997:18;2984:32;3025:31;3050:5;3025:31;:::i;4476:184::-;-1:-1:-1;;;4525:1:145;4518:88;4625:4;4622:1;4615:15;4649:4;4646:1;4639:15;4665:257;4737:4;4731:11;;;4769:17;;4816:18;4801:34;;4837:22;;;4798:62;4795:88;;;4863:18;;:::i;:::-;4899:4;4892:24;4665:257;:::o;4927:255::-;4999:2;4993:9;5041:6;5029:19;;5078:18;5063:34;;5099:22;;;5060:62;5057:88;;;5125:18;;:::i;5187:255::-;5259:2;5253:9;5301:6;5289:19;;5338:18;5323:34;;5359:22;;;5320:62;5317:88;;;5385:18;;:::i;5447:253::-;5519:2;5513:9;5561:4;5549:17;;5596:18;5581:34;;5617:22;;;5578:62;5575:88;;;5643:18;;:::i;5705:275::-;5776:2;5770:9;5841:2;5822:13;;-1:-1:-1;;5818:27:145;5806:40;;5876:18;5861:34;;5897:22;;;5858:62;5855:88;;;5923:18;;:::i;:::-;5959:2;5952:22;5705:275;;-1:-1:-1;5705:275:145:o;5985:187::-;6034:4;6067:18;6059:6;6056:30;6053:56;;;6089:18;;:::i;:::-;-1:-1:-1;6155:2:145;6134:15;-1:-1:-1;;6130:29:145;6161:4;6126:40;;5985:187::o;6177:464::-;6220:5;6273:3;6266:4;6258:6;6254:17;6250:27;6240:55;;6291:1;6288;6281:12;6240:55;6327:6;6314:20;6358:49;6374:32;6403:2;6374:32;:::i;:::-;6358:49;:::i;:::-;6432:2;6423:7;6416:19;6478:3;6471:4;6466:2;6458:6;6454:15;6450:26;6447:35;6444:55;;;6495:1;6492;6485:12;6444:55;6560:2;6553:4;6545:6;6541:17;6534:4;6525:7;6521:18;6508:55;6608:1;6583:16;;;6601:4;6579:27;6572:38;;;;6587:7;6177:464;-1:-1:-1;;;6177:464:145:o;6646:411::-;6701:5;6749:4;6737:9;6732:3;6728:19;6724:30;6721:50;;;6767:1;6764;6757:12;6721:50;6789:22;;:::i;:::-;6780:31;;6847:9;6834:23;6827:5;6820:38;6909:2;6898:9;6894:18;6881:32;6936:18;6928:6;6925:30;6922:50;;;6968:1;6965;6958:12;6922:50;7004:46;7046:3;7037:6;7026:9;7022:22;7004:46;:::i;:::-;6999:2;6992:5;6988:14;6981:70;;6646:411;;;;:::o;7062:118::-;7148:5;7141:13;7134:21;7127:5;7124:32;7114:60;;7170:1;7167;7160:12;7185:128;7250:20;;7279:28;7250:20;7279:28;:::i;7318:1713::-;7412:6;7465:2;7453:9;7444:7;7440:23;7436:32;7433:52;;;7481:1;7478;7471:12;7433:52;7521:9;7508:23;7550:18;7591:2;7583:6;7580:14;7577:34;;;7607:1;7604;7597:12;7577:34;7630:22;;;;7686:6;7668:16;;;7664:29;7661:49;;;7706:1;7703;7696:12;7661:49;7732:22;;:::i;:::-;7777;7796:2;7777:22;:::i;:::-;7770:5;7763:37;7832:31;7859:2;7855;7851:11;7832:31;:::i;:::-;7827:2;7820:5;7816:14;7809:55;7917:2;7913;7909:11;7896:25;7891:2;7884:5;7880:14;7873:49;7975:2;7971;7967:11;7954:25;7949:2;7942:5;7938:14;7931:49;8034:3;8030:2;8026:12;8013:26;8007:3;8000:5;7996:15;7989:51;8073:32;8100:3;8096:2;8092:12;8073:32;:::i;:::-;8067:3;8060:5;8056:15;8049:57;8139:32;8166:3;8162:2;8158:12;8139:32;:::i;:::-;8133:3;8126:5;8122:15;8115:57;8218:3;8214:2;8210:12;8197:26;8248:2;8238:8;8235:16;8232:36;;;8264:1;8261;8254:12;8232:36;8301:54;8347:7;8336:8;8332:2;8328:17;8301:54;:::i;:::-;8295:3;8288:5;8284:15;8277:79;;8375:3;8410:31;8437:2;8433;8429:11;8410:31;:::i;:::-;8394:14;;;8387:55;8461:3;8502:11;;;8489:25;8526:16;;;8523:36;;;8555:1;8552;8545:12;8523:36;8591:45;8628:7;8617:8;8613:2;8609:17;8591:45;:::i;:::-;8586:2;8579:5;8575:14;8568:69;;;8656:3;8691:28;8715:2;8711;8707:11;8691:28;:::i;:::-;8675:14;;;8668:52;8739:3;8780:11;;;8767:25;8804:16;;;8801:36;;;8833:1;8830;8823:12;8801:36;8869:45;8906:7;8895:8;8891:2;8887:17;8869:45;:::i;:::-;8864:2;8857:5;8853:14;8846:69;;;8934:3;8924:13;;8969:31;8996:2;8992;8988:11;8969:31;:::i;:::-;8953:14;;;8946:55;;;;8957:5;7318:1713;-1:-1:-1;;;;7318:1713:145:o;9036:153::-;9114:20;;9163:1;9153:12;;9143:40;;9179:1;9176;9169:12;9194:110;9278:1;9271:5;9268:12;9258:40;;9294:1;9291;9284:12;9309:152;9386:20;;9415:40;9386:20;9415:40;:::i;9466:416::-;9530:5;9578:4;9566:9;9561:3;9557:19;9553:30;9550:50;;;9596:1;9593;9586:12;9550:50;9629:2;9623:9;9671:4;9663:6;9659:17;9742:6;9730:10;9727:22;9706:18;9694:10;9691:34;9688:62;9685:88;;;9753:18;;:::i;:::-;9789:2;9782:22;9852:23;;9837:39;;-1:-1:-1;9822:6:145;9466:416;-1:-1:-1;9466:416:145:o;9887:359::-;9945:5;9993:4;9981:9;9976:3;9972:19;9968:30;9965:50;;;10011:1;10008;10001:12;9965:50;10033:22;;:::i;:::-;10024:31;;10092:9;10079:23;10111:33;10136:7;10111:33;:::i;:::-;10167:7;10160:5;10153:22;;10235:2;10224:9;10220:18;10207:32;10202:2;10195:5;10191:14;10184:56;9887:359;;;;:::o;10251:865::-;10314:5;10362:6;10350:9;10345:3;10341:19;10337:32;10334:52;;;10382:1;10379;10372:12;10334:52;10404:22;;:::i;:::-;10395:31;;10449:29;10468:9;10449:29;:::i;:::-;10442:5;10435:44;10539:2;10528:9;10524:18;10511:32;10506:2;10499:5;10495:14;10488:56;10604:2;10593:9;10589:18;10576:32;10571:2;10564:5;10560:14;10553:56;10669:2;10658:9;10654:18;10641:32;10636:2;10629:5;10625:14;10618:56;10735:3;10724:9;10720:19;10707:33;10701:3;10694:5;10690:15;10683:58;10774:49;10818:3;10807:9;10803:19;10774:49;:::i;:::-;10768:3;10761:5;10757:15;10750:74;10857:48;10900:3;10889:9;10885:19;10857:48;:::i;:::-;10851:3;10844:5;10840:15;10833:73;10939:61;10996:3;10990;10979:9;10975:19;10939:61;:::i;:::-;10933:3;10926:5;10922:15;10915:86;11020:3;11055:54;11105:3;11100:2;11089:9;11085:18;11055:54;:::i;:::-;11039:14;;;11032:78;11043:5;10251:865;-1:-1:-1;;10251:865:145:o;11121:618::-;11259:6;11267;11275;11328:3;11316:9;11307:7;11303:23;11299:33;11296:53;;;11345:1;11342;11335:12;11296:53;11384:9;11371:23;11403:31;11428:5;11403:31;:::i;:::-;11453:5;-1:-1:-1;11477:63:145;11532:7;11527:2;11512:18;;11477:63;:::i;:::-;11467:73;;11591:3;11580:9;11576:19;11563:33;11619:18;11611:6;11608:30;11605:50;;;11651:1;11648;11641:12;11605:50;11674:59;11725:7;11716:6;11705:9;11701:22;11674:59;:::i;:::-;11664:69;;;11121:618;;;;;:::o;12046:250::-;12131:1;12141:113;12155:6;12152:1;12149:13;12141:113;;;12231:11;;;12225:18;12212:11;;;12205:39;12177:2;12170:10;12141:113;;;-1:-1:-1;;12288:1:145;12270:16;;12263:27;12046:250::o;12301:271::-;12343:3;12381:5;12375:12;12408:6;12403:3;12396:19;12424:76;12493:6;12486:4;12481:3;12477:14;12470:4;12463:5;12459:16;12424:76;:::i;:::-;12554:2;12533:15;-1:-1:-1;;12529:29:145;12520:39;;;;12561:4;12516:50;;12301:271;-1:-1:-1;;12301:271:145:o;12577:220::-;12726:2;12715:9;12708:21;12689:4;12746:45;12787:2;12776:9;12772:18;12764:6;12746:45;:::i;12802:759::-;12949:6;12957;12965;12973;13026:3;13014:9;13005:7;13001:23;12997:33;12994:53;;;13043:1;13040;13033:12;12994:53;13082:9;13069:23;13101:31;13126:5;13101:31;:::i;:::-;13151:5;-1:-1:-1;13208:2:145;13193:18;;13180:32;13221:33;13180:32;13221:33;:::i;:::-;13273:7;-1:-1:-1;13299:63:145;13354:7;13349:2;13334:18;;13299:63;:::i;:::-;13289:73;;13413:3;13402:9;13398:19;13385:33;13441:18;13433:6;13430:30;13427:50;;;13473:1;13470;13463:12;13427:50;13496:59;13547:7;13538:6;13527:9;13523:22;13496:59;:::i;:::-;13486:69;;;12802:759;;;;;;;:::o;14059:184::-;-1:-1:-1;;;14108:1:145;14101:88;14208:4;14205:1;14198:15;14232:4;14229:1;14222:15;14248:168;14321:9;;;14352;;14369:15;;;14363:22;;14349:37;14339:71;;14390:18;;:::i;14421:184::-;-1:-1:-1;;;14470:1:145;14463:88;14570:4;14567:1;14560:15;14594:4;14591:1;14584:15;14610:277;14697:6;14750:2;14738:9;14729:7;14725:23;14721:32;14718:52;;;14766:1;14763;14756:12;14718:52;14798:9;14792:16;14817:40;14851:5;14817:40;:::i;15202:184::-;15272:6;15325:2;15313:9;15304:7;15300:23;15296:32;15293:52;;;15341:1;15338;15331:12;15293:52;-1:-1:-1;15364:16:145;;15202:184;-1:-1:-1;15202:184:145:o;16428:274::-;16468:1;16494;16484:189;;-1:-1:-1;;;16526:1:145;16519:88;16630:4;16627:1;16620:15;16658:4;16655:1;16648:15;16484:189;-1:-1:-1;16687:9:145;;16428:274::o;16707:125::-;16772:9;;;16793:10;;;16790:36;;;16806:18;;:::i;16837:251::-;16907:6;16960:2;16948:9;16939:7;16935:23;16931:32;16928:52;;;16976:1;16973;16966:12;16928:52;17008:9;17002:16;17027:31;17052:5;17027:31;:::i;17849:184::-;-1:-1:-1;;;17898:1:145;17891:88;17998:4;17995:1;17988:15;18022:4;18019:1;18012:15;18038:135;18077:3;18098:17;;;18095:43;;18118:18;;:::i;:::-;-1:-1:-1;18165:1:145;18154:13;;18038:135::o;18178:128::-;18245:9;;;18266:11;;;18263:37;;;18280:18;;:::i;18564:184::-;-1:-1:-1;;;18613:1:145;18606:88;18713:4;18710:1;18703:15;18737:4;18734:1;18727:15;18753:245;18820:6;18873:2;18861:9;18852:7;18848:23;18844:32;18841:52;;;18889:1;18886;18879:12;18841:52;18921:9;18915:16;18940:28;18962:5;18940:28;:::i;19003:1653::-;19095:6;19126:2;19169;19157:9;19148:7;19144:23;19140:32;19137:52;;;19185:1;19182;19175:12;19137:52;19218:9;19212:16;19247:18;19288:2;19280:6;19277:14;19274:34;;;19304:1;19301;19294:12;19274:34;19327:22;;;;19383:4;19365:16;;;19361:27;19358:47;;;19401:1;19398;19391:12;19358:47;19427:22;;:::i;:::-;19478:2;19472:9;19465:5;19458:24;19520:2;19516;19512:11;19506:18;19533:33;19558:7;19533:33;:::i;:::-;19582:14;;;19575:31;19644:2;19636:11;;19630:18;19657:33;19630:18;19657:33;:::i;:::-;19717:2;19706:14;;19699:31;19769:2;19761:11;;19755:18;19785:16;;;19782:36;;;19814:1;19811;19804:12;19782:36;19837:17;;19888:2;19870:16;;;19866:25;19863:45;;;19904:1;19901;19894:12;19863:45;19932:22;;:::i;:::-;19985:2;19979:9;19970:7;19963:26;20028:2;20024;20020:11;20014:18;20057:2;20047:8;20044:16;20041:36;;;20073:1;20070;20063:12;20041:36;20096:17;;;-1:-1:-1;20144:4:145;20136:13;;20132:27;-1:-1:-1;20122:55:145;;20173:1;20170;20163:12;20122:55;20202:2;20196:9;20186:19;;20227:49;20243:32;20272:2;20243:32;:::i;20227:49::-;20299:2;20292:5;20285:17;20339:7;20334:2;20329;20325;20321:11;20317:20;20314:33;20311:53;;;20360:1;20357;20350:12;20311:53;20373:67;20437:2;20432;20425:5;20421:14;20416:2;20412;20408:11;20373:67;:::i;:::-;20456:16;;;20449:31;;;;-1:-1:-1;20507:2:145;20496:14;;20489:31;;;;-1:-1:-1;20567:3:145;20559:12;;;20553:19;20536:15;;;20529:44;20620:3;20612:12;;;20606:19;20589:15;;;20582:44;20500:5;19003:1653;-1:-1:-1;;;19003:1653:145:o;20661:437::-;20740:1;20736:12;;;;20783;;;20804:61;;20858:4;20850:6;20846:17;20836:27;;20804:61;20911:2;20903:6;20900:14;20880:18;20877:38;20874:218;;-1:-1:-1;;;20945:1:145;20938:88;21049:4;21046:1;21039:15;21077:4;21074:1;21067:15;20874:218;;20661:437;;;:::o;21229:545::-;21331:2;21326:3;21323:11;21320:448;;;21367:1;21392:5;21388:2;21381:17;21437:4;21433:2;21423:19;21507:2;21495:10;21491:19;21488:1;21484:27;21478:4;21474:38;21543:4;21531:10;21528:20;21525:47;;;-1:-1:-1;21566:4:145;21525:47;21621:2;21616:3;21612:12;21609:1;21605:20;21599:4;21595:31;21585:41;;21676:82;21694:2;21687:5;21684:13;21676:82;;;21739:17;;;21720:1;21709:13;21676:82;;;21680:3;;;21229:545;;;:::o;21950:1352::-;22076:3;22070:10;22103:18;22095:6;22092:30;22089:56;;;22125:18;;:::i;:::-;22154:97;22244:6;22204:38;22236:4;22230:11;22204:38;:::i;:::-;22198:4;22154:97;:::i;:::-;22306:4;;22370:2;22359:14;;22387:1;22382:663;;;;23089:1;23106:6;23103:89;;;-1:-1:-1;23158:19:145;;;23152:26;23103:89;-1:-1:-1;;21907:1:145;21903:11;;;21899:24;21895:29;21885:40;21931:1;21927:11;;;21882:57;23205:81;;22352:944;;22382:663;21176:1;21169:14;;;21213:4;21200:18;;-1:-1:-1;;22418:20:145;;;22536:236;22550:7;22547:1;22544:14;22536:236;;;22639:19;;;22633:26;22618:42;;22731:27;;;;22699:1;22687:14;;;;22566:19;;22536:236;;;22540:3;22800:6;22791:7;22788:19;22785:201;;;22861:19;;;22855:26;-1:-1:-1;;22944:1:145;22940:14;;;22956:3;22936:24;22932:37;22928:42;22913:58;22898:74;;22785:201;-1:-1:-1;;;;;23032:1:145;23016:14;;;23012:22;22999:36;;-1:-1:-1;21950:1352:145:o;23307:1011::-;23402:6;23433:2;23476;23464:9;23455:7;23451:23;23447:32;23444:52;;;23492:1;23489;23482:12;23444:52;23525:9;23519:16;23554:18;23595:2;23587:6;23584:14;23581:34;;;23611:1;23608;23601:12;23581:34;23649:6;23638:9;23634:22;23624:32;;23694:7;23687:4;23683:2;23679:13;23675:27;23665:55;;23716:1;23713;23706:12;23665:55;23745:2;23739:9;23767:2;23763;23760:10;23757:36;;;23773:18;;:::i;:::-;23819:2;23816:1;23812:10;23802:20;;23842:28;23866:2;23862;23858:11;23842:28;:::i;:::-;23904:15;;;23974:11;;;23970:20;;;23935:12;;;;24002:19;;;23999:39;;;24034:1;24031;24024:12;23999:39;24058:11;;;;24078:210;24094:6;24089:3;24086:15;24078:210;;;24167:3;24161:10;24148:23;;24184:31;24209:5;24184:31;:::i;:::-;24228:18;;;24111:12;;;;24266;;;;24078:210;;;24307:5;23307:1011;-1:-1:-1;;;;;;;;23307:1011:145:o;24323:772::-;24373:3;24414:5;24408:12;24443:36;24469:9;24443:36;:::i;:::-;24488:19;;;24526:4;24549:1;24566:18;;;24593:146;;;;24753:1;24748:341;;;;24559:530;;24593:146;-1:-1:-1;;24635:24:145;;24621:12;;;24614:46;24707:14;;24700:22;24697:1;24693:30;24684:40;;24680:49;;;-1:-1:-1;24593:146:145;;24748:341;24779:5;24776:1;24769:16;24826:2;24823:1;24813:16;24851:1;24865:174;24879:6;24876:1;24873:13;24865:174;;;24966:14;;24948:11;;;24944:20;;24937:44;25009:16;;;;24894:10;;24865:174;;;25063:11;;25059:20;;;-1:-1:-1;;24559:530:145;;;;;;24323:772;;;;:::o;25100:252::-;25187:5;25181:12;25176:3;25169:25;25151:3;25240:4;25233:5;25229:16;25223:23;25278:4;25271;25266:3;25262:14;25255:28;25299:47;25340:4;25335:3;25331:14;25317:12;25299:47;:::i;25357:484::-;25410:3;25448:5;25442:12;25475:6;25470:3;25463:19;25501:4;25530:2;25525:3;25521:12;25514:19;;25567:2;25560:5;25556:14;25588:1;25598:218;25612:6;25609:1;25606:13;25598:218;;;25677:13;;-1:-1:-1;;;;;25673:62:145;25661:75;;25756:12;;;;25791:15;;;;25634:1;25627:9;25598:218;;;-1:-1:-1;25832:3:145;;25357:484;-1:-1:-1;;;;;25357:484:145:o;25846:827::-;26206:6;26195:9;26188:25;26249:3;26244:2;26233:9;26229:18;26222:31;26169:4;26276:54;26325:3;26314:9;26310:19;26302:6;26276:54;:::i;:::-;26378:9;26370:6;26366:22;26361:2;26350:9;26346:18;26339:50;26412:42;26447:6;26439;26412:42;:::i;:::-;26398:56;;-1:-1:-1;;;;;26494:6:145;26490:55;26485:2;26474:9;26470:18;26463:83;26595:9;26587:6;26583:22;26577:3;26566:9;26562:19;26555:51;26623:44;26660:6;26652;26623:44;:::i;26867:500::-;27121:6;27110:9;27103:25;27164:2;27159;27148:9;27144:18;27137:30;27084:4;27190:53;27239:2;27228:9;27224:18;27216:6;27190:53;:::i;:::-;27291:9;27283:6;27279:22;27274:2;27263:9;27259:18;27252:50;27319:42;27354:6;27346;27319:42;:::i;:::-;27311:50;26867:500;-1:-1:-1;;;;;;26867:500:145:o;27372:142::-;27455:1;27448:5;27445:12;27435:46;;27461:18;;:::i;:::-;27490;;27372:142::o;27820:1140::-;27982:4;28024:3;28013:9;28009:19;28001:27;;-1:-1:-1;;;;;28065:6:145;28059:13;28055:62;28044:9;28037:81;28174:4;28166:6;28162:17;28156:24;28149:4;28138:9;28134:20;28127:54;28237:4;28229:6;28225:17;28219:24;28212:4;28201:9;28197:20;28190:54;28300:4;28292:6;28288:17;28282:24;28275:4;28264:9;28260:20;28253:54;28363:4;28355:6;28351:17;28345:24;28338:4;28327:9;28323:20;28316:54;28417:4;28409:6;28405:17;28399:24;28459:1;28445:12;28442:19;28432:53;;28465:18;;:::i;:::-;28523:12;28516:4;28505:9;28501:20;28494:42;;28585:4;28577:6;28573:17;28567:24;28600:65;28659:4;28648:9;28644:20;28628:14;28600:65;:::i;:::-;;28714:4;28706:6;28702:17;28696:24;28729:73;28796:4;28785:9;28781:20;28765:14;27594:12;27582:25;;27519:90;28729:73;-1:-1:-1;28821:6:145;28864:15;;;28858:22;27695:12;;-1:-1:-1;;;;;27691:61:145;28935:18;;;27679:74;27802:4;27791:16;;27785:23;27769:14;;;27762:47;28889:65;;27820:1140;;;;:::o;28965:1002::-;29390:6;29379:9;29372:25;29353:4;-1:-1:-1;;;;;29506:2:145;29498:6;29494:15;29489:2;29478:9;29474:18;29467:43;29546:3;29541:2;29530:9;29526:18;29519:31;29573:46;29614:3;29603:9;29599:19;29591:6;29573:46;:::i;:::-;29667:2;29659:6;29655:15;29650:2;29639:9;29635:18;29628:43;29708:6;29702:3;29691:9;29687:19;29680:35;29764:9;29756:6;29752:22;29746:3;29735:9;29731:19;29724:51;29798:42;29833:6;29825;29798:42;:::i;:::-;29784:56;;;29889:9;29881:6;29877:22;29871:3;29860:9;29856:19;29849:51;29917:44;29954:6;29946;29917:44;:::i;:::-;29909:52;28965:1002;-1:-1:-1;;;;;;;;;;28965:1002:145:o;29972:636::-;30265:6;30254:9;30247:25;30228:4;-1:-1:-1;;;;;30381:2:145;30373:6;30369:15;30364:2;30353:9;30349:18;30342:43;30433:2;30425:6;30421:15;30416:2;30405:9;30401:18;30394:43;30485:2;30477:6;30473:15;30468:2;30457:9;30453:18;30446:43;;30526:3;30520;30509:9;30505:19;30498:32;30547:55;30597:3;30586:9;30582:19;30574:6;30547:55;:::i;30973:340::-;31150:2;31139:9;31132:21;31113:4;31170:45;31211:2;31200:9;31196:18;31188:6;31170:45;:::i;:::-;31162:53;;-1:-1:-1;;;;;31255:6:145;31251:55;31246:2;31235:9;31231:18;31224:83;30973:340;;;;;:::o;31318:291::-;31495:2;31484:9;31477:21;31458:4;31515:45;31556:2;31545:9;31541:18;31533:6;31515:45;:::i;:::-;31507:53;;31596:6;31591:2;31580:9;31576:18;31569:34;31318:291;;;;;:::o;32152:812::-;32563:25;32558:3;32551:38;32533:3;32618:6;32612:13;32634:75;32702:6;32697:2;32692:3;32688:12;32681:4;32673:6;32669:17;32634:75;:::i;:::-;32773:19;32768:2;32728:16;;;32760:11;;;32753:40;32818:13;;32840:76;32818:13;32902:2;32894:11;;32887:4;32875:17;;32840:76;:::i;:::-;32936:17;32955:2;32932:26;;32152:812;-1:-1:-1;;;;32152:812:145:o;33985:136::-;34024:3;34052:5;34042:39;;34061:18;;:::i;:::-;-1:-1:-1;;;34097:18:145;;33985:136::o;34894:287::-;35023:3;35061:6;35055:13;35077:66;35136:6;35131:3;35124:4;35116:6;35112:17;35077:66;:::i;:::-;35159:16;;;;;34894:287;-1:-1:-1;;34894:287:145:o","linkReferences":{}},"methodIdentifiers":{"COUNCIL_MEMBER_CHANGE()":"a0b21cdf","DEFAULT_ADMIN_ROLE()":"a217fddf","MAX_FEE()":"bc063e1a","NATIVE()":"a0cf0aea","PRECISION_SCALE()":"d7050f07","acceptCouncilSafe()":"b5058c50","activateMemberInStrategy(address,address)":"0d4a8b49","addStrategy(address)":"223e5479","addStrategyByPoolId(uint256)":"82d6a1e7","addressToMemberInfo(address)":"88cfe684","allo()":"d6d8428d","cloneNonce()":"33960459","communityFee()":"8961be6b","communityName()":"c6d572ae","councilSafe()":"6c53db9a","covenantIpfsHash()":"b64e39af","createPool(address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"9a72a86f","createPool(address,address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"c8a593e9","deactivateMemberInStrategy(address,address)":"22bcf999","decreasePower(uint256)":"5ecf71c5","enabledStrategies(address)":"3a871fe1","feeReceiver()":"b3f00674","gardenToken()":"db61d65c","getBasisStakedAmount()":"0331383c","getMemberPowerInStrategy(address,address)":"7817ee4f","getMemberStakedAmount(address)":"2c611c4a","getRoleAdmin(bytes32)":"248a9ca3","getStakeAmountWithFees()":"28c309e9","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increasePower(uint256)":"559de05d","initialize((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"96f0adec","isCouncilMember(address)":"ebd7dc52","isKickEnabled()":"1f787d28","isMember(address)":"a230c524","kickMember(address,address)":"6871eb4d","memberActivatedInStrategies(address,address)":"477a5cc0","memberPowerInStrategy(address,address)":"65e3864c","pendingCouncilSafe()":"68decabb","profileId()":"08386eba","registerStakeAmount()":"78a0b8a9","registry()":"7b103999","registryFactory()":"f86c5f89","removeStrategy(address)":"175188e8","removeStrategyByPoolId(uint256)":"73265c37","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setBasisStakedAmount(uint256)":"31f61bca","setCommunityFee(uint256)":"0d12bbdb","setCouncilSafe(address)":"397e2543","stakeAndRegisterMember()":"3517aa7d","strategiesByMember(address,uint256)":"2b38c69c","strategyTemplate()":"5c94e4d2","supportsInterface(bytes4)":"01ffc9a7","unregisterMember()":"b99b4370"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decreaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_currentPower\",\"type\":\"uint256\"}],\"name\":\"CantDecreaseMoreThanPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DecreaseUnderMinimum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KickNotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewFeeGreaterThanMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PointsDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotNewOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotStrategy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotGardenOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInCouncil\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueCannotBeZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"name\":\"AlloSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"BasisStakedAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newFee\",\"type\":\"uint256\"}],\"name\":\"CommunityFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safeOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newSafeOwner\",\"type\":\"address\"}],\"name\":\"CouncilSafeChangeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"CouncilSafeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"MemberActivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"MemberDeactivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberKicked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_unstakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_stakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"RegistryInitialized\",\"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\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNCIL_MEMBER_CHANGE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"activateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newStrategy\",\"type\":\"address\"}],\"name\":\"addStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"addStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"addressToMemberInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo\",\"outputs\":[{\"internalType\":\"contract FAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloneNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilSafe\",\"outputs\":[{\"internalType\":\"contract ISafe\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"covenantIpfsHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"deactivateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountUnstaked\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"enabledStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardenToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasisStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"getMemberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"getMemberStakedAmount\",\"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\":[],\"name\":\"getStakeAmountWithFees\",\"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\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isCouncilMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isKickEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isMember\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"}],\"name\":\"kickMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"memberActivatedInStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActivated\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"memberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingCouncilSafe\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"removeStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"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\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"setBasisStakedAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newCommunityFee\",\"type\":\"uint256\"}],\"name\":\"setCommunityFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"setCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesByMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategiesAddresses\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyTemplate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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 `account`. 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\":\"See {IERC165-supportsInterface}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunity.sol\":\"RegistryCommunity\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_decreaseAmount","type":"uint256"},{"internalType":"uint256","name":"_currentPower","type":"uint256"}],"type":"error","name":"CantDecreaseMoreThanPower"},{"inputs":[],"type":"error","name":"DecreaseUnderMinimum"},{"inputs":[],"type":"error","name":"KickNotEnabled"},{"inputs":[],"type":"error","name":"NewFeeGreaterThanMax"},{"inputs":[],"type":"error","name":"PointsDeactivated"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[],"type":"error","name":"SenderNotNewOwner"},{"inputs":[],"type":"error","name":"SenderNotStrategy"},{"inputs":[],"type":"error","name":"StrategyDisabled"},{"inputs":[],"type":"error","name":"StrategyExists"},{"inputs":[],"type":"error","name":"UserAlreadyActivated"},{"inputs":[],"type":"error","name":"UserAlreadyDeactivated"},{"inputs":[],"type":"error","name":"UserAlreadyRegistered"},{"inputs":[],"type":"error","name":"UserNotGardenOwner"},{"inputs":[],"type":"error","name":"UserNotInCouncil"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ValueCannotBeZero"},{"inputs":[{"internalType":"address","name":"_allo","type":"address","indexed":false}],"type":"event","name":"AlloSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256","indexed":false}],"type":"event","name":"BasisStakedAmountSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256","indexed":false}],"type":"event","name":"CommunityFeeUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_safeOwner","type":"address","indexed":false},{"internalType":"address","name":"_newSafeOwner","type":"address","indexed":false}],"type":"event","name":"CouncilSafeChangeStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"_safe","type":"address","indexed":false}],"type":"event","name":"CouncilSafeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"uint256","name":"_pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"MemberActivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"MemberDeactivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_transferAddress","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberKicked","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_unstakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_stakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountStaked","type":"uint256","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32","indexed":false},{"internalType":"string","name":"_communityName","type":"string","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"RegistryInitialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNCIL_MEMBER_CHANGE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptCouncilSafe"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"activateMemberInStrategy"},{"inputs":[{"internalType":"address","name":"_newStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addStrategyByPoolId"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"addressToMemberInfo","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"bool","name":"isRegistered","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allo","outputs":[{"internalType":"contract FAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"cloneNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"councilSafe","outputs":[{"internalType":"contract ISafe","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"covenantIpfsHash","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivateMemberInStrategy"},{"inputs":[{"internalType":"uint256","name":"_amountUnstaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower"},{"inputs":[{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"enabledStrategies","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardenToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasisStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberPowerInStrategy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeAmountWithFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_amountStaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower"},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isCouncilMember","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isKickEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMember","outputs":[{"internalType":"bool","name":"_isMember","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_transferAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"kickMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"memberActivatedInStrategies","outputs":[{"internalType":"bool","name":"isActivated","type":"bool"}]},{"inputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"memberPowerInStrategy","outputs":[{"internalType":"uint256","name":"power","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingCouncilSafe","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registerStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategyByPoolId"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBasisStakedAmount"},{"inputs":[{"internalType":"uint256","name":"_newCommunityFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityFee"},{"inputs":[{"internalType":"address payable","name":"_safe","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCouncilSafe"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stakeAndRegisterMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"strategiesByMember","outputs":[{"internalType":"address","name":"strategiesAddresses","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategyTemplate","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"}],"devdoc":{"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 `account`. 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":"See {IERC165-supportsInterface}."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunity.sol":"RegistryCommunity"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":56055,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"_status","offset":0,"slot":"0","type":"t_uint256"},{"astId":55017,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"_roles","offset":0,"slot":"1","type":"t_mapping(t_bytes32,t_struct(RoleData)55012_storage)"},{"astId":76110,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"isKickEnabled","offset":0,"slot":"2","type":"t_bool"},{"astId":76112,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registerStakeAmount","offset":0,"slot":"3","type":"t_uint256"},{"astId":76114,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"communityFee","offset":0,"slot":"4","type":"t_uint256"},{"astId":76116,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"profileId","offset":0,"slot":"5","type":"t_bytes32"},{"astId":76118,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"feeReceiver","offset":0,"slot":"6","type":"t_address"},{"astId":76120,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registryFactory","offset":0,"slot":"7","type":"t_address"},{"astId":76122,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"strategyTemplate","offset":0,"slot":"8","type":"t_address"},{"astId":76124,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"cloneNonce","offset":0,"slot":"9","type":"t_uint256"},{"astId":76126,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"pendingCouncilSafe","offset":0,"slot":"10","type":"t_address_payable"},{"astId":76129,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"registry","offset":0,"slot":"11","type":"t_contract(IRegistry)2802"},{"astId":76132,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"gardenToken","offset":0,"slot":"12","type":"t_contract(IERC20)56900"},{"astId":76135,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"councilSafe","offset":0,"slot":"13","type":"t_contract(ISafe)80232"},{"astId":76138,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"allo","offset":0,"slot":"14","type":"t_contract(FAllo)75815"},{"astId":76140,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"communityName","offset":0,"slot":"15","type":"t_string_storage"},{"astId":76142,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"covenantIpfsHash","offset":0,"slot":"16","type":"t_string_storage"},{"astId":76146,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"enabledStrategies","offset":0,"slot":"17","type":"t_mapping(t_address,t_bool)"},{"astId":76152,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"memberPowerInStrategy","offset":0,"slot":"18","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":76157,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"addressToMemberInfo","offset":0,"slot":"19","type":"t_mapping(t_address,t_struct(Member)76075_storage)"},{"astId":76162,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"strategiesByMember","offset":0,"slot":"20","type":"t_mapping(t_address,t_array(t_address)dyn_storage)"},{"astId":76168,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"memberActivatedInStrategies","offset":0,"slot":"21","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":76171,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"initialMembers","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(FAllo)75815":{"encoding":"inplace","label":"contract FAllo","numberOfBytes":"20"},"t_contract(IERC20)56900":{"encoding":"inplace","label":"contract IERC20","numberOfBytes":"20"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(ISafe)80232":{"encoding":"inplace","label":"contract ISafe","numberOfBytes":"20"},"t_mapping(t_address,t_array(t_address)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address[])","numberOfBytes":"32","value":"t_array(t_address)dyn_storage"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Member)76075_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryCommunity.Member)","numberOfBytes":"32","value":"t_struct(Member)76075_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)55012_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControl.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)55012_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Member)76075_storage":{"encoding":"inplace","label":"struct RegistryCommunity.Member","numberOfBytes":"96","members":[{"astId":76070,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"member","offset":0,"slot":"0","type":"t_address"},{"astId":76072,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"stakedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":76074,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"isRegistered","offset":0,"slot":"2","type":"t_bool"}]},"t_struct(RoleData)55012_storage":{"encoding":"inplace","label":"struct AccessControl.RoleData","numberOfBytes":"64","members":[{"astId":55009,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":55011,"contract":"pkg/contracts/src/RegistryCommunity.sol:RegistryCommunity","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","id":77676,"exportedSymbols":{"AccessControl":[55308],"CVStrategy":[75561],"Clone":[3002],"ERC165Checker":[58291],"FAllo":[75815],"IAllo":[2610],"IERC20":[56900],"IPointStrategy":[72793],"IRegistry":[2802],"ISafe":[80232],"Metadata":[3098],"ReentrancyGuard":[56109],"RegistryCommunity":[77675],"RegistryFactory":[79854],"SafeERC20":[57337],"StrategyStruct":[72884],"console":[29549]},"nodeType":"SourceUnit","src":"42:23124:129","nodes":[{"id":75754,"nodeType":"PragmaDirective","src":"42:24:129","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":75756,"nodeType":"ImportDirective","src":"68:70:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":56901,"symbolAliases":[{"foreign":{"id":75755,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"76:6:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75758,"nodeType":"ImportDirective","src":"139:79:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/AccessControl.sol","file":"@openzeppelin/contracts/access/AccessControl.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":55309,"symbolAliases":[{"foreign":{"id":75757,"name":"AccessControl","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55308,"src":"147:13:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75760,"nodeType":"ImportDirective","src":"219:82:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":57338,"symbolAliases":[{"foreign":{"id":75759,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57337,"src":"227:9:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75762,"nodeType":"ImportDirective","src":"302:85:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol","file":"@openzeppelin/contracts/security/ReentrancyGuard.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":56110,"symbolAliases":[{"foreign":{"id":75761,"name":"ReentrancyGuard","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56109,"src":"310:15:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75765,"nodeType":"ImportDirective","src":"518:84:129","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":75763,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"526:9:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75764,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"537:8:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75767,"nodeType":"ImportDirective","src":"603:66:129","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":75766,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"611:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75769,"nodeType":"ImportDirective","src":"670:54:129","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":79855,"symbolAliases":[{"foreign":{"id":75768,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"678:15:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75771,"nodeType":"ImportDirective","src":"725:45:129","nodes":[],"absolutePath":"pkg/contracts/src/interfaces/ISafe.sol","file":"./interfaces/ISafe.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":80233,"symbolAliases":[{"foreign":{"id":75770,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"733:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75772,"nodeType":"ImportDirective","src":"830:31:129","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":75774,"nodeType":"ImportDirective","src":"862:92:129","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":58292,"symbolAliases":[{"foreign":{"id":75773,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58291,"src":"870:13:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75778,"nodeType":"ImportDirective","src":"956:76:129","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":75562,"symbolAliases":[{"foreign":{"id":75775,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"964:14:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75776,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"980:10:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":75777,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"992:14:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75780,"nodeType":"ImportDirective","src":"1034:65:129","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":77676,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":75779,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"1042:5:129","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":75815,"nodeType":"ContractDefinition","src":"1172:467:129","nodes":[{"id":75801,"nodeType":"FunctionDefinition","src":"1194:301:129","nodes":[],"functionSelector":"e1007d4a","implemented":false,"kind":"function","modifiers":[],"name":"createPoolWithCustomStrategy","nameLocation":"1203:28:129","parameters":{"id":75797,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75782,"mutability":"mutable","name":"_profileId","nameLocation":"1249:10:129","nodeType":"VariableDeclaration","scope":75801,"src":"1241:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75781,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1241:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75784,"mutability":"mutable","name":"_strategy","nameLocation":"1277:9:129","nodeType":"VariableDeclaration","scope":75801,"src":"1269:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75783,"name":"address","nodeType":"ElementaryTypeName","src":"1269:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75786,"mutability":"mutable","name":"_initStrategyData","nameLocation":"1309:17:129","nodeType":"VariableDeclaration","scope":75801,"src":"1296:30:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":75785,"name":"bytes","nodeType":"ElementaryTypeName","src":"1296:5:129","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"},{"constant":false,"id":75788,"mutability":"mutable","name":"_token","nameLocation":"1344:6:129","nodeType":"VariableDeclaration","scope":75801,"src":"1336:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75787,"name":"address","nodeType":"ElementaryTypeName","src":"1336:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75790,"mutability":"mutable","name":"_amount","nameLocation":"1368:7:129","nodeType":"VariableDeclaration","scope":75801,"src":"1360:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75789,"name":"uint256","nodeType":"ElementaryTypeName","src":"1360:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75793,"mutability":"mutable","name":"_metadata","nameLocation":"1401:9:129","nodeType":"VariableDeclaration","scope":75801,"src":"1385:25:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75792,"nodeType":"UserDefinedTypeName","pathNode":{"id":75791,"name":"Metadata","nameLocations":["1385:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"1385:8:129"},"referencedDeclaration":3098,"src":"1385:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":75796,"mutability":"mutable","name":"_managers","nameLocation":"1437:9:129","nodeType":"VariableDeclaration","scope":75801,"src":"1420:26:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":75794,"name":"address","nodeType":"ElementaryTypeName","src":"1420:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":75795,"nodeType":"ArrayTypeName","src":"1420:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"src":"1231:221:129"},"returnParameters":{"id":75800,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75799,"mutability":"mutable","name":"poolId","nameLocation":"1487:6:129","nodeType":"VariableDeclaration","scope":75801,"src":"1479:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75798,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1478:16:129"},"scope":75815,"stateMutability":"payable","virtual":false,"visibility":"external"},{"id":75806,"nodeType":"FunctionDefinition","src":"1501:55:129","nodes":[],"functionSelector":"5ab1bd53","implemented":false,"kind":"function","modifiers":[],"name":"getRegistry","nameLocation":"1510:11:129","parameters":{"id":75802,"nodeType":"ParameterList","parameters":[],"src":"1521:2:129"},"returnParameters":{"id":75805,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75804,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75806,"src":"1547:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75803,"name":"address","nodeType":"ElementaryTypeName","src":"1547:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1546:9:129"},"scope":75815,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":75814,"nodeType":"FunctionDefinition","src":"1561:76:129","nodes":[],"functionSelector":"068bcd8d","implemented":false,"kind":"function","modifiers":[],"name":"getPool","nameLocation":"1570:7:129","parameters":{"id":75809,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75808,"mutability":"mutable","name":"_poolId","nameLocation":"1586:7:129","nodeType":"VariableDeclaration","scope":75814,"src":"1578:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75807,"name":"uint256","nodeType":"ElementaryTypeName","src":"1578:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1577:17:129"},"returnParameters":{"id":75813,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75812,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":75814,"src":"1618:17:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool"},"typeName":{"id":75811,"nodeType":"UserDefinedTypeName","pathNode":{"id":75810,"name":"IAllo.Pool","nameLocations":["1618:5:129","1624:4:129"],"nodeType":"IdentifierPath","referencedDeclaration":2319,"src":"1618:10:129"},"referencedDeclaration":2319,"src":"1618:10:129","typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_storage_ptr","typeString":"struct IAllo.Pool"}},"visibility":"internal"}],"src":"1617:19:129"},"scope":75815,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[],"canonicalName":"FAllo","contractDependencies":[],"contractKind":"interface","fullyImplemented":false,"linearizedBaseContracts":[75815],"name":"FAllo","nameLocation":"1182:5:129","scope":77676,"usedErrors":[]},{"id":77675,"nodeType":"ContractDefinition","src":"1641:21524:129","nodes":[{"id":75822,"nodeType":"UsingForDirective","src":"1708:32:129","nodes":[],"global":false,"libraryName":{"id":75820,"name":"ERC165Checker","nameLocations":["1714:13:129"],"nodeType":"IdentifierPath","referencedDeclaration":58291,"src":"1714:13:129"},"typeName":{"id":75821,"name":"address","nodeType":"ElementaryTypeName","src":"1732:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75826,"nodeType":"UsingForDirective","src":"1745:27:129","nodes":[],"global":false,"libraryName":{"id":75823,"name":"SafeERC20","nameLocations":["1751:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":57337,"src":"1751:9:129"},"typeName":{"id":75825,"nodeType":"UserDefinedTypeName","pathNode":{"id":75824,"name":"IERC20","nameLocations":["1765:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1765:6:129"},"referencedDeclaration":56900,"src":"1765:6:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}},{"id":75829,"nodeType":"UsingForDirective","src":"1777:24:129","nodes":[],"global":false,"libraryName":{"id":75827,"name":"Clone","nameLocations":["1783:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1783:5:129"},"typeName":{"id":75828,"name":"address","nodeType":"ElementaryTypeName","src":"1793:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":75832,"nodeType":"VariableDeclaration","src":"1807:75:129","nodes":[],"constant":true,"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1831:6:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75830,"name":"address","nodeType":"ElementaryTypeName","src":"1807:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":75831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1840:42:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":75837,"nodeType":"VariableDeclaration","src":"2053:82:129","nodes":[],"constant":true,"functionSelector":"a0b21cdf","mutability":"constant","name":"COUNCIL_MEMBER_CHANGE","nameLocation":"2077:21:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75833,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2053:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d4245525f4348414e4745","id":75835,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2111:23:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""},"value":"COUNCIL_MEMBER_CHANGE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_bc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b","typeString":"literal_string \"COUNCIL_MEMBER_CHANGE\""}],"id":75834,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"2101:9:129","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":75836,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2101:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":75841,"nodeType":"EventDefinition","src":"2307:29:129","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"2313:7:129","parameters":{"id":75840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75839,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"2329:5:129","nodeType":"VariableDeclaration","scope":75841,"src":"2321:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75838,"name":"address","nodeType":"ElementaryTypeName","src":"2321:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2320:15:129"}},{"id":75845,"nodeType":"EventDefinition","src":"2341:36:129","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"2347:14:129","parameters":{"id":75844,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75843,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"2370:5:129","nodeType":"VariableDeclaration","scope":75845,"src":"2362:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75842,"name":"address","nodeType":"ElementaryTypeName","src":"2362:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2361:15:129"}},{"id":75851,"nodeType":"EventDefinition","src":"2382:74:129","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"2388:24:129","parameters":{"id":75850,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75847,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"2421:10:129","nodeType":"VariableDeclaration","scope":75851,"src":"2413:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75846,"name":"address","nodeType":"ElementaryTypeName","src":"2413:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75849,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"2441:13:129","nodeType":"VariableDeclaration","scope":75851,"src":"2433:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75848,"name":"address","nodeType":"ElementaryTypeName","src":"2433:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2412:43:129"}},{"id":75857,"nodeType":"EventDefinition","src":"2461:63:129","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"2467:16:129","parameters":{"id":75856,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75853,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2492:7:129","nodeType":"VariableDeclaration","scope":75857,"src":"2484:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75852,"name":"address","nodeType":"ElementaryTypeName","src":"2484:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75855,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"2509:13:129","nodeType":"VariableDeclaration","scope":75857,"src":"2501:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75854,"name":"uint256","nodeType":"ElementaryTypeName","src":"2501:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2483:40:129"}},{"id":75863,"nodeType":"EventDefinition","src":"2529:67:129","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"2535:18:129","parameters":{"id":75862,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75859,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2562:7:129","nodeType":"VariableDeclaration","scope":75863,"src":"2554:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75858,"name":"address","nodeType":"ElementaryTypeName","src":"2554:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75861,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2579:15:129","nodeType":"VariableDeclaration","scope":75863,"src":"2571:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75860,"name":"uint256","nodeType":"ElementaryTypeName","src":"2571:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2553:42:129"}},{"id":75871,"nodeType":"EventDefinition","src":"2601:87:129","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"2607:12:129","parameters":{"id":75870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75865,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2628:7:129","nodeType":"VariableDeclaration","scope":75871,"src":"2620:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75864,"name":"address","nodeType":"ElementaryTypeName","src":"2620:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75867,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"2645:16:129","nodeType":"VariableDeclaration","scope":75871,"src":"2637:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75866,"name":"address","nodeType":"ElementaryTypeName","src":"2637:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75869,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"2671:15:129","nodeType":"VariableDeclaration","scope":75871,"src":"2663:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75868,"name":"uint256","nodeType":"ElementaryTypeName","src":"2663:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2619:68:129"}},{"id":75875,"nodeType":"EventDefinition","src":"2693:43:129","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"2699:19:129","parameters":{"id":75874,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75873,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"2727:7:129","nodeType":"VariableDeclaration","scope":75875,"src":"2719:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75872,"name":"uint256","nodeType":"ElementaryTypeName","src":"2719:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2718:17:129"}},{"id":75884,"nodeType":"EventDefinition","src":"2741:89:129","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"2747:19:129","parameters":{"id":75883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75877,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"2775:10:129","nodeType":"VariableDeclaration","scope":75884,"src":"2767:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":75876,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2767:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":75879,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"2794:14:129","nodeType":"VariableDeclaration","scope":75884,"src":"2787:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":75878,"name":"string","nodeType":"ElementaryTypeName","src":"2787:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":75882,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"2819:9:129","nodeType":"VariableDeclaration","scope":75884,"src":"2810:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75881,"nodeType":"UserDefinedTypeName","pathNode":{"id":75880,"name":"Metadata","nameLocations":["2810:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"2810:8:129"},"referencedDeclaration":3098,"src":"2810:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"2766:63:129"}},{"id":75888,"nodeType":"EventDefinition","src":"2835:39:129","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"2841:13:129","parameters":{"id":75887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75886,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2863:9:129","nodeType":"VariableDeclaration","scope":75888,"src":"2855:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75885,"name":"address","nodeType":"ElementaryTypeName","src":"2855:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2854:19:129"}},{"id":75892,"nodeType":"EventDefinition","src":"2879:41:129","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"2885:15:129","parameters":{"id":75891,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75890,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2909:9:129","nodeType":"VariableDeclaration","scope":75892,"src":"2901:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75889,"name":"address","nodeType":"ElementaryTypeName","src":"2901:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2900:19:129"}},{"id":75900,"nodeType":"EventDefinition","src":"2925:93:129","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"2931:23:129","parameters":{"id":75899,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75894,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"2963:7:129","nodeType":"VariableDeclaration","scope":75900,"src":"2955:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75893,"name":"address","nodeType":"ElementaryTypeName","src":"2955:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75896,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"2980:9:129","nodeType":"VariableDeclaration","scope":75900,"src":"2972:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75895,"name":"address","nodeType":"ElementaryTypeName","src":"2972:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75898,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"2999:17:129","nodeType":"VariableDeclaration","scope":75900,"src":"2991:25:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75897,"name":"uint256","nodeType":"ElementaryTypeName","src":"2991:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2954:63:129"}},{"id":75906,"nodeType":"EventDefinition","src":"3023:68:129","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"3029:25:129","parameters":{"id":75905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75902,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3063:7:129","nodeType":"VariableDeclaration","scope":75906,"src":"3055:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75901,"name":"address","nodeType":"ElementaryTypeName","src":"3055:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75904,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3080:9:129","nodeType":"VariableDeclaration","scope":75906,"src":"3072:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75903,"name":"address","nodeType":"ElementaryTypeName","src":"3072:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3054:36:129"}},{"id":75910,"nodeType":"EventDefinition","src":"3096:47:129","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"3102:20:129","parameters":{"id":75909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75908,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"3131:10:129","nodeType":"VariableDeclaration","scope":75910,"src":"3123:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75907,"name":"uint256","nodeType":"ElementaryTypeName","src":"3123:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3122:20:129"}},{"id":75916,"nodeType":"EventDefinition","src":"3148:67:129","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"3154:20:129","parameters":{"id":75915,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75912,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3183:7:129","nodeType":"VariableDeclaration","scope":75916,"src":"3175:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75911,"name":"address","nodeType":"ElementaryTypeName","src":"3175:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75914,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"3200:13:129","nodeType":"VariableDeclaration","scope":75916,"src":"3192:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75913,"name":"uint256","nodeType":"ElementaryTypeName","src":"3192:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3174:40:129"}},{"id":75922,"nodeType":"EventDefinition","src":"3220:69:129","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"3226:20:129","parameters":{"id":75921,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75918,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"3255:7:129","nodeType":"VariableDeclaration","scope":75922,"src":"3247:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75917,"name":"address","nodeType":"ElementaryTypeName","src":"3247:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75920,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"3272:15:129","nodeType":"VariableDeclaration","scope":75922,"src":"3264:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75919,"name":"uint256","nodeType":"ElementaryTypeName","src":"3264:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3246:42:129"}},{"id":75935,"nodeType":"EventDefinition","src":"3294:110:129","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"3300:11:129","parameters":{"id":75934,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75924,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"3320:7:129","nodeType":"VariableDeclaration","scope":75935,"src":"3312:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":75923,"name":"uint256","nodeType":"ElementaryTypeName","src":"3312:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":75926,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"3337:9:129","nodeType":"VariableDeclaration","scope":75935,"src":"3329:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75925,"name":"address","nodeType":"ElementaryTypeName","src":"3329:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75928,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"3356:10:129","nodeType":"VariableDeclaration","scope":75935,"src":"3348:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75927,"name":"address","nodeType":"ElementaryTypeName","src":"3348:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75930,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"3376:6:129","nodeType":"VariableDeclaration","scope":75935,"src":"3368:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75929,"name":"address","nodeType":"ElementaryTypeName","src":"3368:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75933,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"3393:9:129","nodeType":"VariableDeclaration","scope":75935,"src":"3384:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":75932,"nodeType":"UserDefinedTypeName","pathNode":{"id":75931,"name":"Metadata","nameLocations":["3384:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"3384:8:129"},"referencedDeclaration":3098,"src":"3384:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"3311:92:129"}},{"id":75950,"nodeType":"FunctionDefinition","src":"3575:155:129","nodes":[],"body":{"id":75949,"nodeType":"Block","src":"3615:115:129","nodes":[],"statements":[{"condition":{"id":75943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3629:43:129","subExpression":{"arguments":[{"id":75939,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"3638:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":75940,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3661:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75941,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3665:6:129","memberName":"sender","nodeType":"MemberAccess","src":"3661:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":75938,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"3630:7:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":75942,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3630:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75948,"nodeType":"IfStatement","src":"3625:99:129","trueBody":{"id":75947,"nodeType":"Block","src":"3674:50:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75944,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76034,"src":"3695:16:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75945,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3695:18:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75946,"nodeType":"RevertStatement","src":"3688:25:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"3584:15:129","parameters":{"id":75936,"nodeType":"ParameterList","parameters":[],"src":"3599:2:129"},"returnParameters":{"id":75937,"nodeType":"ParameterList","parameters":[],"src":"3615:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75964,"nodeType":"FunctionDefinition","src":"3736:143:129","nodes":[],"body":{"id":75963,"nodeType":"Block","src":"3785:94:129","nodes":[],"statements":[{"condition":{"id":75957,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3799:21:129","subExpression":{"arguments":[{"expression":{"id":75954,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"3809:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":75955,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3813:6:129","memberName":"sender","nodeType":"MemberAccess","src":"3809:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75953,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"3800:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75956,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3800:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75962,"nodeType":"IfStatement","src":"3795:78:129","trueBody":{"id":75961,"nodeType":"Block","src":"3822:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75958,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"3843:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75959,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3843:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75960,"nodeType":"RevertStatement","src":"3836:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"3745:24:129","parameters":{"id":75951,"nodeType":"ParameterList","parameters":[],"src":"3769:2:129"},"returnParameters":{"id":75952,"nodeType":"ParameterList","parameters":[],"src":"3785:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75979,"nodeType":"FunctionDefinition","src":"3885:156:129","nodes":[],"body":{"id":75978,"nodeType":"Block","src":"3950:91:129","nodes":[],"statements":[{"condition":{"id":75972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3964:18:129","subExpression":{"arguments":[{"id":75970,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75966,"src":"3974:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":75969,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"3965:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":75971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3965:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75977,"nodeType":"IfStatement","src":"3960:75:129","trueBody":{"id":75976,"nodeType":"Block","src":"3984:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75973,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"4005:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4005:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75975,"nodeType":"RevertStatement","src":"3998:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"3894:25:129","parameters":{"id":75967,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75966,"mutability":"mutable","name":"_sender","nameLocation":"3928:7:129","nodeType":"VariableDeclaration","scope":75979,"src":"3920:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75965,"name":"address","nodeType":"ElementaryTypeName","src":"3920:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3919:17:129"},"returnParameters":{"id":75968,"nodeType":"ParameterList","parameters":[],"src":"3950:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":75994,"nodeType":"FunctionDefinition","src":"4047:162:129","nodes":[],"body":{"id":75993,"nodeType":"Block","src":"4108:101:129","nodes":[],"statements":[{"condition":{"id":75987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4122:29:129","subExpression":{"baseExpression":{"id":75984,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"4123:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":75986,"indexExpression":{"id":75985,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75981,"src":"4141:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4123:28:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":75992,"nodeType":"IfStatement","src":"4118:85:129","trueBody":{"id":75991,"nodeType":"Block","src":"4153:50:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":75988,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76048,"src":"4174:16:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":75989,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4174:18:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":75990,"nodeType":"RevertStatement","src":"4167:25:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"4056:19:129","parameters":{"id":75982,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75981,"mutability":"mutable","name":"_strategy","nameLocation":"4084:9:129","nodeType":"VariableDeclaration","scope":75994,"src":"4076:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75980,"name":"address","nodeType":"ElementaryTypeName","src":"4076:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4075:19:129"},"returnParameters":{"id":75983,"nodeType":"ParameterList","parameters":[],"src":"4108:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76010,"nodeType":"FunctionDefinition","src":"4215:171:129","nodes":[],"body":{"id":76009,"nodeType":"Block","src":"4293:93:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76003,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76001,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75996,"src":"4307:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":76002,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75998,"src":"4318:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4307:20:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76008,"nodeType":"IfStatement","src":"4303:77:129","trueBody":{"id":76007,"nodeType":"Block","src":"4329:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76004,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76052,"src":"4350:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4350:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76006,"nodeType":"RevertStatement","src":"4343:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"4224:19:129","parameters":{"id":75999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":75996,"mutability":"mutable","name":"_sender","nameLocation":"4252:7:129","nodeType":"VariableDeclaration","scope":76010,"src":"4244:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75995,"name":"address","nodeType":"ElementaryTypeName","src":"4244:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":75998,"mutability":"mutable","name":"_strategy","nameLocation":"4269:9:129","nodeType":"VariableDeclaration","scope":76010,"src":"4261:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":75997,"name":"address","nodeType":"ElementaryTypeName","src":"4261:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4243:36:129"},"returnParameters":{"id":76000,"nodeType":"ParameterList","parameters":[],"src":"4293:0:129"},"scope":77675,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":76028,"nodeType":"FunctionDefinition","src":"4392:189:129","nodes":[],"body":{"id":76027,"nodeType":"Block","src":"4457:124:129","nodes":[],"statements":[{"condition":{"id":76021,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4471:51:129","subExpression":{"baseExpression":{"baseExpression":{"id":76015,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"4472:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76018,"indexExpression":{"expression":{"id":76016,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"4500:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4504:6:129","memberName":"sender","nodeType":"MemberAccess","src":"4500:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4472:39:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76020,"indexExpression":{"id":76019,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76012,"src":"4512:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4472:50:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76026,"nodeType":"IfStatement","src":"4467:108:129","trueBody":{"id":76025,"nodeType":"Block","src":"4524:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76022,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76060,"src":"4545:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4545:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76024,"nodeType":"RevertStatement","src":"4538:26:129"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"4401:23:129","parameters":{"id":76013,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76012,"mutability":"mutable","name":"_strategy","nameLocation":"4433:9:129","nodeType":"VariableDeclaration","scope":76028,"src":"4425:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76011,"name":"address","nodeType":"ElementaryTypeName","src":"4425:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4424:19:129"},"returnParameters":{"id":76014,"nodeType":"ParameterList","parameters":[],"src":"4457:0:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":76030,"nodeType":"ErrorDefinition","src":"4753:28:129","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"4759:19:129","parameters":{"id":76029,"nodeType":"ParameterList","parameters":[],"src":"4778:2:129"}},{"id":76032,"nodeType":"ErrorDefinition","src":"4786:29:129","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"4792:20:129","parameters":{"id":76031,"nodeType":"ParameterList","parameters":[],"src":"4812:2:129"}},{"id":76034,"nodeType":"ErrorDefinition","src":"4820:25:129","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"4826:16:129","parameters":{"id":76033,"nodeType":"ParameterList","parameters":[],"src":"4842:2:129"}},{"id":76036,"nodeType":"ErrorDefinition","src":"4850:26:129","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"4856:17:129","parameters":{"id":76035,"nodeType":"ParameterList","parameters":[],"src":"4873:2:129"}},{"id":76038,"nodeType":"ErrorDefinition","src":"4881:30:129","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"4887:21:129","parameters":{"id":76037,"nodeType":"ParameterList","parameters":[],"src":"4908:2:129"}},{"id":76040,"nodeType":"ErrorDefinition","src":"4916:27:129","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"4922:18:129","parameters":{"id":76039,"nodeType":"ParameterList","parameters":[],"src":"4940:2:129"}},{"id":76042,"nodeType":"ErrorDefinition","src":"4948:29:129","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"4954:20:129","parameters":{"id":76041,"nodeType":"ParameterList","parameters":[],"src":"4974:2:129"}},{"id":76044,"nodeType":"ErrorDefinition","src":"4982:31:129","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"4988:22:129","parameters":{"id":76043,"nodeType":"ParameterList","parameters":[],"src":"5010:2:129"}},{"id":76046,"nodeType":"ErrorDefinition","src":"5018:23:129","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"5024:14:129","parameters":{"id":76045,"nodeType":"ParameterList","parameters":[],"src":"5038:2:129"}},{"id":76048,"nodeType":"ErrorDefinition","src":"5046:25:129","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"5052:16:129","parameters":{"id":76047,"nodeType":"ParameterList","parameters":[],"src":"5068:2:129"}},{"id":76050,"nodeType":"ErrorDefinition","src":"5076:26:129","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"5082:17:129","parameters":{"id":76049,"nodeType":"ParameterList","parameters":[],"src":"5099:2:129"}},{"id":76052,"nodeType":"ErrorDefinition","src":"5107:26:129","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"5113:17:129","parameters":{"id":76051,"nodeType":"ParameterList","parameters":[],"src":"5130:2:129"}},{"id":76054,"nodeType":"ErrorDefinition","src":"5138:26:129","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"5144:17:129","parameters":{"id":76053,"nodeType":"ParameterList","parameters":[],"src":"5161:2:129"}},{"id":76056,"nodeType":"ErrorDefinition","src":"5169:29:129","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"5175:20:129","parameters":{"id":76055,"nodeType":"ParameterList","parameters":[],"src":"5195:2:129"}},{"id":76058,"nodeType":"ErrorDefinition","src":"5203:23:129","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"5209:14:129","parameters":{"id":76057,"nodeType":"ParameterList","parameters":[],"src":"5223:2:129"}},{"id":76060,"nodeType":"ErrorDefinition","src":"5231:26:129","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"5237:17:129","parameters":{"id":76059,"nodeType":"ParameterList","parameters":[],"src":"5254:2:129"}},{"id":76062,"nodeType":"ErrorDefinition","src":"5262:29:129","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"5268:20:129","parameters":{"id":76061,"nodeType":"ParameterList","parameters":[],"src":"5288:2:129"}},{"id":76068,"nodeType":"ErrorDefinition","src":"5296:80:129","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"5302:25:129","parameters":{"id":76067,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76064,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"5336:15:129","nodeType":"VariableDeclaration","scope":76068,"src":"5328:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76063,"name":"uint256","nodeType":"ElementaryTypeName","src":"5328:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76066,"mutability":"mutable","name":"_currentPower","nameLocation":"5361:13:129","nodeType":"VariableDeclaration","scope":76068,"src":"5353:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76065,"name":"uint256","nodeType":"ElementaryTypeName","src":"5353:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5327:48:129"}},{"id":76075,"nodeType":"StructDefinition","src":"5547:102:129","nodes":[],"canonicalName":"RegistryCommunity.Member","members":[{"constant":false,"id":76070,"mutability":"mutable","name":"member","nameLocation":"5579:6:129","nodeType":"VariableDeclaration","scope":76075,"src":"5571:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76069,"name":"address","nodeType":"ElementaryTypeName","src":"5571:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76072,"mutability":"mutable","name":"stakedAmount","nameLocation":"5603:12:129","nodeType":"VariableDeclaration","scope":76075,"src":"5595:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76071,"name":"uint256","nodeType":"ElementaryTypeName","src":"5595:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76074,"mutability":"mutable","name":"isRegistered","nameLocation":"5630:12:129","nodeType":"VariableDeclaration","scope":76075,"src":"5625:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76073,"name":"bool","nodeType":"ElementaryTypeName","src":"5625:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"5554:6:129","scope":77675,"visibility":"public"},{"id":76079,"nodeType":"StructDefinition","src":"5655:55:129","nodes":[],"canonicalName":"RegistryCommunity.Strategies","members":[{"constant":false,"id":76078,"mutability":"mutable","name":"strategies","nameLocation":"5693:10:129","nodeType":"VariableDeclaration","scope":76079,"src":"5683:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76076,"name":"address","nodeType":"ElementaryTypeName","src":"5683:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76077,"nodeType":"ArrayTypeName","src":"5683:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"5662:10:129","scope":77675,"visibility":"public"},{"id":76108,"nodeType":"StructDefinition","src":"5716:490:129","nodes":[],"canonicalName":"RegistryCommunity.InitializeParams","members":[{"constant":false,"id":76081,"mutability":"mutable","name":"_allo","nameLocation":"5758:5:129","nodeType":"VariableDeclaration","scope":76108,"src":"5750:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76080,"name":"address","nodeType":"ElementaryTypeName","src":"5750:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76084,"mutability":"mutable","name":"_gardenToken","nameLocation":"5780:12:129","nodeType":"VariableDeclaration","scope":76108,"src":"5773:19:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76083,"nodeType":"UserDefinedTypeName","pathNode":{"id":76082,"name":"IERC20","nameLocations":["5773:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"5773:6:129"},"referencedDeclaration":56900,"src":"5773:6:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":76086,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"5810:20:129","nodeType":"VariableDeclaration","scope":76108,"src":"5802:28:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76085,"name":"uint256","nodeType":"ElementaryTypeName","src":"5802:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76088,"mutability":"mutable","name":"_communityFee","nameLocation":"5848:13:129","nodeType":"VariableDeclaration","scope":76108,"src":"5840:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76087,"name":"uint256","nodeType":"ElementaryTypeName","src":"5840:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76090,"mutability":"mutable","name":"_nonce","nameLocation":"5935:6:129","nodeType":"VariableDeclaration","scope":76108,"src":"5927:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76089,"name":"uint256","nodeType":"ElementaryTypeName","src":"5927:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76092,"mutability":"mutable","name":"_registryFactory","nameLocation":"5959:16:129","nodeType":"VariableDeclaration","scope":76108,"src":"5951:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76091,"name":"address","nodeType":"ElementaryTypeName","src":"5951:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76094,"mutability":"mutable","name":"_feeReceiver","nameLocation":"5993:12:129","nodeType":"VariableDeclaration","scope":76108,"src":"5985:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76093,"name":"address","nodeType":"ElementaryTypeName","src":"5985:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76097,"mutability":"mutable","name":"_metadata","nameLocation":"6024:9:129","nodeType":"VariableDeclaration","scope":76108,"src":"6015:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":76096,"nodeType":"UserDefinedTypeName","pathNode":{"id":76095,"name":"Metadata","nameLocations":["6015:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"6015:8:129"},"referencedDeclaration":3098,"src":"6015:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":76099,"mutability":"mutable","name":"_councilSafe","nameLocation":"6059:12:129","nodeType":"VariableDeclaration","scope":76108,"src":"6043:28:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76098,"name":"address","nodeType":"ElementaryTypeName","src":"6043:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":76101,"mutability":"mutable","name":"_communityName","nameLocation":"6088:14:129","nodeType":"VariableDeclaration","scope":76108,"src":"6081:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76100,"name":"string","nodeType":"ElementaryTypeName","src":"6081:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76103,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"6117:14:129","nodeType":"VariableDeclaration","scope":76108,"src":"6112:19:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76102,"name":"bool","nodeType":"ElementaryTypeName","src":"6112:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":76105,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"6148:16:129","nodeType":"VariableDeclaration","scope":76108,"src":"6141:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":76104,"name":"string","nodeType":"ElementaryTypeName","src":"6141:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":76107,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"6182:17:129","nodeType":"VariableDeclaration","scope":76108,"src":"6174:25:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76106,"name":"address","nodeType":"ElementaryTypeName","src":"6174:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"5723:16:129","scope":77675,"visibility":"public"},{"id":76110,"nodeType":"VariableDeclaration","src":"6303:25:129","nodes":[],"constant":false,"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"6315:13:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":76109,"name":"bool","nodeType":"ElementaryTypeName","src":"6303:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":76112,"nodeType":"VariableDeclaration","src":"6472:34:129","nodes":[],"constant":false,"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"6487:19:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76111,"name":"uint256","nodeType":"ElementaryTypeName","src":"6472:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76114,"nodeType":"VariableDeclaration","src":"6512:27:129","nodes":[],"constant":false,"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"6527:12:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76113,"name":"uint256","nodeType":"ElementaryTypeName","src":"6512:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76116,"nodeType":"VariableDeclaration","src":"6545:24:129","nodes":[],"constant":false,"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"6560:9:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":76115,"name":"bytes32","nodeType":"ElementaryTypeName","src":"6545:7:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":76118,"nodeType":"VariableDeclaration","src":"6620:26:129","nodes":[],"constant":false,"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"6635:11:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76117,"name":"address","nodeType":"ElementaryTypeName","src":"6620:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76120,"nodeType":"VariableDeclaration","src":"6652:30:129","nodes":[],"constant":false,"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"6667:15:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76119,"name":"address","nodeType":"ElementaryTypeName","src":"6652:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76122,"nodeType":"VariableDeclaration","src":"6688:31:129","nodes":[],"constant":false,"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"6703:16:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76121,"name":"address","nodeType":"ElementaryTypeName","src":"6688:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":76124,"nodeType":"VariableDeclaration","src":"6725:25:129","nodes":[],"constant":false,"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"6740:10:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76123,"name":"uint256","nodeType":"ElementaryTypeName","src":"6725:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76126,"nodeType":"VariableDeclaration","src":"6756:41:129","nodes":[],"constant":false,"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"6779:18:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":76125,"name":"address","nodeType":"ElementaryTypeName","src":"6756:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":76129,"nodeType":"VariableDeclaration","src":"6875:25:129","nodes":[],"constant":false,"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"6892:8:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":76128,"nodeType":"UserDefinedTypeName","pathNode":{"id":76127,"name":"IRegistry","nameLocations":["6875:9:129"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"6875:9:129"},"referencedDeclaration":2802,"src":"6875:9:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":76132,"nodeType":"VariableDeclaration","src":"6906:25:129","nodes":[],"constant":false,"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"6920:11:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":76131,"nodeType":"UserDefinedTypeName","pathNode":{"id":76130,"name":"IERC20","nameLocations":["6906:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"6906:6:129"},"referencedDeclaration":56900,"src":"6906:6:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"public"},{"id":76135,"nodeType":"VariableDeclaration","src":"6937:24:129","nodes":[],"constant":false,"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"6950:11:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"},"typeName":{"id":76134,"nodeType":"UserDefinedTypeName","pathNode":{"id":76133,"name":"ISafe","nameLocations":["6937:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":80232,"src":"6937:5:129"},"referencedDeclaration":80232,"src":"6937:5:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"visibility":"public"},{"id":76138,"nodeType":"VariableDeclaration","src":"6967:17:129","nodes":[],"constant":false,"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"6980:4:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"},"typeName":{"id":76137,"nodeType":"UserDefinedTypeName","pathNode":{"id":76136,"name":"FAllo","nameLocations":["6967:5:129"],"nodeType":"IdentifierPath","referencedDeclaration":75815,"src":"6967:5:129"},"referencedDeclaration":75815,"src":"6967:5:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"visibility":"public"},{"id":76140,"nodeType":"VariableDeclaration","src":"7048:27:129","nodes":[],"constant":false,"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"7062:13:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76139,"name":"string","nodeType":"ElementaryTypeName","src":"7048:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76142,"nodeType":"VariableDeclaration","src":"7081:30:129","nodes":[],"constant":false,"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"7095:16:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":76141,"name":"string","nodeType":"ElementaryTypeName","src":"7081:6:129","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":76146,"nodeType":"VariableDeclaration","src":"7175:68:129","nodes":[],"constant":false,"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"7226:17:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":76145,"keyName":"strategy","keyNameLocation":"7191:8:129","keyType":{"id":76143,"name":"address","nodeType":"ElementaryTypeName","src":"7183:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7175:43:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"7208:9:129","valueType":{"id":76144,"name":"bool","nodeType":"ElementaryTypeName","src":"7203:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":76152,"nodeType":"VariableDeclaration","src":"7249:98:129","nodes":[],"constant":false,"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"7326:21:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":76151,"keyName":"strategy","keyNameLocation":"7265:8:129","keyType":{"id":76147,"name":"address","nodeType":"ElementaryTypeName","src":"7257:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7249:69:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76150,"keyName":"member","keyNameLocation":"7293:6:129","keyType":{"id":76148,"name":"address","nodeType":"ElementaryTypeName","src":"7285:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7277:40:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"7311:5:129","valueType":{"id":76149,"name":"uint256","nodeType":"ElementaryTypeName","src":"7303:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":76157,"nodeType":"VariableDeclaration","src":"7354:60:129","nodes":[],"constant":false,"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"7395:19:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"typeName":{"id":76156,"keyName":"member","keyNameLocation":"7370:6:129","keyType":{"id":76153,"name":"address","nodeType":"ElementaryTypeName","src":"7362:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7354:33:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76155,"nodeType":"UserDefinedTypeName","pathNode":{"id":76154,"name":"Member","nameLocations":["7380:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"7380:6:129"},"referencedDeclaration":76075,"src":"7380:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}}},"visibility":"public"},{"id":76162,"nodeType":"VariableDeclaration","src":"7420:82:129","nodes":[],"constant":false,"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"7484:18:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":76161,"keyName":"member","keyNameLocation":"7436:6:129","keyType":{"id":76158,"name":"address","nodeType":"ElementaryTypeName","src":"7428:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7420:56:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"7456:19:129","valueType":{"baseType":{"id":76159,"name":"address","nodeType":"ElementaryTypeName","src":"7446:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76160,"nodeType":"ArrayTypeName","src":"7446:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":76168,"nodeType":"VariableDeclaration","src":"7508:107:129","nodes":[],"constant":false,"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"7588:27:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":76167,"keyName":"member","keyNameLocation":"7524:6:129","keyType":{"id":76163,"name":"address","nodeType":"ElementaryTypeName","src":"7516:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7508:72:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":76166,"keyName":"strategy","keyNameLocation":"7550:8:129","keyType":{"id":76164,"name":"address","nodeType":"ElementaryTypeName","src":"7542:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"7534:45:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"7567:11:129","valueType":{"id":76165,"name":"bool","nodeType":"ElementaryTypeName","src":"7562:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":76171,"nodeType":"VariableDeclaration","src":"7622:24:129","nodes":[],"constant":false,"mutability":"mutable","name":"initialMembers","nameLocation":"7632:14:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":76169,"name":"address","nodeType":"ElementaryTypeName","src":"7622:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76170,"nodeType":"ArrayTypeName","src":"7622:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":76176,"nodeType":"VariableDeclaration","src":"7653:49:129","nodes":[],"constant":true,"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"7677:15:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76172,"name":"uint256","nodeType":"ElementaryTypeName","src":"7653:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":76175,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76173,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7695:2:129","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":76174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7701:1:129","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"7695:7:129","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":76181,"nodeType":"VariableDeclaration","src":"7708:54:129","nodes":[],"constant":true,"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"7732:7:129","scope":77675,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76177,"name":"uint256","nodeType":"ElementaryTypeName","src":"7708:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76180,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":76178,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"7742:2:129","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":76179,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"7747:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"7742:20:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":76190,"nodeType":"FunctionDefinition","src":"7769:145:129","nodes":[],"body":{"id":76189,"nodeType":"Block","src":"7783:131:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":76185,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"7865:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76186,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55020,"src":"7888:18:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":76184,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55244,"src":"7851:13:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":76187,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"7851:56:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76188,"nodeType":"ExpressionStatement","src":"7851:56:129"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":76182,"nodeType":"ParameterList","parameters":[],"src":"7780:2:129"},"returnParameters":{"id":76183,"nodeType":"ParameterList","parameters":[],"src":"7783:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76413,"nodeType":"FunctionDefinition","src":"7920:1945:129","nodes":[],"body":{"id":76412,"nodeType":"Block","src":"7997:1868:129","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"expression":{"id":76199,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8034:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76200,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8041:12:129","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76084,"src":"8034:19:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":76198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"8026:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76197,"name":"address","nodeType":"ElementaryTypeName","src":"8026:7:129","typeDescriptions":{}}},"id":76201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8026:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76196,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8007:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8007:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76203,"nodeType":"ExpressionStatement","src":"8007:48:129"},{"expression":{"arguments":[{"expression":{"id":76205,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8084:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76206,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8091:12:129","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76099,"src":"8084:19:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76204,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8065:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76207,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8065:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76208,"nodeType":"ExpressionStatement","src":"8065:39:129"},{"expression":{"arguments":[{"expression":{"id":76210,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8133:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76211,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8140:5:129","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76081,"src":"8133:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76209,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8114:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76212,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8114:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76213,"nodeType":"ExpressionStatement","src":"8114:32:129"},{"expression":{"arguments":[{"expression":{"id":76215,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8175:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76216,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8182:16:129","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76092,"src":"8175:23:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76214,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8156:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76217,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8156:43:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76218,"nodeType":"ExpressionStatement","src":"8156:43:129"},{"expression":{"arguments":[{"expression":{"id":76220,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8228:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76221,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8235:17:129","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"8228:24:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76219,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8209:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8209:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76223,"nodeType":"ExpressionStatement","src":"8209:44:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76227,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76224,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8268:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76225,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8275:13:129","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76088,"src":"8268:20:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8292:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8268:25:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76234,"nodeType":"IfStatement","src":"8264:95:129","trueBody":{"id":76233,"nodeType":"Block","src":"8295:64:129","statements":[{"expression":{"arguments":[{"expression":{"id":76229,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8328:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8335:12:129","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76094,"src":"8328:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76228,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"8309:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8309:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76232,"nodeType":"ExpressionStatement","src":"8309:39:129"}]}},{"expression":{"id":76240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76235,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"8368:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76237,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8381:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76238,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8388:5:129","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":76081,"src":"8381:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76236,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75815,"src":"8375:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$75815_$","typeString":"type(contract FAllo)"}},"id":76239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8375:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"src":"8368:26:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":76241,"nodeType":"ExpressionStatement","src":"8368:26:129"},{"expression":{"id":76245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76242,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"8404:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76243,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8418:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76244,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8425:12:129","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":76084,"src":"8418:19:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"src":"8404:33:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76246,"nodeType":"ExpressionStatement","src":"8404:33:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76250,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76247,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8451:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76248,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8458:20:129","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76086,"src":"8451:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":76249,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"8482:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"8451:32:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76255,"nodeType":"IfStatement","src":"8447:89:129","trueBody":{"id":76254,"nodeType":"Block","src":"8485:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76251,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76054,"src":"8506:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76252,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8506:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76253,"nodeType":"RevertStatement","src":"8499:26:129"}]}},{"expression":{"id":76259,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76256,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"8545:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76257,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8567:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76258,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8574:20:129","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":76086,"src":"8567:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8545:49:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76260,"nodeType":"ExpressionStatement","src":"8545:49:129"},{"expression":{"id":76264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76261,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"8604:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76262,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8619:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76263,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8626:13:129","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":76088,"src":"8619:20:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"8604:35:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76265,"nodeType":"ExpressionStatement","src":"8604:35:129"},{"expression":{"id":76269,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76266,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76110,"src":"8649:13:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76267,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8665:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76268,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8672:14:129","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":76103,"src":"8665:21:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"8649:37:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76270,"nodeType":"ExpressionStatement","src":"8649:37:129"},{"expression":{"id":76274,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76271,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"8696:13:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76272,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8712:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76273,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8719:14:129","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":76101,"src":"8712:21:129","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8696:37:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76275,"nodeType":"ExpressionStatement","src":"8696:37:129"},{"expression":{"id":76279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76276,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76142,"src":"8743:16:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76277,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8762:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76278,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8769:16:129","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":76105,"src":"8762:23:129","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"8743:42:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":76280,"nodeType":"ExpressionStatement","src":"8743:42:129"},{"expression":{"id":76284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76281,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"8795:15:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76282,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8813:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76283,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8820:16:129","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76092,"src":"8813:23:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8795:41:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76285,"nodeType":"ExpressionStatement","src":"8795:41:129"},{"expression":{"id":76289,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76286,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"8846:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76287,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8860:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76288,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8867:12:129","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":76094,"src":"8860:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8846:33:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76290,"nodeType":"ExpressionStatement","src":"8846:33:129"},{"expression":{"id":76296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76291,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"8889:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76293,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8909:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76294,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8916:12:129","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76099,"src":"8909:19:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76292,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"8903:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$80232_$","typeString":"type(contract ISafe)"}},"id":76295,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8903:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"src":"8889:40:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":76297,"nodeType":"ExpressionStatement","src":"8889:40:129"},{"expression":{"id":76301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76298,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76122,"src":"8939:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":76299,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"8958:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76300,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"8965:17:129","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"8958:24:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"8939:43:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76302,"nodeType":"ExpressionStatement","src":"8939:43:129"},{"expression":{"arguments":[{"id":76304,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"9004:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":76305,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9027:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76306,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9034:12:129","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":76099,"src":"9027:19:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":76303,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55276,"src":"8993:10:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":76307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"8993:54:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76308,"nodeType":"ExpressionStatement","src":"8993:54:129"},{"expression":{"id":76315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76309,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"9058:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76311,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"9079:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":76312,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9084:11:129","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":75806,"src":"9079:16:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":76313,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9079:18:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76310,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"9069:9:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":76314,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9069:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"9058:40:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76316,"nodeType":"ExpressionStatement","src":"9058:40:129"},{"assignments":[76321],"declarations":[{"constant":false,"id":76321,"mutability":"mutable","name":"owners","nameLocation":"9126:6:129","nodeType":"VariableDeclaration","scope":76412,"src":"9109:23:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76319,"name":"address","nodeType":"ElementaryTypeName","src":"9109:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76320,"nodeType":"ArrayTypeName","src":"9109:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76325,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76322,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"9135:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":76323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9147:9:129","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":80231,"src":"9135:21:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":76324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9135:23:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9109:49:129"},{"assignments":[76330],"declarations":[{"constant":false,"id":76330,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"9185:19:129","nodeType":"VariableDeclaration","scope":76412,"src":"9168:36:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76328,"name":"address","nodeType":"ElementaryTypeName","src":"9168:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76329,"nodeType":"ArrayTypeName","src":"9168:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76339,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76337,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76334,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"9221:6:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76335,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9228:6:129","memberName":"length","nodeType":"MemberAccess","src":"9221:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":76336,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9237:1:129","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9221:17:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76333,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"9207:13:129","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":76331,"name":"address","nodeType":"ElementaryTypeName","src":"9211:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76332,"nodeType":"ArrayTypeName","src":"9211:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":76338,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9207:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"9168:71:129"},{"body":{"id":76359,"nodeType":"Block","src":"9294:59:129","statements":[{"expression":{"id":76357,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76351,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9308:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76353,"indexExpression":{"id":76352,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9328:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9308:22:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76354,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"9333:6:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76356,"indexExpression":{"id":76355,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9340:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"9333:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9308:34:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76358,"nodeType":"ExpressionStatement","src":"9308:34:129"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76344,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9270:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76345,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76321,"src":"9274:6:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9281:6:129","memberName":"length","nodeType":"MemberAccess","src":"9274:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"9270:17:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76360,"initializationExpression":{"assignments":[76341],"declarations":[{"constant":false,"id":76341,"mutability":"mutable","name":"i","nameLocation":"9263:1:129","nodeType":"VariableDeclaration","scope":76360,"src":"9255:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76340,"name":"uint256","nodeType":"ElementaryTypeName","src":"9255:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76343,"initialValue":{"hexValue":"30","id":76342,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9267:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"9255:13:129"},"loopExpression":{"expression":{"id":76349,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"9289:3:129","subExpression":{"id":76348,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76341,"src":"9289:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76350,"nodeType":"ExpressionStatement","src":"9289:3:129"},"nodeType":"ForStatement","src":"9250:103:129"},{"expression":{"id":76371,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76361,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9363:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76366,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76365,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76362,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9383:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9403:6:129","memberName":"length","nodeType":"MemberAccess","src":"9383:26:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9412:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"9383:30:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9363:51:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76369,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"9425:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}],"id":76368,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9417:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76367,"name":"address","nodeType":"ElementaryTypeName","src":"9417:7:129","typeDescriptions":{}}},"id":76370,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9417:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9363:74:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76372,"nodeType":"ExpressionStatement","src":"9363:74:129"},{"expression":{"id":76383,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76373,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9447:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76378,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76377,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76374,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9467:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76375,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9487:6:129","memberName":"length","nodeType":"MemberAccess","src":"9467:26:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":76376,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"9496:1:129","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"9467:30:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"9447:51:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76381,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9509:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76380,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9501:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76379,"name":"address","nodeType":"ElementaryTypeName","src":"9501:7:129","typeDescriptions":{}}},"id":76382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9501:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"9447:67:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76384,"nodeType":"ExpressionStatement","src":"9447:67:129"},{"expression":{"id":76399,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76385,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"9602:9:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":76388,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9649:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76389,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9656:6:129","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76090,"src":"9649:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76390,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"9664:13:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76391,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9679:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76392,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9686:9:129","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76097,"src":"9679:16:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":76395,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"9705:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76394,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9697:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76393,"name":"address","nodeType":"ElementaryTypeName","src":"9697:7:129","typeDescriptions":{}}},"id":76396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9697:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76397,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9712:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76386,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76129,"src":"9626:8:129","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":76387,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"9635:13:129","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"9626:22:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":76398,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9626:106:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"9602:130:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":76400,"nodeType":"ExpressionStatement","src":"9602:130:129"},{"expression":{"id":76403,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76401,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"9743:14:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76402,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76330,"src":"9760:19:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"9743:36:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76404,"nodeType":"ExpressionStatement","src":"9743:36:129"},{"eventCall":{"arguments":[{"id":76406,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"9815:9:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76407,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76140,"src":"9826:13:129","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":76408,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76193,"src":"9841:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":76409,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9848:9:129","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":76097,"src":"9841:16:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76405,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75884,"src":"9795:19:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":76410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9795:63:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76411,"nodeType":"EmitStatement","src":"9790:68:129"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[],"name":"initialize","nameLocation":"7929:10:129","parameters":{"id":76194,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76193,"mutability":"mutable","name":"params","nameLocation":"7982:6:129","nodeType":"VariableDeclaration","scope":76413,"src":"7940:48:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":76192,"nodeType":"UserDefinedTypeName","pathNode":{"id":76191,"name":"RegistryCommunity.InitializeParams","nameLocations":["7940:17:129","7958:16:129"],"nodeType":"IdentifierPath","referencedDeclaration":76108,"src":"7940:34:129"},"referencedDeclaration":76108,"src":"7940:34:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"7939:50:129"},"returnParameters":{"id":76195,"nodeType":"ParameterList","parameters":[],"src":"7997:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76445,"nodeType":"FunctionDefinition","src":"9871:341:129","nodes":[],"body":{"id":76444,"nodeType":"Block","src":"10052:160:129","nodes":[],"statements":[{"assignments":[76429],"declarations":[{"constant":false,"id":76429,"mutability":"mutable","name":"strategyClone","nameLocation":"10070:13:129","nodeType":"VariableDeclaration","scope":76444,"src":"10062:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76428,"name":"address","nodeType":"ElementaryTypeName","src":"10062:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76436,"initialValue":{"arguments":[{"id":76432,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76122,"src":"10104:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76434,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10122:12:129","subExpression":{"id":76433,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76124,"src":"10122:10:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76430,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"10086:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":76431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10092:11:129","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"10086:17:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":76435,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10086:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10062:73:129"},{"expression":{"arguments":[{"id":76438,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76429,"src":"10163:13:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76439,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76415,"src":"10178:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76440,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76418,"src":"10186:7:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":76441,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76421,"src":"10195:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76437,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[76445,76517],"referencedDeclaration":76517,"src":"10152:10:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$72883_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":76442,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10152:53:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":76427,"id":76443,"nodeType":"Return","src":"10145:60:129"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"9880:10:129","parameters":{"id":76422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76415,"mutability":"mutable","name":"_token","nameLocation":"9899:6:129","nodeType":"VariableDeclaration","scope":76445,"src":"9891:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76414,"name":"address","nodeType":"ElementaryTypeName","src":"9891:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76418,"mutability":"mutable","name":"_params","nameLocation":"9946:7:129","nodeType":"VariableDeclaration","scope":76445,"src":"9907:46:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76417,"nodeType":"UserDefinedTypeName","pathNode":{"id":76416,"name":"StrategyStruct.InitializeParams","nameLocations":["9907:14:129","9922:16:129"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"9907:31:129"},"referencedDeclaration":72883,"src":"9907:31:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76421,"mutability":"mutable","name":"_metadata","nameLocation":"9971:9:129","nodeType":"VariableDeclaration","scope":76445,"src":"9955:25:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76420,"nodeType":"UserDefinedTypeName","pathNode":{"id":76419,"name":"Metadata","nameLocations":["9955:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9955:8:129"},"referencedDeclaration":3098,"src":"9955:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"9890:91:129"},"returnParameters":{"id":76427,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76424,"mutability":"mutable","name":"poolId","nameLocation":"10022:6:129","nodeType":"VariableDeclaration","scope":76445,"src":"10014:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76423,"name":"uint256","nodeType":"ElementaryTypeName","src":"10014:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76426,"mutability":"mutable","name":"strategy","nameLocation":"10038:8:129","nodeType":"VariableDeclaration","scope":76445,"src":"10030:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76425,"name":"address","nodeType":"ElementaryTypeName","src":"10030:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10013:34:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76517,"nodeType":"FunctionDefinition","src":"10218:653:129","nodes":[],"body":{"id":76516,"nodeType":"Block","src":"10436:435:129","nodes":[],"statements":[{"assignments":[76463],"declarations":[{"constant":false,"id":76463,"mutability":"mutable","name":"token","nameLocation":"10454:5:129","nodeType":"VariableDeclaration","scope":76516,"src":"10446:13:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76462,"name":"address","nodeType":"ElementaryTypeName","src":"10446:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76465,"initialValue":{"id":76464,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75832,"src":"10462:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"10446:22:129"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76471,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76466,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76449,"src":"10482:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":76469,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10500:1:129","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":76468,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10492:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76467,"name":"address","nodeType":"ElementaryTypeName","src":"10492:7:129","typeDescriptions":{}}},"id":76470,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10492:10:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10482:20:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76477,"nodeType":"IfStatement","src":"10478:65:129","trueBody":{"id":76476,"nodeType":"Block","src":"10504:39:129","statements":[{"expression":{"id":76474,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76472,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"10518:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76473,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76449,"src":"10526:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10518:14:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76475,"nodeType":"ExpressionStatement","src":"10518:14:129"}]}},{"expression":{"id":76480,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76478,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"10552:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76479,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76447,"src":"10563:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10552:20:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76481,"nodeType":"ExpressionStatement","src":"10552:20:129"},{"assignments":[76486],"declarations":[{"constant":false,"id":76486,"mutability":"mutable","name":"_pool_managers","nameLocation":"10600:14:129","nodeType":"VariableDeclaration","scope":76516,"src":"10583:31:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76484,"name":"address","nodeType":"ElementaryTypeName","src":"10583:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76485,"nodeType":"ArrayTypeName","src":"10583:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76488,"initialValue":{"id":76487,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76171,"src":"10617:14:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"10583:48:129"},{"expression":{"id":76503,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76489,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76458,"src":"10642:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76492,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76116,"src":"10698:9:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":76493,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"10709:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76496,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76452,"src":"10730:7:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":76494,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"10719:3:129","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":76495,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"10723:6:129","memberName":"encode","nodeType":"MemberAccess","src":"10719:10:129","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":76497,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10719:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":76498,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76463,"src":"10740:5:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76499,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10747:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":76500,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76455,"src":"10750:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":76501,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76486,"src":"10761:14:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":76490,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"10651:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":76491,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10656:28:129","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":75801,"src":"10651:33:129","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":76502,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10651:134:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10642:143:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76504,"nodeType":"ExpressionStatement","src":"10642:143:129"},{"eventCall":{"arguments":[{"id":76506,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76458,"src":"10813:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76507,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76460,"src":"10821:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76510,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"10839:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76509,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"10831:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76508,"name":"address","nodeType":"ElementaryTypeName","src":"10831:7:129","typeDescriptions":{}}},"id":76511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10831:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76512,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76449,"src":"10846:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76513,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76455,"src":"10854:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":76505,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75935,"src":"10801:11:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":76514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10801:63:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76515,"nodeType":"EmitStatement","src":"10796:68:129"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"10227:10:129","parameters":{"id":76456,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76447,"mutability":"mutable","name":"_strategy","nameLocation":"10255:9:129","nodeType":"VariableDeclaration","scope":76517,"src":"10247:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76446,"name":"address","nodeType":"ElementaryTypeName","src":"10247:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76449,"mutability":"mutable","name":"_token","nameLocation":"10282:6:129","nodeType":"VariableDeclaration","scope":76517,"src":"10274:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76448,"name":"address","nodeType":"ElementaryTypeName","src":"10274:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76452,"mutability":"mutable","name":"_params","nameLocation":"10337:7:129","nodeType":"VariableDeclaration","scope":76517,"src":"10298:46:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":76451,"nodeType":"UserDefinedTypeName","pathNode":{"id":76450,"name":"StrategyStruct.InitializeParams","nameLocations":["10298:14:129","10313:16:129"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"10298:31:129"},"referencedDeclaration":72883,"src":"10298:31:129","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":76455,"mutability":"mutable","name":"_metadata","nameLocation":"10370:9:129","nodeType":"VariableDeclaration","scope":76517,"src":"10354:25:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":76454,"nodeType":"UserDefinedTypeName","pathNode":{"id":76453,"name":"Metadata","nameLocations":["10354:8:129"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"10354:8:129"},"referencedDeclaration":3098,"src":"10354:8:129","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"10237:148:129"},"returnParameters":{"id":76461,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76458,"mutability":"mutable","name":"poolId","nameLocation":"10410:6:129","nodeType":"VariableDeclaration","scope":76517,"src":"10402:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76457,"name":"uint256","nodeType":"ElementaryTypeName","src":"10402:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":76460,"mutability":"mutable","name":"strategy","nameLocation":"10426:8:129","nodeType":"VariableDeclaration","scope":76517,"src":"10418:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76459,"name":"address","nodeType":"ElementaryTypeName","src":"10418:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10401:34:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76634,"nodeType":"FunctionDefinition","src":"10877:1179:129","nodes":[],"body":{"id":76633,"nodeType":"Block","src":"10954:1102:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":76525,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"10990:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76524,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75979,"src":"10964:25:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76526,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10964:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76527,"nodeType":"ExpressionStatement","src":"10964:34:129"},{"expression":{"arguments":[{"id":76529,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11028:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76528,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75994,"src":"11008:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76530,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11008:30:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76531,"nodeType":"ExpressionStatement","src":"11008:30:129"},{"expression":{"arguments":[{"id":76533,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11067:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76532,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"11048:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76534,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11048:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76535,"nodeType":"ExpressionStatement","src":"11048:29:129"},{"condition":{"baseExpression":{"baseExpression":{"id":76536,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"11092:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76538,"indexExpression":{"id":76537,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11120:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11092:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76540,"indexExpression":{"id":76539,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11129:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11092:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76545,"nodeType":"IfStatement","src":"11088:107:129","trueBody":{"id":76544,"nodeType":"Block","src":"11141:54:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76541,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76042,"src":"11162:20:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76542,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11162:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76543,"nodeType":"RevertStatement","src":"11155:29:129"}]}},{"assignments":[76548],"declarations":[{"constant":false,"id":76548,"mutability":"mutable","name":"member","nameLocation":"11219:6:129","nodeType":"VariableDeclaration","scope":76633,"src":"11205:20:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":76547,"nodeType":"UserDefinedTypeName","pathNode":{"id":76546,"name":"Member","nameLocations":["11205:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"11205:6:129"},"referencedDeclaration":76075,"src":"11205:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":76552,"initialValue":{"baseExpression":{"id":76549,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"11228:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76551,"indexExpression":{"id":76550,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11248:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11228:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"11205:51:129"},{"assignments":[76554],"declarations":[{"constant":false,"id":76554,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"11275:17:129","nodeType":"VariableDeclaration","scope":76633,"src":"11267:25:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76553,"name":"uint256","nodeType":"ElementaryTypeName","src":"11267:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76557,"initialValue":{"expression":{"id":76555,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76548,"src":"11295:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":76556,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11302:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"11295:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11267:47:129"},{"assignments":[76559],"declarations":[{"constant":false,"id":76559,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"11332:16:129","nodeType":"VariableDeclaration","scope":76633,"src":"11324:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76558,"name":"uint256","nodeType":"ElementaryTypeName","src":"11324:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76561,"initialValue":{"id":76560,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"11351:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"11324:46:129"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":76570,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76563,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11400:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76562,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11385:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76564,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11385:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76565,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11411:14:129","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72792,"src":"11385:40:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72802_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76566,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11385:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":76567,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"11431:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":76568,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11446:11:129","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"11431:26:129","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76569,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11458:9:129","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72801,"src":"11431:36:129","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"11385:82:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":76590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":76583,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11589:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76582,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11574:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76584,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76585,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11600:14:129","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72792,"src":"11574:40:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72802_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":76586,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11574:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":76587,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"11620:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":76588,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11635:11:129","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"11620:26:129","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":76589,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"11647:5:129","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":72798,"src":"11620:32:129","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"11574:78:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76602,"nodeType":"IfStatement","src":"11570:195:129","trueBody":{"id":76601,"nodeType":"Block","src":"11654:111:129","statements":[{"expression":{"id":76599,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76591,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"11668:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76596,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11727:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76597,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76554,"src":"11736:17:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76593,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11702:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76592,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11687:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11687:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76595,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11713:13:129","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"11687:39:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76598,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11687:67:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11668:86:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76600,"nodeType":"ExpressionStatement","src":"11668:86:129"}]}},"id":76603,"nodeType":"IfStatement","src":"11381:384:129","trueBody":{"id":76581,"nodeType":"Block","src":"11469:95:129","statements":[{"expression":{"id":76579,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76571,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"11483:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76576,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11542:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":76577,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11551:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":76573,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11517:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76572,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"11502:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76575,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11528:13:129","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"11502:39:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76578,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11502:51:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11483:70:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76580,"nodeType":"ExpressionStatement","src":"11483:70:129"}]}},{"expression":{"id":76610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76604,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"11775:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76607,"indexExpression":{"id":76605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11797:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11775:30:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76608,"indexExpression":{"id":76606,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11806:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11775:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":76609,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"11819:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"11775:60:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76611,"nodeType":"ExpressionStatement","src":"11775:60:129"},{"expression":{"id":76618,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76612,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"11864:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76615,"indexExpression":{"id":76613,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11892:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11864:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76616,"indexExpression":{"id":76614,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11901:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11864:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":76617,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"11914:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"11864:54:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76619,"nodeType":"ExpressionStatement","src":"11864:54:129"},{"expression":{"arguments":[{"id":76624,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"11962:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":76620,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"11929:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76622,"indexExpression":{"id":76621,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"11948:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11929:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":76623,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11957:4:129","memberName":"push","nodeType":"MemberAccess","src":"11929:32:129","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":76625,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11929:43:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76626,"nodeType":"ExpressionStatement","src":"11929:43:129"},{"eventCall":{"arguments":[{"id":76628,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76519,"src":"12012:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76629,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76521,"src":"12021:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76630,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76559,"src":"12032:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76627,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75900,"src":"11988:23:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":76631,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11988:61:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76632,"nodeType":"EmitStatement","src":"11983:66:129"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"10886:24:129","parameters":{"id":76522,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76519,"mutability":"mutable","name":"_member","nameLocation":"10919:7:129","nodeType":"VariableDeclaration","scope":76634,"src":"10911:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76518,"name":"address","nodeType":"ElementaryTypeName","src":"10911:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76521,"mutability":"mutable","name":"_strategy","nameLocation":"10936:9:129","nodeType":"VariableDeclaration","scope":76634,"src":"10928:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76520,"name":"address","nodeType":"ElementaryTypeName","src":"10928:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"10910:36:129"},"returnParameters":{"id":76523,"nodeType":"ParameterList","parameters":[],"src":"10954:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76693,"nodeType":"FunctionDefinition","src":"12062:691:129","nodes":[],"body":{"id":76692,"nodeType":"Block","src":"12141:612:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":76642,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12177:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76641,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75979,"src":"12151:25:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":76643,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12151:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76644,"nodeType":"ExpressionStatement","src":"12151:34:129"},{"expression":{"arguments":[{"id":76646,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12214:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76645,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"12195:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":76647,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12195:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76648,"nodeType":"ExpressionStatement","src":"12195:29:129"},{"expression":{"arguments":[{"expression":{"id":76650,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"12254:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76651,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12258:6:129","memberName":"sender","nodeType":"MemberAccess","src":"12254:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76652,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12266:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76649,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76010,"src":"12234:19:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":76653,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12234:42:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76654,"nodeType":"ExpressionStatement","src":"12234:42:129"},{"condition":{"id":76660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"12291:48:129","subExpression":{"baseExpression":{"baseExpression":{"id":76655,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"12292:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76657,"indexExpression":{"id":76656,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12320:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12292:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76659,"indexExpression":{"id":76658,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12329:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12292:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76665,"nodeType":"IfStatement","src":"12287:110:129","trueBody":{"id":76664,"nodeType":"Block","src":"12341:56:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76661,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76044,"src":"12362:22:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76662,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12362:24:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76663,"nodeType":"RevertStatement","src":"12355:31:129"}]}},{"expression":{"id":76672,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76666,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76168,"src":"12407:27:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":76669,"indexExpression":{"id":76667,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12435:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12407:36:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":76670,"indexExpression":{"id":76668,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12444:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12407:47:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":76671,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"12457:5:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"12407:55:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76673,"nodeType":"ExpressionStatement","src":"12407:55:129"},{"expression":{"id":76680,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76674,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"12472:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76677,"indexExpression":{"id":76675,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12494:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12472:30:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76678,"indexExpression":{"id":76676,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12503:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"12472:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":76679,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12516:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"12472:45:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76681,"nodeType":"ExpressionStatement","src":"12472:45:129"},{"expression":{"arguments":[{"id":76683,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12552:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76684,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12561:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76682,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76746,"src":"12527:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76685,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12527:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76686,"nodeType":"ExpressionStatement","src":"12527:44:129"},{"eventCall":{"arguments":[{"id":76688,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76636,"src":"12727:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76689,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76638,"src":"12736:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":76687,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75906,"src":"12701:25:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":76690,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12701:45:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76691,"nodeType":"EmitStatement","src":"12696:50:129"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"12071:26:129","parameters":{"id":76639,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76636,"mutability":"mutable","name":"_member","nameLocation":"12106:7:129","nodeType":"VariableDeclaration","scope":76693,"src":"12098:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76635,"name":"address","nodeType":"ElementaryTypeName","src":"12098:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76638,"mutability":"mutable","name":"_strategy","nameLocation":"12123:9:129","nodeType":"VariableDeclaration","scope":76693,"src":"12115:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76637,"name":"address","nodeType":"ElementaryTypeName","src":"12115:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12097:36:129"},"returnParameters":{"id":76640,"nodeType":"ParameterList","parameters":[],"src":"12141:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":76746,"nodeType":"FunctionDefinition","src":"12759:425:129","nodes":[],"body":{"id":76745,"nodeType":"Block","src":"12838:346:129","nodes":[],"statements":[{"assignments":[76704],"declarations":[{"constant":false,"id":76704,"mutability":"mutable","name":"memberStrategies","nameLocation":"12866:16:129","nodeType":"VariableDeclaration","scope":76745,"src":"12848:34:129","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76702,"name":"address","nodeType":"ElementaryTypeName","src":"12848:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76703,"nodeType":"ArrayTypeName","src":"12848:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76708,"initialValue":{"baseExpression":{"id":76705,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"12885:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76707,"indexExpression":{"id":76706,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76695,"src":"12904:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12885:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12848:64:129"},{"body":{"id":76743,"nodeType":"Block","src":"12976:202:129","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":76724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":76720,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"12994:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76722,"indexExpression":{"id":76721,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"13011:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12994:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":76723,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76697,"src":"13017:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12994:32:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76742,"nodeType":"IfStatement","src":"12990:178:129","trueBody":{"id":76741,"nodeType":"Block","src":"13028:140:129","statements":[{"expression":{"id":76734,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76725,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13046:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76727,"indexExpression":{"id":76726,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"13063:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13046:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76728,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13068:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76733,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76732,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76729,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13085:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76730,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13102:6:129","memberName":"length","nodeType":"MemberAccess","src":"13085:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76731,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13111:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"13085:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13068:45:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"13046:67:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76735,"nodeType":"ExpressionStatement","src":"13046:67:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76736,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"13131:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76738,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13148:3:129","memberName":"pop","nodeType":"MemberAccess","src":"13131:20:129","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":76739,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13131:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76740,"nodeType":"ExpressionStatement","src":"13131:22:129"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76716,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76713,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"12942:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76714,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76704,"src":"12946:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76715,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12963:6:129","memberName":"length","nodeType":"MemberAccess","src":"12946:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12942:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76744,"initializationExpression":{"assignments":[76710],"declarations":[{"constant":false,"id":76710,"mutability":"mutable","name":"i","nameLocation":"12935:1:129","nodeType":"VariableDeclaration","scope":76744,"src":"12927:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76709,"name":"uint256","nodeType":"ElementaryTypeName","src":"12927:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76712,"initialValue":{"hexValue":"30","id":76711,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12939:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"12927:13:129"},"loopExpression":{"expression":{"id":76718,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"12971:3:129","subExpression":{"id":76717,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76710,"src":"12971:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76719,"nodeType":"ExpressionStatement","src":"12971:3:129"},"nodeType":"ForStatement","src":"12922:256:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"12768:24:129","parameters":{"id":76698,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76695,"mutability":"mutable","name":"_member","nameLocation":"12801:7:129","nodeType":"VariableDeclaration","scope":76746,"src":"12793:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76694,"name":"address","nodeType":"ElementaryTypeName","src":"12793:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":76697,"mutability":"mutable","name":"_strategy","nameLocation":"12818:9:129","nodeType":"VariableDeclaration","scope":76746,"src":"12810:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76696,"name":"address","nodeType":"ElementaryTypeName","src":"12810:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12792:36:129"},"returnParameters":{"id":76699,"nodeType":"ParameterList","parameters":[],"src":"12838:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":76850,"nodeType":"FunctionDefinition","src":"13190:998:129","nodes":[],"body":{"id":76849,"nodeType":"Block","src":"13256:932:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76753,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75964,"src":"13266:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76754,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13266:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76755,"nodeType":"ExpressionStatement","src":"13266:26:129"},{"assignments":[76757],"declarations":[{"constant":false,"id":76757,"mutability":"mutable","name":"member","nameLocation":"13310:6:129","nodeType":"VariableDeclaration","scope":76849,"src":"13302:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76756,"name":"address","nodeType":"ElementaryTypeName","src":"13302:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76760,"initialValue":{"expression":{"id":76758,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13319:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76759,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13323:6:129","memberName":"sender","nodeType":"MemberAccess","src":"13319:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"13302:27:129"},{"assignments":[76765],"declarations":[{"constant":false,"id":76765,"mutability":"mutable","name":"memberStrategies","nameLocation":"13356:16:129","nodeType":"VariableDeclaration","scope":76849,"src":"13339:33:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76763,"name":"address","nodeType":"ElementaryTypeName","src":"13339:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76764,"nodeType":"ArrayTypeName","src":"13339:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76769,"initialValue":{"baseExpression":{"id":76766,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"13375:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76768,"indexExpression":{"id":76767,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13394:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13375:26:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"13339:62:129"},{"assignments":[76771],"declarations":[{"constant":false,"id":76771,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13420:16:129","nodeType":"VariableDeclaration","scope":76849,"src":"13412:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76770,"name":"uint256","nodeType":"ElementaryTypeName","src":"13412:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76772,"nodeType":"VariableDeclarationStatement","src":"13412:24:129"},{"body":{"id":76824,"nodeType":"Block","src":"13501:479:129","statements":[{"expression":{"id":76794,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76784,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"13620:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76791,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13689:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76792,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"13697:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":76786,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13654:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76788,"indexExpression":{"id":76787,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13671:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13654:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76785,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"13639:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76789,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13639:35:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76790,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13675:13:129","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"13639:49:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13639:72:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13620:91:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76795,"nodeType":"ExpressionStatement","src":"13620:91:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76798,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76796,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"13729:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":76797,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13749:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"13729:21:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76823,"nodeType":"IfStatement","src":"13725:229:129","trueBody":{"id":76822,"nodeType":"Block","src":"13752:202:129","statements":[{"expression":{"id":76807,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76799,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"13770:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76804,"indexExpression":{"id":76800,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13792:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13770:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76805,"indexExpression":{"baseExpression":{"id":76801,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13800:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76803,"indexExpression":{"id":76802,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13817:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13800:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13770:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76806,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76771,"src":"13824:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13770:70:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76808,"nodeType":"ExpressionStatement","src":"13770:70:129"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":76812,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"13870:16:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":76813,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"13888:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76815,"indexExpression":{"id":76814,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"13910:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13888:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76819,"indexExpression":{"baseExpression":{"id":76816,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13918:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76818,"indexExpression":{"id":76817,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13935:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13918:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13888:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76809,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"13858:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":76811,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13866:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"13858:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":76820,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13858:81:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76821,"nodeType":"ExpressionStatement","src":"13858:81:129"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76780,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76777,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13467:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76778,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76765,"src":"13471:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":76779,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13488:6:129","memberName":"length","nodeType":"MemberAccess","src":"13471:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13467:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76825,"initializationExpression":{"assignments":[76774],"declarations":[{"constant":false,"id":76774,"mutability":"mutable","name":"i","nameLocation":"13460:1:129","nodeType":"VariableDeclaration","scope":76825,"src":"13452:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76773,"name":"uint256","nodeType":"ElementaryTypeName","src":"13452:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76776,"initialValue":{"hexValue":"30","id":76775,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13464:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"13452:13:129"},"loopExpression":{"expression":{"id":76782,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"13496:3:129","subExpression":{"id":76781,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76774,"src":"13496:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76783,"nodeType":"ExpressionStatement","src":"13496:3:129"},"nodeType":"ForStatement","src":"13447:533:129"},{"expression":{"arguments":[{"id":76829,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"14019:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":76832,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"14035:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":76831,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"14027:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":76830,"name":"address","nodeType":"ElementaryTypeName","src":"14027:7:129","typeDescriptions":{}}},"id":76833,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14027:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76834,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"14042:13:129","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":76826,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"13990:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76828,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14002:16:129","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"13990:28:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":76835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13990:66:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76836,"nodeType":"ExpressionStatement","src":"13990:66:129"},{"expression":{"id":76842,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":76837,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"14066:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76839,"indexExpression":{"id":76838,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"14086:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14066:27:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76840,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"14094:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"14066:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":76841,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"14110:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14066:57:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76843,"nodeType":"ExpressionStatement","src":"14066:57:129"},{"eventCall":{"arguments":[{"id":76845,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76757,"src":"14159:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76846,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76748,"src":"14167:13:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76844,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75916,"src":"14138:20:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76847,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14138:43:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76848,"nodeType":"EmitStatement","src":"14133:48:129"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":76751,"kind":"modifierInvocation","modifierName":{"id":76750,"name":"nonReentrant","nameLocations":["13243:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"13243:12:129"},"nodeType":"ModifierInvocation","src":"13243:12:129"}],"name":"increasePower","nameLocation":"13199:13:129","parameters":{"id":76749,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76748,"mutability":"mutable","name":"_amountStaked","nameLocation":"13221:13:129","nodeType":"VariableDeclaration","scope":76850,"src":"13213:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76747,"name":"uint256","nodeType":"ElementaryTypeName","src":"13213:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"13212:23:129"},"returnParameters":{"id":76752,"nodeType":"ParameterList","parameters":[],"src":"13256:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77000,"nodeType":"FunctionDefinition","src":"14328:1554:129","nodes":[],"body":{"id":76999,"nodeType":"Block","src":"14396:1486:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":76857,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75964,"src":"14406:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":76858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14406:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76859,"nodeType":"ExpressionStatement","src":"14406:26:129"},{"assignments":[76861],"declarations":[{"constant":false,"id":76861,"mutability":"mutable","name":"member","nameLocation":"14450:6:129","nodeType":"VariableDeclaration","scope":76999,"src":"14442:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76860,"name":"address","nodeType":"ElementaryTypeName","src":"14442:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76864,"initialValue":{"expression":{"id":76862,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"14459:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":76863,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14463:6:129","memberName":"sender","nodeType":"MemberAccess","src":"14459:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14442:27:129"},{"assignments":[76869],"declarations":[{"constant":false,"id":76869,"mutability":"mutable","name":"memberStrategies","nameLocation":"14497:16:129","nodeType":"VariableDeclaration","scope":76999,"src":"14479:34:129","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":76867,"name":"address","nodeType":"ElementaryTypeName","src":"14479:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76868,"nodeType":"ArrayTypeName","src":"14479:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":76873,"initialValue":{"baseExpression":{"id":76870,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"14516:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":76872,"indexExpression":{"id":76871,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"14535:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14516:26:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14479:63:129"},{"assignments":[76875],"declarations":[{"constant":false,"id":76875,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"14561:16:129","nodeType":"VariableDeclaration","scope":76999,"src":"14553:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76874,"name":"uint256","nodeType":"ElementaryTypeName","src":"14553:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76876,"nodeType":"VariableDeclarationStatement","src":"14553:24:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76884,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":76877,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"14592:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76879,"indexExpression":{"id":76878,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"14612:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14592:27:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"14620:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"14592:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":76881,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"14635:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14592:58:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":76883,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"14653:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14592:80:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76889,"nodeType":"IfStatement","src":"14588:140:129","trueBody":{"id":76888,"nodeType":"Block","src":"14674:54:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":76885,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76062,"src":"14695:20:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":76886,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14695:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76887,"nodeType":"RevertStatement","src":"14688:29:129"}]}},{"expression":{"arguments":[{"id":76893,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"14762:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76894,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"14770:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":76890,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"14737:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":76892,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14749:12:129","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"14737:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":76895,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14737:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76896,"nodeType":"ExpressionStatement","src":"14737:49:129"},{"body":{"id":76985,"nodeType":"Block","src":"14850:897:129","statements":[{"assignments":[76909],"declarations":[{"constant":false,"id":76909,"mutability":"mutable","name":"strategy","nameLocation":"14872:8:129","nodeType":"VariableDeclaration","scope":76985,"src":"14864:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":76908,"name":"address","nodeType":"ElementaryTypeName","src":"14864:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":76913,"initialValue":{"baseExpression":{"id":76910,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14883:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76912,"indexExpression":{"id":76911,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"14900:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14883:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"14864:38:129"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":76917,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"14952:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":76916,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"14947:4:129","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":76918,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14947:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":76919,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"14968:11:129","memberName":"interfaceId","nodeType":"MemberAccess","src":"14947:32:129","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":76914,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76909,"src":"14920:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76915,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14929:17:129","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58147,"src":"14920:26:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":76920,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14920:60:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76983,"nodeType":"Block","src":"15470:250:129","statements":[{"expression":{"id":76972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":76963,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15555:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76965,"indexExpression":{"id":76964,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"15572:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15555:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":76966,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15577:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76971,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76970,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":76967,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15594:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15611:6:129","memberName":"length","nodeType":"MemberAccess","src":"15594:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":76969,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15620:1:129","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"15594:27:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15577:45:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"15555:67:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":76973,"nodeType":"ExpressionStatement","src":"15555:67:129"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":76974,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15640:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76976,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15657:3:129","memberName":"pop","nodeType":"MemberAccess","src":"15640:20:129","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":76977,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15640:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76978,"nodeType":"ExpressionStatement","src":"15640:22:129"},{"expression":{"arguments":[{"id":76980,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76909,"src":"15696:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76979,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77167,"src":"15680:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":76981,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15680:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76982,"nodeType":"ExpressionStatement","src":"15680:25:129"}]},"id":76984,"nodeType":"IfStatement","src":"14916:804:129","trueBody":{"id":76962,"nodeType":"Block","src":"14982:482:129","statements":[{"expression":{"id":76929,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":76921,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15000:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":76926,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15058:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76927,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"15066:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":76923,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76909,"src":"15034:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":76922,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"15019:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":76924,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15019:24:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":76925,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15044:13:129","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":72786,"src":"15019:38:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":76928,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15019:63:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15000:82:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76930,"nodeType":"ExpressionStatement","src":"15000:82:129"},{"assignments":[76932],"declarations":[{"constant":false,"id":76932,"mutability":"mutable","name":"currentPower","nameLocation":"15108:12:129","nodeType":"VariableDeclaration","scope":76962,"src":"15100:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76931,"name":"uint256","nodeType":"ElementaryTypeName","src":"15100:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76940,"initialValue":{"baseExpression":{"baseExpression":{"id":76933,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"15123:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76935,"indexExpression":{"id":76934,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15145:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15123:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76939,"indexExpression":{"baseExpression":{"id":76936,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15153:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76938,"indexExpression":{"id":76937,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"15170:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15153:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15123:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"15100:73:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76941,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15195:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":76942,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76932,"src":"15214:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15195:31:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":76960,"nodeType":"Block","src":"15339:111:129","statements":[{"expression":{"id":76958,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":76950,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"15361:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":76955,"indexExpression":{"id":76951,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15383:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15361:29:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":76956,"indexExpression":{"baseExpression":{"id":76952,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"15391:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76954,"indexExpression":{"id":76953,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"15408:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15391:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15361:50:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":76957,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15415:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15361:70:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76959,"nodeType":"ExpressionStatement","src":"15361:70:129"}]},"id":76961,"nodeType":"IfStatement","src":"15191:259:129","trueBody":{"id":76949,"nodeType":"Block","src":"15228:105:129","statements":[{"errorCall":{"arguments":[{"id":76945,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76875,"src":"15283:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":76946,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76932,"src":"15301:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76944,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76068,"src":"15257:25:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":76947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15257:57:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76948,"nodeType":"RevertStatement","src":"15250:64:129"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":76904,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":76901,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"14816:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":76902,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76869,"src":"14820:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":76903,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14837:6:129","memberName":"length","nodeType":"MemberAccess","src":"14820:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14816:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":76986,"initializationExpression":{"assignments":[76898],"declarations":[{"constant":false,"id":76898,"mutability":"mutable","name":"i","nameLocation":"14809:1:129","nodeType":"VariableDeclaration","scope":76986,"src":"14801:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76897,"name":"uint256","nodeType":"ElementaryTypeName","src":"14801:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":76900,"initialValue":{"hexValue":"30","id":76899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14813:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14801:13:129"},"loopExpression":{"expression":{"id":76906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14845:3:129","subExpression":{"id":76905,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76898,"src":"14845:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76907,"nodeType":"ExpressionStatement","src":"14845:3:129"},"nodeType":"ForStatement","src":"14796:951:129"},{"expression":{"id":76992,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":76987,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"15756:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":76989,"indexExpression":{"id":76988,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15776:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15756:27:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":76990,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15784:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"15756:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":76991,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"15800:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15756:59:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":76993,"nodeType":"ExpressionStatement","src":"15756:59:129"},{"eventCall":{"arguments":[{"id":76995,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76861,"src":"15851:6:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":76996,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76852,"src":"15859:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":76994,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75922,"src":"15830:20:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":76997,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15830:45:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":76998,"nodeType":"EmitStatement","src":"15825:50:129"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":76855,"kind":"modifierInvocation","modifierName":{"id":76854,"name":"nonReentrant","nameLocations":["14383:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"14383:12:129"},"nodeType":"ModifierInvocation","src":"14383:12:129"}],"name":"decreasePower","nameLocation":"14337:13:129","parameters":{"id":76853,"nodeType":"ParameterList","parameters":[{"constant":false,"id":76852,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"14359:15:129","nodeType":"VariableDeclaration","scope":77000,"src":"14351:23:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":76851,"name":"uint256","nodeType":"ElementaryTypeName","src":"14351:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14350:25:129"},"returnParameters":{"id":76856,"nodeType":"ParameterList","parameters":[],"src":"14396:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77016,"nodeType":"FunctionDefinition","src":"15888:165:129","nodes":[],"body":{"id":77015,"nodeType":"Block","src":"15988:65:129","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":77009,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76152,"src":"16005:21:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":77011,"indexExpression":{"id":77010,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77002,"src":"16027:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16005:30:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":77013,"indexExpression":{"id":77012,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77004,"src":"16036:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16005:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77008,"id":77014,"nodeType":"Return","src":"15998:48:129"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"15897:24:129","parameters":{"id":77005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77002,"mutability":"mutable","name":"_member","nameLocation":"15930:7:129","nodeType":"VariableDeclaration","scope":77016,"src":"15922:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77001,"name":"address","nodeType":"ElementaryTypeName","src":"15922:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77004,"mutability":"mutable","name":"_strategy","nameLocation":"15947:9:129","nodeType":"VariableDeclaration","scope":77016,"src":"15939:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77003,"name":"address","nodeType":"ElementaryTypeName","src":"15939:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"15921:36:129"},"returnParameters":{"id":77008,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77007,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77016,"src":"15979:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77006,"name":"uint256","nodeType":"ElementaryTypeName","src":"15979:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"15978:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77029,"nodeType":"FunctionDefinition","src":"16059:143:129","nodes":[],"body":{"id":77028,"nodeType":"Block","src":"16137:65:129","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77023,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"16154:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77025,"indexExpression":{"id":77024,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77018,"src":"16174:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16154:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"id":77026,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16183:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"16154:41:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77022,"id":77027,"nodeType":"Return","src":"16147:48:129"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"16068:21:129","parameters":{"id":77019,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77018,"mutability":"mutable","name":"_member","nameLocation":"16098:7:129","nodeType":"VariableDeclaration","scope":77029,"src":"16090:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77017,"name":"address","nodeType":"ElementaryTypeName","src":"16090:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16089:17:129"},"returnParameters":{"id":77022,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77021,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77029,"src":"16128:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77020,"name":"uint256","nodeType":"ElementaryTypeName","src":"16128:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16127:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77066,"nodeType":"FunctionDefinition","src":"16331:313:129","nodes":[],"body":{"id":77065,"nodeType":"Block","src":"16383:261:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77034,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"16393:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77035,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16393:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77036,"nodeType":"ExpressionStatement","src":"16393:17:129"},{"assignments":[77038],"declarations":[{"constant":false,"id":77038,"mutability":"mutable","name":"strategy","nameLocation":"16428:8:129","nodeType":"VariableDeclaration","scope":77065,"src":"16420:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77037,"name":"address","nodeType":"ElementaryTypeName","src":"16420:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77047,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77043,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77031,"src":"16460:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77041,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"16447:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":77042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16452:7:129","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75814,"src":"16447:12:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16447:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77045,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16468:8:129","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"16447:29:129","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"16439:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77039,"name":"address","nodeType":"ElementaryTypeName","src":"16439:7:129","typeDescriptions":{}}},"id":77046,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16439:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16420:57:129"},{"expression":{"arguments":[{"id":77049,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"16506:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77048,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"16487:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16487:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77051,"nodeType":"ExpressionStatement","src":"16487:28:129"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":77055,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"16561:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":77054,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16556:4:129","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":77056,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16556:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":77057,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16577:11:129","memberName":"interfaceId","nodeType":"MemberAccess","src":"16556:32:129","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":77052,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"16529:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77053,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16538:17:129","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58147,"src":"16529:26:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":77058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16529:60:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77064,"nodeType":"IfStatement","src":"16525:113:129","trueBody":{"id":77063,"nodeType":"Block","src":"16591:47:129","statements":[{"expression":{"arguments":[{"id":77060,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77038,"src":"16618:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77059,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"16605:12:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16605:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77062,"nodeType":"ExpressionStatement","src":"16605:22:129"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"16340:19:129","parameters":{"id":77032,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77031,"mutability":"mutable","name":"poolId","nameLocation":"16368:6:129","nodeType":"VariableDeclaration","scope":77066,"src":"16360:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77030,"name":"uint256","nodeType":"ElementaryTypeName","src":"16360:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16359:16:129"},"returnParameters":{"id":77033,"nodeType":"ParameterList","parameters":[],"src":"16383:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77079,"nodeType":"FunctionDefinition","src":"16650:120:129","nodes":[],"body":{"id":77078,"nodeType":"Block","src":"16700:70:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77071,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"16710:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77072,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16710:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77073,"nodeType":"ExpressionStatement","src":"16710:17:129"},{"expression":{"arguments":[{"id":77075,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77068,"src":"16750:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77074,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77103,"src":"16737:12:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77076,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16737:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77077,"nodeType":"ExpressionStatement","src":"16737:26:129"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"16659:11:129","parameters":{"id":77069,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77068,"mutability":"mutable","name":"_newStrategy","nameLocation":"16679:12:129","nodeType":"VariableDeclaration","scope":77079,"src":"16671:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77067,"name":"address","nodeType":"ElementaryTypeName","src":"16671:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16670:22:129"},"returnParameters":{"id":77070,"nodeType":"ParameterList","parameters":[],"src":"16700:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77103,"nodeType":"FunctionDefinition","src":"16776:244:129","nodes":[],"body":{"id":77102,"nodeType":"Block","src":"16829:191:129","nodes":[],"statements":[{"condition":{"baseExpression":{"id":77084,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"16843:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77086,"indexExpression":{"id":77085,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"16861:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16843:31:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77091,"nodeType":"IfStatement","src":"16839:85:129","trueBody":{"id":77090,"nodeType":"Block","src":"16876:48:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77087,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76046,"src":"16897:14:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77088,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16897:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77089,"nodeType":"RevertStatement","src":"16890:23:129"}]}},{"expression":{"id":77096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77092,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"16933:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77094,"indexExpression":{"id":77093,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"16951:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"16933:31:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77095,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"16967:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"16933:38:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77097,"nodeType":"ExpressionStatement","src":"16933:38:129"},{"eventCall":{"arguments":[{"id":77099,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77081,"src":"17000:12:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77098,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75888,"src":"16986:13:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16986:27:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77101,"nodeType":"EmitStatement","src":"16981:32:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"16785:12:129","parameters":{"id":77082,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77081,"mutability":"mutable","name":"_newStrategy","nameLocation":"16806:12:129","nodeType":"VariableDeclaration","scope":77103,"src":"16798:20:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77080,"name":"address","nodeType":"ElementaryTypeName","src":"16798:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"16797:22:129"},"returnParameters":{"id":77083,"nodeType":"ParameterList","parameters":[],"src":"16829:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77119,"nodeType":"FunctionDefinition","src":"17026:133:129","nodes":[],"body":{"id":77118,"nodeType":"Block","src":"17086:73:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77113,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77108,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77105,"src":"17100:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77111,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17120:1:129","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":77110,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17112:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77109,"name":"address","nodeType":"ElementaryTypeName","src":"17112:7:129","typeDescriptions":{}}},"id":77112,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17112:10:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17100:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77117,"nodeType":"IfStatement","src":"17096:56:129","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77114,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76030,"src":"17131:19:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77115,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17131:21:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77116,"nodeType":"RevertStatement","src":"17124:28:129"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"17035:18:129","parameters":{"id":77106,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77105,"mutability":"mutable","name":"_address","nameLocation":"17062:8:129","nodeType":"VariableDeclaration","scope":77119,"src":"17054:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77104,"name":"address","nodeType":"ElementaryTypeName","src":"17054:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17053:18:129"},"returnParameters":{"id":77107,"nodeType":"ParameterList","parameters":[],"src":"17086:0:129"},"scope":77675,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77147,"nodeType":"FunctionDefinition","src":"17165:229:129","nodes":[],"body":{"id":77146,"nodeType":"Block","src":"17220:174:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77124,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"17230:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77125,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17230:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77126,"nodeType":"ExpressionStatement","src":"17230:17:129"},{"assignments":[77128],"declarations":[{"constant":false,"id":77128,"mutability":"mutable","name":"strategy","nameLocation":"17265:8:129","nodeType":"VariableDeclaration","scope":77146,"src":"17257:16:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77127,"name":"address","nodeType":"ElementaryTypeName","src":"17257:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77137,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":77133,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77121,"src":"17297:6:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77131,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76138,"src":"17284:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$75815","typeString":"contract FAllo"}},"id":77132,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17289:7:129","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":75814,"src":"17284:12:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":77134,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17284:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":77135,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17305:8:129","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"17284:29:129","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":77130,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17276:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77129,"name":"address","nodeType":"ElementaryTypeName","src":"17276:7:129","typeDescriptions":{}}},"id":77136,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17276:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"17257:57:129"},{"expression":{"arguments":[{"id":77139,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77128,"src":"17343:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77138,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"17324:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77140,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17324:28:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77141,"nodeType":"ExpressionStatement","src":"17324:28:129"},{"expression":{"arguments":[{"id":77143,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77128,"src":"17378:8:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77142,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77167,"src":"17362:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77144,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17362:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77145,"nodeType":"ExpressionStatement","src":"17362:25:129"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"17174:22:129","parameters":{"id":77122,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77121,"mutability":"mutable","name":"poolId","nameLocation":"17205:6:129","nodeType":"VariableDeclaration","scope":77147,"src":"17197:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77120,"name":"uint256","nodeType":"ElementaryTypeName","src":"17197:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17196:16:129"},"returnParameters":{"id":77123,"nodeType":"ParameterList","parameters":[],"src":"17220:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77167,"nodeType":"FunctionDefinition","src":"17400:186:129","nodes":[],"body":{"id":77166,"nodeType":"Block","src":"17453:133:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":77153,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"17482:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77152,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"17463:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77154,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17463:29:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77155,"nodeType":"ExpressionStatement","src":"17463:29:129"},{"expression":{"id":77160,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":77156,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76146,"src":"17502:17:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77158,"indexExpression":{"id":77157,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"17520:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17502:28:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":77159,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"17533:5:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"17502:36:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77161,"nodeType":"ExpressionStatement","src":"17502:36:129"},{"eventCall":{"arguments":[{"id":77163,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77149,"src":"17569:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77162,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75892,"src":"17553:15:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77164,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17553:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77165,"nodeType":"EmitStatement","src":"17548:31:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"17409:15:129","parameters":{"id":77150,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77149,"mutability":"mutable","name":"_strategy","nameLocation":"17433:9:129","nodeType":"VariableDeclaration","scope":77167,"src":"17425:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77148,"name":"address","nodeType":"ElementaryTypeName","src":"17425:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17424:19:129"},"returnParameters":{"id":77151,"nodeType":"ParameterList","parameters":[],"src":"17453:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77180,"nodeType":"FunctionDefinition","src":"17592:120:129","nodes":[],"body":{"id":77179,"nodeType":"Block","src":"17642:70:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77172,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"17652:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17652:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77174,"nodeType":"ExpressionStatement","src":"17652:17:129"},{"expression":{"arguments":[{"id":77176,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77169,"src":"17695:9:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77175,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77167,"src":"17679:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77177,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17679:26:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77178,"nodeType":"ExpressionStatement","src":"17679:26:129"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"17601:14:129","parameters":{"id":77170,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77169,"mutability":"mutable","name":"_strategy","nameLocation":"17624:9:129","nodeType":"VariableDeclaration","scope":77180,"src":"17616:17:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77168,"name":"address","nodeType":"ElementaryTypeName","src":"17616:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17615:19:129"},"returnParameters":{"id":77171,"nodeType":"ParameterList","parameters":[],"src":"17642:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77205,"nodeType":"FunctionDefinition","src":"17718:240:129","nodes":[],"body":{"id":77204,"nodeType":"Block","src":"17772:186:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77185,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"17782:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77186,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17782:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77187,"nodeType":"ExpressionStatement","src":"17782:17:129"},{"expression":{"arguments":[{"id":77189,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77182,"src":"17828:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77188,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77119,"src":"17809:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77190,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17809:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77191,"nodeType":"ExpressionStatement","src":"17809:25:129"},{"expression":{"id":77194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77192,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"17844:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77193,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77182,"src":"17865:5:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"17844:26:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":77195,"nodeType":"ExpressionStatement","src":"17844:26:129"},{"eventCall":{"arguments":[{"arguments":[{"id":77199,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"17918:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}],"id":77198,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"17910:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77197,"name":"address","nodeType":"ElementaryTypeName","src":"17910:7:129","typeDescriptions":{}}},"id":77200,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17910:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77201,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"17932:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77196,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75851,"src":"17885:24:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":77202,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17885:66:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77203,"nodeType":"EmitStatement","src":"17880:71:129"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"17727:14:129","parameters":{"id":77183,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77182,"mutability":"mutable","name":"_safe","nameLocation":"17758:5:129","nodeType":"VariableDeclaration","scope":77205,"src":"17742:21:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77181,"name":"address","nodeType":"ElementaryTypeName","src":"17742:15:129","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"17741:23:129"},"returnParameters":{"id":77184,"nodeType":"ParameterList","parameters":[],"src":"17772:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77222,"nodeType":"FunctionDefinition","src":"17964:179:129","nodes":[],"body":{"id":77221,"nodeType":"Block","src":"18003:140:129","nodes":[],"statements":[{"expression":{"id":77212,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77208,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76135,"src":"18013:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77210,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18033:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77209,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"18027:5:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$80232_$","typeString":"type(contract ISafe)"}},"id":77211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18027:25:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"src":"18013:39:129","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":77213,"nodeType":"ExpressionStatement","src":"18013:39:129"},{"expression":{"id":77215,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"18062:25:129","subExpression":{"id":77214,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18069:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77216,"nodeType":"ExpressionStatement","src":"18062:25:129"},{"eventCall":{"arguments":[{"id":77218,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18117:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":77217,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75845,"src":"18102:14:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18102:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77220,"nodeType":"EmitStatement","src":"18097:39:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"17973:18:129","parameters":{"id":77206,"nodeType":"ParameterList","parameters":[],"src":"17991:2:129"},"returnParameters":{"id":77207,"nodeType":"ParameterList","parameters":[],"src":"18003:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77238,"nodeType":"FunctionDefinition","src":"18149:171:129","nodes":[],"body":{"id":77237,"nodeType":"Block","src":"18185:135:129","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77228,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":77225,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18199:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18203:6:129","memberName":"sender","nodeType":"MemberAccess","src":"18199:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77227,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76126,"src":"18213:18:129","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"18199:32:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77233,"nodeType":"IfStatement","src":"18195:89:129","trueBody":{"id":77232,"nodeType":"Block","src":"18233:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77229,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76050,"src":"18254:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18254:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77231,"nodeType":"RevertStatement","src":"18247:26:129"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77234,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77222,"src":"18293:18:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":77235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18293:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77236,"nodeType":"ExpressionStatement","src":"18293:20:129"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"18158:17:129","parameters":{"id":77223,"nodeType":"ParameterList","parameters":[],"src":"18175:2:129"},"returnParameters":{"id":77224,"nodeType":"ParameterList","parameters":[],"src":"18185:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77256,"nodeType":"FunctionDefinition","src":"18326:182:129","nodes":[],"body":{"id":77255,"nodeType":"Block","src":"18398:110:129","nodes":[],"statements":[{"assignments":[77247],"declarations":[{"constant":false,"id":77247,"mutability":"mutable","name":"newMember","nameLocation":"18422:9:129","nodeType":"VariableDeclaration","scope":77255,"src":"18408:23:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77246,"nodeType":"UserDefinedTypeName","pathNode":{"id":77245,"name":"Member","nameLocations":["18408:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"18408:6:129"},"referencedDeclaration":76075,"src":"18408:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77251,"initialValue":{"baseExpression":{"id":77248,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"18434:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77250,"indexExpression":{"id":77249,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77240,"src":"18454:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18434:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18408:54:129"},{"expression":{"expression":{"id":77252,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77247,"src":"18479:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77253,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18489:12:129","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76074,"src":"18479:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77244,"id":77254,"nodeType":"Return","src":"18472:29:129"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"18335:8:129","parameters":{"id":77241,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77240,"mutability":"mutable","name":"_member","nameLocation":"18352:7:129","nodeType":"VariableDeclaration","scope":77256,"src":"18344:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77239,"name":"address","nodeType":"ElementaryTypeName","src":"18344:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18343:17:129"},"returnParameters":{"id":77244,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77243,"mutability":"mutable","name":"_isMember","nameLocation":"18387:9:129","nodeType":"VariableDeclaration","scope":77256,"src":"18382:14:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77242,"name":"bool","nodeType":"ElementaryTypeName","src":"18382:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"18381:16:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77415,"nodeType":"FunctionDefinition","src":"18514:1907:129","nodes":[],"body":{"id":77414,"nodeType":"Block","src":"18568:1853:129","nodes":[],"statements":[{"assignments":[77262],"declarations":[{"constant":false,"id":77262,"mutability":"mutable","name":"_member","nameLocation":"18586:7:129","nodeType":"VariableDeclaration","scope":77414,"src":"18578:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77261,"name":"address","nodeType":"ElementaryTypeName","src":"18578:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77265,"initialValue":{"expression":{"id":77263,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"18596:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77264,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18600:6:129","memberName":"sender","nodeType":"MemberAccess","src":"18596:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18578:28:129"},{"assignments":[77268],"declarations":[{"constant":false,"id":77268,"mutability":"mutable","name":"newMember","nameLocation":"18631:9:129","nodeType":"VariableDeclaration","scope":77414,"src":"18616:24:129","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77267,"nodeType":"UserDefinedTypeName","pathNode":{"id":77266,"name":"Member","nameLocations":["18616:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"18616:6:129"},"referencedDeclaration":76075,"src":"18616:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77272,"initialValue":{"baseExpression":{"id":77269,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"18643:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77271,"indexExpression":{"id":77270,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"18663:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18643:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"18616:55:129"},{"assignments":[77275],"declarations":[{"constant":false,"id":77275,"mutability":"mutable","name":"gardensFactory","nameLocation":"18697:14:129","nodeType":"VariableDeclaration","scope":77414,"src":"18681:30:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"},"typeName":{"id":77274,"nodeType":"UserDefinedTypeName","pathNode":{"id":77273,"name":"RegistryFactory","nameLocations":["18681:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":79854,"src":"18681:15:129"},"referencedDeclaration":79854,"src":"18681:15:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77279,"initialValue":{"arguments":[{"id":77277,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"18730:15:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77276,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"18714:15:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$79854_$","typeString":"type(contract RegistryFactory)"}},"id":77278,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18714:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"18681:65:129"},{"assignments":[77281],"declarations":[{"constant":false,"id":77281,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"18764:18:129","nodeType":"VariableDeclaration","scope":77414,"src":"18756:26:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77280,"name":"uint256","nodeType":"ElementaryTypeName","src":"18756:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77291,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77284,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77282,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"18786:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77283,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"18808:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18786:34:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77285,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18785:36:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77288,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77286,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18825:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77287,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"18831:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18825:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77289,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18824:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18785:62:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18756:91:129"},{"assignments":[77293],"declarations":[{"constant":false,"id":77293,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"18865:16:129","nodeType":"VariableDeclaration","scope":77414,"src":"18857:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77292,"name":"uint256","nodeType":"ElementaryTypeName","src":"18857:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77309,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77308,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77302,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77294,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"18897:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77299,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"18957:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":77298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18949:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77297,"name":"address","nodeType":"ElementaryTypeName","src":"18949:7:129","typeDescriptions":{}}},"id":77300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18949:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77295,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77275,"src":"18919:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77296,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18934:14:129","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":79853,"src":"18919:29:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18919:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18897:66:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77303,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"18896:68:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77306,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77304,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18968:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77305,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"18974:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18968:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77307,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"18967:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"18896:94:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"18857:133:129"},{"condition":{"id":77313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"19004:18:129","subExpression":{"arguments":[{"id":77311,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"19014:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77310,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"19005:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19005:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77413,"nodeType":"IfStatement","src":"19000:1415:129","trueBody":{"id":77412,"nodeType":"Block","src":"19024:1391:129","statements":[{"expression":{"id":77318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77314,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77268,"src":"19038:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77316,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19048:12:129","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":76074,"src":"19038:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77317,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19063:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"19038:29:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77319,"nodeType":"ExpressionStatement","src":"19038:29:129"},{"expression":{"id":77324,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77320,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77268,"src":"19082:9:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member storage pointer"}},"id":77322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"19092:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"19082:22:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77323,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"19107:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19082:44:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77325,"nodeType":"ExpressionStatement","src":"19082:44:129"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":77329,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19224:13:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":77332,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"19247:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":77331,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19239:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77330,"name":"address","nodeType":"ElementaryTypeName","src":"19239:7:129","typeDescriptions":{}}},"id":77333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19239:20:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77326,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19212:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19220:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19212:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19212:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77335,"nodeType":"ExpressionStatement","src":"19212:48:129"},{"expression":{"arguments":[{"id":77339,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"19321:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":77342,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"19338:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":77341,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19330:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77340,"name":"address","nodeType":"ElementaryTypeName","src":"19330:7:129","typeDescriptions":{}}},"id":77343,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19330:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77348,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77346,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77344,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"19345:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77345,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19367:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19345:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77347,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"19388:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"19345:59:129","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":77336,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"19275:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77338,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19287:16:129","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"19275:28:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":77349,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19275:143:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77350,"nodeType":"ExpressionStatement","src":"19275:143:129"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":77354,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19781:20:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":77355,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19803:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77351,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19769:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19777:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"19769:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77356,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19769:53:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77357,"nodeType":"ExpressionStatement","src":"19769:53:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77360,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77358,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19840:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77359,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"19861:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"19840:22:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77376,"nodeType":"IfStatement","src":"19836:175:129","trueBody":{"id":77375,"nodeType":"Block","src":"19864:147:129","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":77364,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"19894:13:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":77365,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"19909:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77361,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"19882:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19890:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"19882:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77366,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19882:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77367,"nodeType":"ExpressionStatement","src":"19882:39:129"},{"expression":{"arguments":[{"id":77371,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76118,"src":"19964:11:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77372,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77281,"src":"19977:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77368,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"19939:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19951:12:129","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"19939:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77373,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19939:57:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77374,"nodeType":"ExpressionStatement","src":"19939:57:129"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":77380,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20036:18:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":77381,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"20056:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77377,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20024:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20032:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"20024:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":77382,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20024:49:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77383,"nodeType":"ExpressionStatement","src":"20024:49:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77386,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77384,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"20091:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":77385,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20110:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"20091:20:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77406,"nodeType":"IfStatement","src":"20087:252:129","trueBody":{"id":77405,"nodeType":"Block","src":"20113:226:129","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":77390,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20143:40:129","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77391,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77275,"src":"20185:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77392,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20200:21:129","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":79772,"src":"20185:36:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77393,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20185:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77387,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20131:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":77389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20139:3:129","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"20131:11:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":77394,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20131:93:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77395,"nodeType":"ExpressionStatement","src":"20131:93:129"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":77399,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77275,"src":"20267:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77400,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20282:21:129","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":79772,"src":"20267:36:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":77401,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20267:38:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77402,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77293,"src":"20307:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77396,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"20242:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77398,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20254:12:129","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"20242:24:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":77403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20242:82:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77404,"nodeType":"ExpressionStatement","src":"20242:82:129"}]}},{"eventCall":{"arguments":[{"id":77408,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77262,"src":"20375:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77409,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20384:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77407,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75857,"src":"20358:16:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77410,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20358:46:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77411,"nodeType":"EmitStatement","src":"20353:51:129"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":77259,"kind":"modifierInvocation","modifierName":{"id":77258,"name":"nonReentrant","nameLocations":["18555:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"18555:12:129"},"nodeType":"ModifierInvocation","src":"18555:12:129"}],"name":"stakeAndRegisterMember","nameLocation":"18523:22:129","parameters":{"id":77257,"nodeType":"ParameterList","parameters":[],"src":"18545:2:129"},"returnParameters":{"id":77260,"nodeType":"ParameterList","parameters":[],"src":"18568:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77464,"nodeType":"FunctionDefinition","src":"20427:467:129","nodes":[],"body":{"id":77463,"nodeType":"Block","src":"20491:403:129","nodes":[],"statements":[{"assignments":[77422],"declarations":[{"constant":false,"id":77422,"mutability":"mutable","name":"gardensFactory","nameLocation":"20517:14:129","nodeType":"VariableDeclaration","scope":77463,"src":"20501:30:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"},"typeName":{"id":77421,"nodeType":"UserDefinedTypeName","pathNode":{"id":77420,"name":"RegistryFactory","nameLocations":["20501:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":79854,"src":"20501:15:129"},"referencedDeclaration":79854,"src":"20501:15:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":77426,"initialValue":{"arguments":[{"id":77424,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76120,"src":"20550:15:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77423,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"20534:15:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$79854_$","typeString":"type(contract RegistryFactory)"}},"id":77425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20534:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20501:65:129"},{"assignments":[77428],"declarations":[{"constant":false,"id":77428,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20584:18:129","nodeType":"VariableDeclaration","scope":77463,"src":"20576:26:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77427,"name":"uint256","nodeType":"ElementaryTypeName","src":"20576:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77438,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77431,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77429,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20606:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77430,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"20628:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20606:34:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77432,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20605:36:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77435,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77433,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20645:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77434,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"20651:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20645:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77436,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20644:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20605:62:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20576:91:129"},{"assignments":[77440],"declarations":[{"constant":false,"id":77440,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20685:16:129","nodeType":"VariableDeclaration","scope":77463,"src":"20677:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77439,"name":"uint256","nodeType":"ElementaryTypeName","src":"20677:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77456,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77455,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77449,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77441,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20717:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":77446,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20777:4:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":77445,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20769:7:129","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77444,"name":"address","nodeType":"ElementaryTypeName","src":"20769:7:129","typeDescriptions":{}}},"id":77447,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20769:13:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":77442,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77422,"src":"20739:14:129","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":77443,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20754:14:129","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":79853,"src":"20739:29:129","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":77448,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20739:44:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20717:66:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77450,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20716:68:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77453,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":77451,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20788:3:129","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77452,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76176,"src":"20794:15:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20788:21:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":77454,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20787:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20716:94:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20677:133:129"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77461,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77459,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77457,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20828:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77458,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77428,"src":"20850:18:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20828:40:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":77460,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77440,"src":"20871:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20828:59:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77419,"id":77462,"nodeType":"Return","src":"20821:66:129"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"20436:22:129","parameters":{"id":77416,"nodeType":"ParameterList","parameters":[],"src":"20458:2:129"},"returnParameters":{"id":77419,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77418,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77464,"src":"20482:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77417,"name":"uint256","nodeType":"ElementaryTypeName","src":"20482:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20481:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77472,"nodeType":"FunctionDefinition","src":"20900:107:129","nodes":[],"body":{"id":77471,"nodeType":"Block","src":"20964:43:129","nodes":[],"statements":[{"expression":{"id":77469,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"20981:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77468,"id":77470,"nodeType":"Return","src":"20974:26:129"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"20909:20:129","parameters":{"id":77465,"nodeType":"ParameterList","parameters":[],"src":"20929:2:129"},"returnParameters":{"id":77468,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77467,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77472,"src":"20955:7:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77466,"name":"uint256","nodeType":"ElementaryTypeName","src":"20955:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"20954:9:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77489,"nodeType":"FunctionDefinition","src":"21013:182:129","nodes":[],"body":{"id":77488,"nodeType":"Block","src":"21072:123:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77477,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"21082:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77478,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21082:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77479,"nodeType":"ExpressionStatement","src":"21082:17:129"},{"expression":{"id":77482,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77480,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76112,"src":"21109:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77481,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77474,"src":"21131:10:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21109:32:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77483,"nodeType":"ExpressionStatement","src":"21109:32:129"},{"eventCall":{"arguments":[{"id":77485,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77474,"src":"21177:10:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77484,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75910,"src":"21156:20:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77486,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21156:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77487,"nodeType":"EmitStatement","src":"21151:37:129"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"21022:20:129","parameters":{"id":77475,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77474,"mutability":"mutable","name":"_newAmount","nameLocation":"21051:10:129","nodeType":"VariableDeclaration","scope":77489,"src":"21043:18:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77473,"name":"uint256","nodeType":"ElementaryTypeName","src":"21043:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21042:20:129"},"returnParameters":{"id":77476,"nodeType":"ParameterList","parameters":[],"src":"21072:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":77514,"nodeType":"FunctionDefinition","src":"21201:280:129","nodes":[],"body":{"id":77513,"nodeType":"Block","src":"21259:222:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77494,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"21269:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77495,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21269:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77496,"nodeType":"ExpressionStatement","src":"21269:17:129"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77499,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77497,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21300:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":77498,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76181,"src":"21319:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21300:26:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77504,"nodeType":"IfStatement","src":"21296:86:129","trueBody":{"id":77503,"nodeType":"Block","src":"21328:54:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77500,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76056,"src":"21349:20:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77501,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21349:22:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77502,"nodeType":"RevertStatement","src":"21342:29:129"}]}},{"expression":{"id":77507,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77505,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76114,"src":"21391:12:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77506,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21406:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21391:31:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77508,"nodeType":"ExpressionStatement","src":"21391:31:129"},{"eventCall":{"arguments":[{"id":77510,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77491,"src":"21457:16:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77509,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75875,"src":"21437:19:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":77511,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21437:37:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77512,"nodeType":"EmitStatement","src":"21432:42:129"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"21210:15:129","parameters":{"id":77492,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77491,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"21234:16:129","nodeType":"VariableDeclaration","scope":77514,"src":"21226:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77490,"name":"uint256","nodeType":"ElementaryTypeName","src":"21226:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"21225:26:129"},"returnParameters":{"id":77493,"nodeType":"ParameterList","parameters":[],"src":"21259:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77527,"nodeType":"FunctionDefinition","src":"21523:132:129","nodes":[],"body":{"id":77526,"nodeType":"Block","src":"21592:63:129","nodes":[],"statements":[{"expression":{"arguments":[{"id":77522,"name":"COUNCIL_MEMBER_CHANGE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75837,"src":"21617:21:129","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":77523,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77516,"src":"21640:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77521,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55072,"src":"21609:7:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21609:39:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77520,"id":77525,"nodeType":"Return","src":"21602:46:129"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"21532:15:129","parameters":{"id":77517,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77516,"mutability":"mutable","name":"_member","nameLocation":"21556:7:129","nodeType":"VariableDeclaration","scope":77527,"src":"21548:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77515,"name":"address","nodeType":"ElementaryTypeName","src":"21548:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"21547:17:129"},"returnParameters":{"id":77520,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77519,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77527,"src":"21586:4:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77518,"name":"bool","nodeType":"ElementaryTypeName","src":"21586:4:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"21585:6:129"},"scope":77675,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":77577,"nodeType":"FunctionDefinition","src":"21661:453:129","nodes":[],"body":{"id":77576,"nodeType":"Block","src":"21709:405:129","nodes":[],"statements":[{"assignments":[77533],"declarations":[{"constant":false,"id":77533,"mutability":"mutable","name":"_member","nameLocation":"21727:7:129","nodeType":"VariableDeclaration","scope":77576,"src":"21719:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77532,"name":"address","nodeType":"ElementaryTypeName","src":"21719:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":77536,"initialValue":{"expression":{"id":77534,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"21737:3:129","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77535,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21741:6:129","memberName":"sender","nodeType":"MemberAccess","src":"21737:10:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"21719:28:129"},{"expression":{"arguments":[{"id":77538,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21783:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77537,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75979,"src":"21757:25:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":77539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21757:34:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77540,"nodeType":"ExpressionStatement","src":"21757:34:129"},{"expression":{"arguments":[{"id":77542,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21825:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77541,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77614,"src":"21801:23:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77543,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21801:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77544,"nodeType":"ExpressionStatement","src":"21801:32:129"},{"assignments":[77547],"declarations":[{"constant":false,"id":77547,"mutability":"mutable","name":"member","nameLocation":"21857:6:129","nodeType":"VariableDeclaration","scope":77576,"src":"21843:20:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77546,"nodeType":"UserDefinedTypeName","pathNode":{"id":77545,"name":"Member","nameLocations":["21843:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"21843:6:129"},"referencedDeclaration":76075,"src":"21843:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77551,"initialValue":{"baseExpression":{"id":77548,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"21866:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77550,"indexExpression":{"id":77549,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21886:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"21866:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"21843:51:129"},{"expression":{"id":77555,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21904:35:129","subExpression":{"baseExpression":{"id":77552,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"21911:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77554,"indexExpression":{"id":77553,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21931:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21911:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77556,"nodeType":"ExpressionStatement","src":"21904:35:129"},{"expression":{"id":77560,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"21949:34:129","subExpression":{"baseExpression":{"id":77557,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"21956:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77559,"indexExpression":{"id":77558,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"21975:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"21956:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77561,"nodeType":"ExpressionStatement","src":"21949:34:129"},{"expression":{"arguments":[{"id":77565,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"22015:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77566,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77547,"src":"22024:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77567,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22031:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"22024:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77562,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"21994:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77564,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22006:8:129","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"21994:20:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21994:50:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77569,"nodeType":"ExpressionStatement","src":"21994:50:129"},{"eventCall":{"arguments":[{"id":77571,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77533,"src":"22078:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77572,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77547,"src":"22087:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77573,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"22094:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"22087:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77570,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75863,"src":"22059:18:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77574,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22059:48:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77575,"nodeType":"EmitStatement","src":"22054:53:129"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":77530,"kind":"modifierInvocation","modifierName":{"id":77529,"name":"nonReentrant","nameLocations":["21696:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"21696:12:129"},"nodeType":"ModifierInvocation","src":"21696:12:129"}],"name":"unregisterMember","nameLocation":"21670:16:129","parameters":{"id":77528,"nodeType":"ParameterList","parameters":[],"src":"21686:2:129"},"returnParameters":{"id":77531,"nodeType":"ParameterList","parameters":[],"src":"21709:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77614,"nodeType":"FunctionDefinition","src":"22120:466:129","nodes":[],"body":{"id":77613,"nodeType":"Block","src":"22179:407:129","nodes":[],"statements":[{"assignments":[77586],"declarations":[{"constant":false,"id":77586,"mutability":"mutable","name":"memberStrategies","nameLocation":"22206:16:129","nodeType":"VariableDeclaration","scope":77613,"src":"22189:33:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":77584,"name":"address","nodeType":"ElementaryTypeName","src":"22189:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77585,"nodeType":"ArrayTypeName","src":"22189:9:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":77590,"initialValue":{"baseExpression":{"id":77587,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76162,"src":"22225:18:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":77589,"indexExpression":{"id":77588,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77579,"src":"22244:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22225:27:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22189:63:129"},{"body":{"id":77611,"nodeType":"Block","src":"22382:198:129","statements":[{"expression":{"arguments":[{"id":77608,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77579,"src":"22561:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":77603,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77586,"src":"22523:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77605,"indexExpression":{"id":77604,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"22540:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22523:19:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77602,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"22508:14:129","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":77606,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22508:35:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":77607,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22544:16:129","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72768,"src":"22508:52:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":77609,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22508:61:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77610,"nodeType":"ExpressionStatement","src":"22508:61:129"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77598,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77595,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"22348:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":77596,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77586,"src":"22352:16:129","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":77597,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22369:6:129","memberName":"length","nodeType":"MemberAccess","src":"22352:23:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22348:27:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77612,"initializationExpression":{"assignments":[77592],"declarations":[{"constant":false,"id":77592,"mutability":"mutable","name":"i","nameLocation":"22341:1:129","nodeType":"VariableDeclaration","scope":77612,"src":"22333:9:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77591,"name":"uint256","nodeType":"ElementaryTypeName","src":"22333:7:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":77594,"initialValue":{"hexValue":"30","id":77593,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22345:1:129","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"22333:13:129"},"loopExpression":{"expression":{"id":77600,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"22377:3:129","subExpression":{"id":77599,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77592,"src":"22377:1:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77601,"nodeType":"ExpressionStatement","src":"22377:3:129"},"nodeType":"ForStatement","src":"22328:252:129"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"22129:23:129","parameters":{"id":77580,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77579,"mutability":"mutable","name":"_member","nameLocation":"22161:7:129","nodeType":"VariableDeclaration","scope":77614,"src":"22153:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77578,"name":"address","nodeType":"ElementaryTypeName","src":"22153:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22152:17:129"},"returnParameters":{"id":77581,"nodeType":"ParameterList","parameters":[],"src":"22179:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":77674,"nodeType":"FunctionDefinition","src":"22592:571:129","nodes":[],"body":{"id":77673,"nodeType":"Block","src":"22675:488:129","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":77623,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75950,"src":"22685:15:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":77624,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22685:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77625,"nodeType":"ExpressionStatement","src":"22685:17:129"},{"condition":{"id":77627,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22716:14:129","subExpression":{"id":77626,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76110,"src":"22717:13:129","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77632,"nodeType":"IfStatement","src":"22712:68:129","trueBody":{"id":77631,"nodeType":"Block","src":"22732:48:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77628,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76058,"src":"22753:14:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77629,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22753:16:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77630,"nodeType":"RevertStatement","src":"22746:23:129"}]}},{"condition":{"id":77636,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"22793:18:129","subExpression":{"arguments":[{"id":77634,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"22803:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77633,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77256,"src":"22794:8:129","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77635,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22794:17:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77641,"nodeType":"IfStatement","src":"22789:75:129","trueBody":{"id":77640,"nodeType":"Block","src":"22813:51:129","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77637,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76036,"src":"22834:17:129","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77638,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22834:19:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77639,"nodeType":"RevertStatement","src":"22827:26:129"}]}},{"assignments":[77644],"declarations":[{"constant":false,"id":77644,"mutability":"mutable","name":"member","nameLocation":"22887:6:129","nodeType":"VariableDeclaration","scope":77673,"src":"22873:20:129","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member"},"typeName":{"id":77643,"nodeType":"UserDefinedTypeName","pathNode":{"id":77642,"name":"Member","nameLocations":["22873:6:129"],"nodeType":"IdentifierPath","referencedDeclaration":76075,"src":"22873:6:129"},"referencedDeclaration":76075,"src":"22873:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage_ptr","typeString":"struct RegistryCommunity.Member"}},"visibility":"internal"}],"id":77648,"initialValue":{"baseExpression":{"id":77645,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"22896:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77647,"indexExpression":{"id":77646,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"22916:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"22896:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"22873:51:129"},{"expression":{"arguments":[{"id":77650,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"22958:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77649,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77614,"src":"22934:23:129","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77651,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22934:32:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77652,"nodeType":"ExpressionStatement","src":"22934:32:129"},{"expression":{"id":77656,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"22976:35:129","subExpression":{"baseExpression":{"id":77653,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76157,"src":"22983:19:129","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$76075_storage_$","typeString":"mapping(address => struct RegistryCommunity.Member storage ref)"}},"id":77655,"indexExpression":{"id":77654,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"23003:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"22983:28:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_storage","typeString":"struct RegistryCommunity.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77657,"nodeType":"ExpressionStatement","src":"22976:35:129"},{"expression":{"arguments":[{"id":77661,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77618,"src":"23043:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77662,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77644,"src":"23061:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77663,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23068:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"23061:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":77658,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":76132,"src":"23022:11:129","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":77660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23034:8:129","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"23022:20:129","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":77664,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23022:59:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77665,"nodeType":"ExpressionStatement","src":"23022:59:129"},{"eventCall":{"arguments":[{"id":77667,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77616,"src":"23109:7:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77668,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77618,"src":"23118:16:129","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":77669,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77644,"src":"23136:6:129","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$76075_memory_ptr","typeString":"struct RegistryCommunity.Member memory"}},"id":77670,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23143:12:129","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":76072,"src":"23136:19:129","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77666,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75871,"src":"23096:12:129","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":77671,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23096:60:129","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77672,"nodeType":"EmitStatement","src":"23091:65:129"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":77621,"kind":"modifierInvocation","modifierName":{"id":77620,"name":"nonReentrant","nameLocations":["22662:12:129"],"nodeType":"IdentifierPath","referencedDeclaration":56074,"src":"22662:12:129"},"nodeType":"ModifierInvocation","src":"22662:12:129"}],"name":"kickMember","nameLocation":"22601:10:129","parameters":{"id":77619,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77616,"mutability":"mutable","name":"_member","nameLocation":"22620:7:129","nodeType":"VariableDeclaration","scope":77674,"src":"22612:15:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77615,"name":"address","nodeType":"ElementaryTypeName","src":"22612:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77618,"mutability":"mutable","name":"_transferAddress","nameLocation":"22637:16:129","nodeType":"VariableDeclaration","scope":77674,"src":"22629:24:129","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77617,"name":"address","nodeType":"ElementaryTypeName","src":"22629:7:129","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"22611:43:129"},"returnParameters":{"id":77622,"nodeType":"ParameterList","parameters":[],"src":"22675:0:129"},"scope":77675,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":75816,"name":"ReentrancyGuard","nameLocations":["1671:15:129"],"nodeType":"IdentifierPath","referencedDeclaration":56109,"src":"1671:15:129"},"id":75817,"nodeType":"InheritanceSpecifier","src":"1671:15:129"},{"baseName":{"id":75818,"name":"AccessControl","nameLocations":["1688:13:129"],"nodeType":"IdentifierPath","referencedDeclaration":55308,"src":"1688:13:129"},"id":75819,"nodeType":"InheritanceSpecifier","src":"1688:13:129"}],"canonicalName":"RegistryCommunity","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77675,55308,58097,58303,55381,57734,56109],"name":"RegistryCommunity","nameLocation":"1650:17:129","scope":77676,"usedErrors":[76030,76032,76034,76036,76038,76040,76042,76044,76046,76048,76050,76052,76054,76056,76058,76060,76062,76068]}],"license":"AGPL-3.0-only"},"id":129} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryCommunityV0_0.sol/RegistryCommunityV0_0.json b/pkg/contracts/out/RegistryCommunityV0_0.sol/RegistryCommunityV0_0.json new file mode 100644 index 000000000..4d4f84c43 --- /dev/null +++ b/pkg/contracts/out/RegistryCommunityV0_0.sol/RegistryCommunityV0_0.json @@ -0,0 +1 @@ +{"abi":[{"type":"function","name":"COUNCIL_MEMBER","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_FEE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"NATIVE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"PRECISION_SCALE","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"acceptCouncilSafe","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"activateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategy","inputs":[{"name":"_newStrategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"addressToMemberInfo","inputs":[{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"member","type":"address","internalType":"address"},{"name":"stakedAmount","type":"uint256","internalType":"uint256"},{"name":"isRegistered","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract FAllo"}],"stateMutability":"view"},{"type":"function","name":"cloneNonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityFee","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"communityName","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"councilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract ISafe"}],"stateMutability":"view"},{"type":"function","name":"covenantIpfsHash","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"createPool","inputs":[{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"createPool","inputs":[{"name":"_strategy","type":"address","internalType":"address"},{"name":"_token","type":"address","internalType":"address"},{"name":"_params","type":"tuple","internalType":"struct StrategyStruct.InitializeParams","components":[{"name":"registryCommunity","type":"address","internalType":"address"},{"name":"decay","type":"uint256","internalType":"uint256"},{"name":"maxRatio","type":"uint256","internalType":"uint256"},{"name":"weight","type":"uint256","internalType":"uint256"},{"name":"minThresholdPoints","type":"uint256","internalType":"uint256"},{"name":"proposalType","type":"uint8","internalType":"enum StrategyStruct.ProposalType"},{"name":"pointSystem","type":"uint8","internalType":"enum StrategyStruct.PointSystem"},{"name":"pointConfig","type":"tuple","internalType":"struct StrategyStruct.PointSystemConfig","components":[{"name":"maxAmount","type":"uint256","internalType":"uint256"}]},{"name":"sybilConfig","type":"tuple","internalType":"struct StrategyStruct.SybilConfig","components":[{"name":"sybilOracleScorer","type":"address","internalType":"address"},{"name":"threshold","type":"uint256","internalType":"uint256"}]}]},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"outputs":[{"name":"poolId","type":"uint256","internalType":"uint256"},{"name":"strategy","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deactivateMemberInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decreasePower","inputs":[{"name":"_amountUnstaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"enabledStrategies","inputs":[{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isEnabled","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"feeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"gardenToken","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IERC20"}],"stateMutability":"view"},{"type":"function","name":"getBasisStakedAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberPowerInStrategy","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getMemberStakedAmount","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getStakeAmountWithFees","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"increasePower","inputs":[{"name":"_amountStaked","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initialize","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunityV0_0.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isCouncilMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isKickEnabled","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"isMember","inputs":[{"name":"_member","type":"address","internalType":"address"}],"outputs":[{"name":"_isMember","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"kickMember","inputs":[{"name":"_member","type":"address","internalType":"address"},{"name":"_transferAddress","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"memberActivatedInStrategies","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"strategy","type":"address","internalType":"address"}],"outputs":[{"name":"isActivated","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"memberPowerInStrategy","inputs":[{"name":"strategy","type":"address","internalType":"address"},{"name":"member","type":"address","internalType":"address"}],"outputs":[{"name":"power","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"pendingCouncilSafe","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"view"},{"type":"function","name":"profileId","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"registerStakeAmount","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IRegistry"}],"stateMutability":"view"},{"type":"function","name":"registryFactory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"removeStrategy","inputs":[{"name":"_strategy","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"removeStrategyByPoolId","inputs":[{"name":"poolId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setBasisStakedAmount","inputs":[{"name":"_newAmount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityFee","inputs":[{"name":"_newCommunityFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCouncilSafe","inputs":[{"name":"_safe","type":"address","internalType":"address payable"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stakeAndRegisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"strategiesByMember","inputs":[{"name":"member","type":"address","internalType":"address"},{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"strategiesAddresses","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"strategyTemplate","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"unregisterMember","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"AlloSet","inputs":[{"name":"_allo","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BasisStakedAmountSet","inputs":[{"name":"_newAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityFeeUpdated","inputs":[{"name":"_newFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"CouncilSafeChangeStarted","inputs":[{"name":"_safeOwner","type":"address","indexed":false,"internalType":"address"},{"name":"_newSafeOwner","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CouncilSafeSet","inputs":[{"name":"_safe","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"MemberActivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_pointsToIncrease","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberDeactivatedStrategy","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"MemberKicked","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_transferAddress","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerDecreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_unstakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberPowerIncreased","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_stakedAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberRegistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountStaked","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MemberUnregistered","inputs":[{"name":"_member","type":"address","indexed":false,"internalType":"address"},{"name":"_amountReturned","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"PoolCreated","inputs":[{"name":"_poolId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_strategy","type":"address","indexed":false,"internalType":"address"},{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_token","type":"address","indexed":false,"internalType":"address"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RegistryInitialized","inputs":[{"name":"_profileId","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"_communityName","type":"string","indexed":false,"internalType":"string"},{"name":"_metadata","type":"tuple","indexed":false,"internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyAdded","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"StrategyRemoved","inputs":[{"name":"_strategy","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CantDecreaseMoreThanPower","inputs":[{"name":"_decreaseAmount","type":"uint256","internalType":"uint256"},{"name":"_currentPower","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"DecreaseUnderMinimum","inputs":[]},{"type":"error","name":"KickNotEnabled","inputs":[]},{"type":"error","name":"NewFeeGreaterThanMax","inputs":[]},{"type":"error","name":"PointsDeactivated","inputs":[]},{"type":"error","name":"RegistryCannotBeZero","inputs":[]},{"type":"error","name":"SenderNotNewOwner","inputs":[]},{"type":"error","name":"SenderNotStrategy","inputs":[]},{"type":"error","name":"StrategyDisabled","inputs":[]},{"type":"error","name":"StrategyExists","inputs":[]},{"type":"error","name":"UserAlreadyActivated","inputs":[]},{"type":"error","name":"UserAlreadyDeactivated","inputs":[]},{"type":"error","name":"UserAlreadyRegistered","inputs":[]},{"type":"error","name":"UserNotGardenOwner","inputs":[]},{"type":"error","name":"UserNotInCouncil","inputs":[]},{"type":"error","name":"UserNotInRegistry","inputs":[]},{"type":"error","name":"ValueCannotBeZero","inputs":[]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b506080516157de6200004d6000396000818161181101528181611896015281816119f801528181611a7d0152611b6301526157de6000f3fe6080604052600436106103a25760003560e01c80636c53db9a116101e7578063a217fddf1161010d578063c8a593e9116100a0578063db61d65c1161006f578063db61d65c14610bdf578063ebd7dc5214610c00578063f2fde38b14610c20578063f86c5f8914610c4057600080fd5b8063c8a593e914610b68578063d547741f14610b88578063d6d8428d14610ba8578063d7050f0714610bc957600080fd5b8063b64e39af116100dc578063b64e39af14610b07578063b99b437014610b29578063bc063e1a14610b3e578063c6d572ae14610b5357600080fd5b8063a217fddf14610a58578063a230c52414610a6d578063b3f0067414610ad2578063b5058c5014610af257600080fd5b806382d6a1e71161018557806391d148541161015457806391d148541461098d57806396f0adec146109d35780639a72a86f146109f3578063a0cf0aea14610a3057600080fd5b806382d6a1e7146108c857806388cfe684146108e85780638961be6b146109595780638da5cb5b1461096f57600080fd5b8063733a2d1f116101c1578063733a2d1f146108165780637817ee4f1461084a57806378a0b8a9146108915780637b103999146108a757600080fd5b80636c53db9a146107c0578063715018a6146107e157806373265c37146107f657600080fd5b806333960459116102cc5780634f1ef2861161026a5780635ecf71c5116102395780635ecf71c51461072657806365e3864c146107465780636871eb4d1461077f57806368decabb1461079f57600080fd5b80634f1ef286146106bd57806352d1902d146106d0578063559de05d146106e55780635c94e4d21461070557600080fd5b80633659cfe6116102a65780633659cfe614610610578063397e2543146106305780633a871fe114610650578063477a5cc01461068157600080fd5b806333960459146105c45780633517aa7d146105db57806336568abe146105f057600080fd5b8063223e5479116103445780632b38c69c116103135780632b38c69c146105125780632c611c4a1461054a5780632f2ff15d1461058457806331f61bca146105a457600080fd5b8063223e54791461048d57806322bcf999146104ad578063248a9ca3146104cd57806328c309e9146104fd57600080fd5b80630d12bbdb116103805780630d12bbdb146104115780630d4a8b4914610433578063175188e8146104535780631f787d281461047357600080fd5b806301ffc9a7146103a75780630331383c146103dc57806308386eba146103fb575b600080fd5b3480156103b357600080fd5b506103c76103c2366004614830565b610c61565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b5060fc545b6040519081526020016103d3565b34801561040757600080fd5b506103ed60fe5481565b34801561041d57600080fd5b5061043161042c36600461485a565b610cb1565b005b34801561043f57600080fd5b5061043161044e366004614898565b610d3b565b34801561045f57600080fd5b5061043161046e3660046148d1565b6110a7565b34801561047f57600080fd5b5060fb546103c79060ff1681565b34801561049957600080fd5b506104316104a83660046148d1565b6110bb565b3480156104b957600080fd5b506104316104c8366004614898565b6110cc565b3480156104d957600080fd5b506103ed6104e836600461485a565b600090815260c9602052604090206001015490565b34801561050957600080fd5b506103ed6111df565b34801561051e57600080fd5b5061053261052d3660046148ee565b6112ca565b6040516001600160a01b0390911681526020016103d3565b34801561055657600080fd5b506103ed6105653660046148d1565b6001600160a01b0316600090815261010c602052604090206001015490565b34801561059057600080fd5b5061043161059f36600461491a565b611303565b3480156105b057600080fd5b506104316105bf36600461485a565b61132d565b3480156105d057600080fd5b506103ed6101025481565b3480156105e757600080fd5b5061043161136a565b3480156105fc57600080fd5b5061043161060b36600461491a565b611776565b34801561061c57600080fd5b5061043161062b3660046148d1565b611807565b34801561063c57600080fd5b5061043161064b3660046148d1565b61197f565b34801561065c57600080fd5b506103c761066b3660046148d1565b61010a6020526000908152604090205460ff1681565b34801561068d57600080fd5b506103c761069c366004614898565b61010e60209081526000928352604080842090915290825290205460ff1681565b6104316106cb366004614a80565b6119ee565b3480156106dc57600080fd5b506103ed611b56565b3480156106f157600080fd5b5061043161070036600461485a565b611c1b565b34801561071157600080fd5b5061010154610532906001600160a01b031681565b34801561073257600080fd5b5061043161074136600461485a565b611efa565b34801561075257600080fd5b506103ed610761366004614898565b61010b60209081526000928352604080842090915290825290205481565b34801561078b57600080fd5b5061043161079a366004614898565b6122ba565b3480156107ab57600080fd5b5061010354610532906001600160a01b031681565b3480156107cc57600080fd5b5061010654610532906001600160a01b031681565b3480156107ed57600080fd5b506104316124c9565b34801561080257600080fd5b5061043161081136600461485a565b6124db565b34801561082257600080fd5b506103ed7f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa81565b34801561085657600080fd5b506103ed610865366004614898565b6001600160a01b03918216600090815261010b6020908152604080832093909416825291909152205490565b34801561089d57600080fd5b506103ed60fc5481565b3480156108b357600080fd5b5061010454610532906001600160a01b031681565b3480156108d457600080fd5b506104316108e336600461485a565b61256e565b3480156108f457600080fd5b506109326109033660046148d1565b61010c602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b03909416845260208401929092521515908201526060016103d3565b34801561096557600080fd5b506103ed60fd5481565b34801561097b57600080fd5b506033546001600160a01b0316610532565b34801561099957600080fd5b506103c76109a836600461491a565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156109df57600080fd5b506104316109ee366004614b6f565b612620565b3480156109ff57600080fd5b50610a13610a0e366004614e06565b612c69565b604080519283526001600160a01b039091166020830152016103d3565b348015610a3c57600080fd5b5061053273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610a6457600080fd5b506103ed600081565b348015610a7957600080fd5b506103c7610a883660046148d1565b6001600160a01b03908116600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b348015610ade57600080fd5b5060ff54610532906001600160a01b031681565b348015610afe57600080fd5b50610431612cb5565b348015610b1357600080fd5b50610b1c612d02565b6040516103d39190614eb9565b348015610b3557600080fd5b50610431612d91565b348015610b4a57600080fd5b506103ed612ef7565b348015610b5f57600080fd5b50610b1c612f07565b348015610b7457600080fd5b50610a13610b83366004614ecc565b612f15565b348015610b9457600080fd5b50610431610ba336600461491a565b613096565b348015610bb457600080fd5b5061010754610532906001600160a01b031681565b348015610bd557600080fd5b506103ed61271081565b348015610beb57600080fd5b5061010554610532906001600160a01b031681565b348015610c0c57600080fd5b506103c7610c1b3660046148d1565b6130bb565b348015610c2c57600080fd5b50610431610c3b3660046148d1565b6130fb565b348015610c4c57600080fd5b5061010054610532906001600160a01b031681565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610cab57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb9613188565b610cc6612710600a614f58565b811115610cff576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fd8190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b610d44826131f0565b610d4d81613254565b610d56816132a7565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff1615610db7576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff1615159183019190915260fc546003846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190614f85565b6003811115610e7957610e79614f6f565b03610ef85760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190614fa2565b9050610fea565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190614f85565b6003811115610f6f57610f6f614f6f565b14610fea5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190614fa2565b90505b6001600160a01b03858116600081815261010b6020908152604080832094891680845294825280832086905583835261010e82528083208584528252808320805460ff1916600190811790915584845261010d83528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b6110af613188565b6110b8816132e7565b50565b6110c3613188565b6110b881613342565b6110d5826131f0565b6110de816132a7565b6110e833826133eb565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff16611148576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600081815261010e60209081526040808320948616808452948252808320805460ff1916905592825261010b8152828220938252929092528120556111988282613436565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b91015b60405180910390a15050565b610100546000906001600160a01b0316816111fd6127106064614f58565b60fd5460fc5461120d9190614f58565b6112179190614fbb565b905060006112286127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190614fa2565b60fc5461129d9190614f58565b6112a79190614fbb565b9050808260fc546112b89190614fdd565b6112c29190614fdd565b935050505090565b61010d60205281600052604060002081815481106112e757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600082815260c9602052604090206001015461131e81613559565b6113288383613563565b505050565b611335613188565b60fc8190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610d30565b611372613605565b33600081815261010c602052604081206101005490916001600160a01b03909116906113a16127106064614f58565b60fd5460fc546113b19190614f58565b6113bb9190614fbb565b905060006113cc6127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190614fa2565b60fc546114419190614f58565b61144b9190614fbb565b6001600160a01b03808716600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506117655760028401805460ff1916600190811790915560fc549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152610105546114fd91906001600160a01b031661365e565b6115308530838560fc546115119190614fdd565b61151b9190614fdd565b610105546001600160a01b03169291906136bc565b61156f6040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083613740565b81156115dd5760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260ff546115bf91906001600160a01b031661365e565b60ff54610105546115dd916001600160a01b0391821691168461379e565b61161c6040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082613740565b801561171e576116a560405180606001604052806026815260200161575c60269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190614ff0565b61365e565b61171e836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190614ff0565b610105546001600160a01b0316908361379e565b60fc54604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506117746001606555565b565b6001600160a01b03811633146117f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61180382826137d5565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118945760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461195a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b61196381613858565b604080516000808252602082019092526110b891839190613860565b611987613188565b611990816132a7565b61010380546001600160a01b0319166001600160a01b03838116918217909255610106546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610d30565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ad67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614611b415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b611b4a82613858565b61180382826001613860565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016117f0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611c23613605565b611c2b613a00565b33600081815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015611c8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c6f575b50505050509050600080600090505b8251811015611e5f57828181518110611cb757611cb761500d565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d369190614fa2565b91508115611e4d576001600160a01b038416600090815261010b602052604081208451849290869085908110611d6e57611d6e61500d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611da59190614fdd565b92505081905550611e4d6040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525061010b6000876001600160a01b03166001600160a01b031681526020019081526020016000206000868581518110611e1f57611e1f61500d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613740565b80611e5781615023565b915050611c9c565b5061010554611e79906001600160a01b03168430876136bc565b6001600160a01b038316600090815261010c602052604081206001018054869290611ea5908490614fdd565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a15050506110b86001606555565b611f02613605565b611f0a613a00565b33600081815261010d6020908152604080832060fc5461010c9093529083206001015490929190611f3c90869061503c565b1015611f74576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010554611f8c906001600160a01b0316848661379e565b60005b8254811015612249576000838281548110611fac57611fac61500d565b6000918252602090912001546001600160a01b03169050611fd48163f1801e6160e01b613a60565b1561217d576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614fa2565b9250600061010b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815481106120a3576120a361500d565b60009182526020808320909101546001600160a01b0316835282019290925260400190205490508084111561210e576040517f8a11f31800000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016117f0565b6001600160a01b038616600090815261010b60205260408120865486929088908790811061213e5761213e61500d565b60009182526020808320909101546001600160a01b031683528201929092526040018120805490919061217290849061503c565b909155505050612236565b8354849061218d9060019061503c565b8154811061219d5761219d61500d565b9060005260206000200160009054906101000a90046001600160a01b03168483815481106121cd576121cd61500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508380548061220b5761220b61504f565b600082815260209020810160001990810180546001600160a01b0319169055019055612236816132e7565b508061224181615023565b915050611f8f565b506001600160a01b038316600090815261010c60205260408120600101805486929061227690849061503c565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff89101611ee5565b6122c2613605565b6122ca613188565b60fb5460ff16612306576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905261236a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515908201526123b983613a83565b6001600160a01b03838116600090815261010c6020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff191690556101055490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615065565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506118036001606555565b6124d1613ba6565b6117746000613c00565b6124e3613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa15801561252e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125569190810190615082565b602001519050612565816132a7565b611803816132e7565b612576613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa1580156125c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125e99190810190615082565b6020015190506125f8816132a7565b6126126001600160a01b03821663f1801e6160e01b613a60565b156118035761180381613342565b600054610100900460ff16158080156126405750600054600160ff909116105b8061265a5750303b15801561265a575060005460ff166001145b6126cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016117f0565b6000805460ff1916600117905580156126ef576000805461ff0019166101001790555b6126f7613c52565b6126ff613cc5565b612707613d38565b6127327f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa6000613da3565b61273f82602001516132a7565b61274d8261010001516132a7565b8151612758906132a7565b6127658260a001516132a7565b6127738261018001516132a7565b60608201511561278a5761278a8260c001516132a7565b815161010780546001600160a01b039283166001600160a01b0319918216179091556020840151610105805491909316911617905560408201516000036127fd576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604082015160fc55606082015160fd5561014082015160fb805460ff191691151591909117905561012082015161010890612838908261522c565b506101608201516101099061284d908261522c565b5060a082015161010080546001600160a01b03199081166001600160a01b0393841617825560c085015160ff805483169185169190911790559084015161010680548316828516179055610180850151610101805490931693169290921790556128d8907f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa90613563565b61010760009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129509190614ff0565b61010480546001600160a01b0319166001600160a01b0392831617905561010654604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906152ec565b9050600081516002612a069190614fdd565b67ffffffffffffffff811115612a1e57612a1e61493f565b604051908082528060200260200182016040528015612a47578160200160208202803683370190505b50905060005b8251811015612aac57828181518110612a6857612a6861500d565b6020026020010151828281518110612a8257612a8261500d565b6001600160a01b039092166020928302919091019091015280612aa481615023565b915050612a4d565b506101065481516001600160a01b03909116908290612acd9060019061503c565b81518110612add57612add61500d565b60200260200101906001600160a01b031690816001600160a01b031681525050308160028351612b0d919061503c565b81518110612b1d57612b1d61500d565b6001600160a01b03928316602091820292909201015261010454608086015160e08701516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f92612b879291610108913090889060040161547e565b6020604051808303816000875af1158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190614fa2565b60fe558051612be19061010f90602084019061479c565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed0320560fe546101088660e00151604051612c1d939291906154cc565b60405180910390a150508015611803576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016111d3565b61010154610102805460009283928392612c9a926001600160a01b03169184612c9183615023565b91905055613dee565b9050612ca881878787612f15565b9250925050935093915050565b610103546001600160a01b03163314612cfa576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611774613e42565b6101098054612d10906151a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3c906151a4565b8015612d895780601f10612d5e57610100808354040283529160200191612d89565b820191906000526020600020905b815481529060010190602001808311612d6c57829003601f168201915b505050505081565b612d99613605565b33612da3816131f0565b612dac81613a83565b6001600160a01b03808216600081815261010c602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945561010d90529182209091612e259190614801565b61010554602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea29190615065565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506117746001606555565b612f04612710600a614f58565b81565b6101088054612d10906151a4565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03861615612f3f5750845b869150600061010f805480602002602001604051908101604052809291908181526020018280548015612f9b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f7d575b50506101075460fe546040519596506001600160a01b039091169463e1007d4a9450909250879150612fd1908b9060200161550b565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161300797969594939291906155b4565b6020604051808303816000875af1158015613026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304a9190614fa2565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a89604051613083959493929190615620565b60405180910390a1505094509492505050565b600082815260c960205260409020600101546130b181613559565b61132883836137d5565b6001600160a01b03811660009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604081205460ff16610cab565b613103613ba6565b6001600160a01b03811661317f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016117f0565b6110b881613c00565b3360009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604090205460ff16611774576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808216600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190526110b857604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038116600090815261010a602052604090205460ff166110b8576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166110b8576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132f0816132a7565b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610d30565b6001600160a01b038116600090815261010a602052604090205460ff1615613396576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610d30565b806001600160a01b0316826001600160a01b031614611803576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600090815261010d60205260408120905b815481101561355357826001600160a01b03168282815481106134765761347661500d565b6000918252602090912001546001600160a01b03160361354157815482906134a09060019061503c565b815481106134b0576134b061500d565b9060005260206000200160009054906101000a90046001600160a01b03168282815481106134e0576134e061500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508180548061351e5761351e61504f565b600082815260209020810160001990810180546001600160a01b03191690550190555b8061354b81615023565b915050613451565b50505050565b6110b88133613e9f565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135c13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6002606554036136575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016117f0565b6002606555565b611803828260405160240161367492919061565a565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03808516602483015283166044820152606481018290526135539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f35565b6118038282604051602401613756929190615685565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03831660248201526044810182905261132890849063a9059cbb60e01b90606401613709565b6001606555565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff161561180357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6110b8613ba6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613893576113288361401d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614fa2565b60015b61395f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146139f45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016117f0565b506113288383836140db565b33600090815261010c6020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff161515910181905261177457604051636a5cfb6d60e01b815260040160405180910390fd5b6000613a6b83614100565b8015613a7c5750613a7c8383614133565b9392505050565b6001600160a01b038116600090815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015613aee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ad0575b5050505050905060005b815181101561132857818181518110613b1357613b1361500d565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b158015613b7b57600080fd5b505af1158015613b8f573d6000803e3d6000fd5b505050508080613b9e90615023565b915050613af8565b6033546001600160a01b031633146117745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016117f0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613cbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6117746141bc565b600054610100900460ff16613d305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b611774614230565b600054610100900460ff166117745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b600082815260c96020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050613e3a848261429b565b949350505050565b610103805461010680546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357613ed281614338565b613edd83602061434a565b604051602001613eee9291906156a7565b60408051601f198184030181529082905262461bcd60e51b82526117f091600401614eb9565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000613f8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661452b9092919063ffffffff16565b9050805160001480613fab575080806020019051810190613fab9190615065565b6113285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016117f0565b6001600160a01b0381163b61409a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6140e48361453a565b6000825111806140f15750805b1561132857613553838361457a565b6000614113826301ffc9a760e01b614133565b8015610cab575061412c826001600160e01b0319614133565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141a5575060208210155b80156141b15750600081115b979650505050505050565b600054610100900460ff166142275760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b61177433613c00565b600054610100900460ff166137ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610cab5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016117f0565b6060610cab6001600160a01b03831660145b60606000614359836002614f58565b614364906002614fdd565b67ffffffffffffffff81111561437c5761437c61493f565b6040519080825280601f01601f1916602001820160405280156143a6576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143dd576143dd61500d565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106144285761442861500d565b60200101906001600160f81b031916908160001a905350600061444c846002614f58565b614457906001614fdd565b90505b60018111156144dc577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106144985761449861500d565b1a60f81b8282815181106144ae576144ae61500d565b60200101906001600160f81b031916908160001a90535060049490941c936144d581615728565b905061445a565b508315613a7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016117f0565b6060613e3a848460008561459f565b6145438161401d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a7c838360405180606001604052806027815260200161578260279139614686565b6060824710156146175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016117f0565b600080866001600160a01b03168587604051614633919061573f565b60006040518083038185875af1925050503d8060008114614670576040519150601f19603f3d011682016040523d82523d6000602084013e614675565b606091505b50915091506141b1878383876146fe565b6060600080856001600160a01b0316856040516146a3919061573f565b600060405180830381855af49150503d80600081146146de576040519150601f19603f3d011682016040523d82523d6000602084013e6146e3565b606091505b50915091506146f4868383876146fe565b9695505050505050565b6060831561476d578251600003614766576001600160a01b0385163b6147665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016117f0565b5081613e3a565b613e3a83838151156147825781518083602001fd5b8060405162461bcd60e51b81526004016117f09190614eb9565b8280548282559060005260206000209081019282156147f1579160200282015b828111156147f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147bc565b506147fd92915061481b565b5090565b50805460008255906000526020600020908101906110b891905b5b808211156147fd576000815560010161481c565b60006020828403121561484257600080fd5b81356001600160e01b031981168114613a7c57600080fd5b60006020828403121561486c57600080fd5b5035919050565b6001600160a01b03811681146110b857600080fd5b803561489381614873565b919050565b600080604083850312156148ab57600080fd5b82356148b681614873565b915060208301356148c681614873565b809150509250929050565b6000602082840312156148e357600080fd5b8135613a7c81614873565b6000806040838503121561490157600080fd5b823561490c81614873565b946020939093013593505050565b6000806040838503121561492d57600080fd5b8235915060208301356148c681614873565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156149785761497861493f565b60405290565b6040516101a0810167ffffffffffffffff811182821017156149785761497861493f565b604051610120810167ffffffffffffffff811182821017156149785761497861493f565b60405160c0810167ffffffffffffffff811182821017156149785761497861493f565b604051601f8201601f1916810167ffffffffffffffff81118282101715614a1257614a1261493f565b604052919050565b600067ffffffffffffffff821115614a3457614a3461493f565b50601f01601f191660200190565b6000614a55614a5084614a1a565b6149e9565b9050828152838383011115614a6957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614a9357600080fd5b8235614a9e81614873565b9150602083013567ffffffffffffffff811115614aba57600080fd5b8301601f81018513614acb57600080fd5b614ada85823560208401614a42565b9150509250929050565b600082601f830112614af557600080fd5b613a7c83833560208501614a42565b600060408284031215614b1657600080fd5b614b1e614955565b905081358152602082013567ffffffffffffffff811115614b3e57600080fd5b614b4a84828501614ae4565b60208301525092915050565b80151581146110b857600080fd5b803561489381614b56565b600060208284031215614b8157600080fd5b813567ffffffffffffffff80821115614b9957600080fd5b908301906101a08286031215614bae57600080fd5b614bb661497e565b614bbf83614888565b8152614bcd60208401614888565b6020820152604083013560408201526060830135606082015260808301356080820152614bfc60a08401614888565b60a0820152614c0d60c08401614888565b60c082015260e083013582811115614c2457600080fd5b614c3087828601614b04565b60e083015250610100614c44818501614888565b908201526101208381013583811115614c5c57600080fd5b614c6888828701614ae4565b828401525050610140614c7c818501614b64565b908201526101608381013583811115614c9457600080fd5b614ca088828701614ae4565b8284015250506101809150614cb6828401614888565b91810191909152949350505050565b80356003811061489357600080fd5b600481106110b857600080fd5b803561489381614cd4565b600060208284031215614cfe57600080fd5b6040516020810181811067ffffffffffffffff82111715614d2157614d2161493f565b6040529135825250919050565b600060408284031215614d4057600080fd5b614d48614955565b90508135614d5581614873565b808252506020820135602082015292915050565b60006101408284031215614d7c57600080fd5b614d846149a2565b9050614d8f82614888565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152614dc560a08301614cc5565b60a0820152614dd660c08301614ce1565b60c0820152614de88360e08401614cec565b60e0820152610100614dfc84828501614d2e565b9082015292915050565b60008060006101808486031215614e1c57600080fd5b8335614e2781614873565b9250614e368560208601614d69565b915061016084013567ffffffffffffffff811115614e5357600080fd5b614e5f86828701614b04565b9150509250925092565b60005b83811015614e84578181015183820152602001614e6c565b50506000910152565b60008151808452614ea5816020860160208601614e69565b601f01601f19169290920160200192915050565b602081526000613a7c6020830184614e8d565b6000806000806101a08587031215614ee357600080fd5b8435614eee81614873565b93506020850135614efe81614873565b9250614f0d8660408701614d69565b915061018085013567ffffffffffffffff811115614f2a57600080fd5b614f3687828801614b04565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610cab57610cab614f42565b634e487b7160e01b600052602160045260246000fd5b600060208284031215614f9757600080fd5b8151613a7c81614cd4565b600060208284031215614fb457600080fd5b5051919050565b600082614fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610cab57610cab614f42565b60006020828403121561500257600080fd5b8151613a7c81614873565b634e487b7160e01b600052603260045260246000fd5b60006001820161503557615035614f42565b5060010190565b81810381811115610cab57610cab614f42565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561507757600080fd5b8151613a7c81614b56565b6000602080838503121561509557600080fd5b825167ffffffffffffffff808211156150ad57600080fd5b9084019060c082870312156150c157600080fd5b6150c96149c6565b82518152838301516150da81614873565b8185015260408301516150ec81614873565b604082015260608301518281111561510357600080fd5b83016040818903121561511557600080fd5b61511d614955565b81518152858201518481111561513257600080fd5b82019350601f8401891361514557600080fd5b83519150615155614a5083614a1a565b828152898784870101111561516957600080fd5b61517883888301898801614e69565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c908216806151b857607f821691505b6020821081036151d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561132857600081815260208120601f850160051c810160208610156152055750805b601f850160051c820191505b8181101561522457828155600101615211565b505050505050565b815167ffffffffffffffff8111156152465761524661493f565b61525a8161525484546151a4565b846151de565b602080601f83116001811461528f57600084156152775750858301515b600019600386901b1c1916600185901b178555615224565b600085815260208120601f198616915b828110156152be5788860151825594840194600190910190840161529f565b50858210156152dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156152ff57600080fd5b825167ffffffffffffffff8082111561531757600080fd5b818501915085601f83011261532b57600080fd5b81518181111561533d5761533d61493f565b8060051b915061534e8483016149e9565b818152918301840191848101908884111561536857600080fd5b938501935b83851015615392578451925061538283614873565b828252938501939085019061536d565b98975050505050505050565b600081546153ab816151a4565b8085526020600183811680156153c857600181146153e257615410565b60ff1985168884015283151560051b880183019550615410565b866000528260002060005b858110156154085781548a82018601529083019084016153ed565b890184019650505b505050505092915050565b805182526000602082015160406020850152613e3a6040850182614e8d565b600081518084526020808501945080840160005b838110156154735781516001600160a01b03168752958201959082019060010161544e565b509495945050505050565b85815260a06020820152600061549760a083018761539e565b82810360408401526154a9818761541b565b90506001600160a01b03851660608401528281036080840152615392818561543a565b8381526060602082015260006154e5606083018561539e565b82810360408401526146f4818561541b565b6004811061550757615507614f6f565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061555e5761555e614f6f565b8060a08401525060c083015161557760c08401826154f7565b5060e083015161558a60e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526155dd60e0840189614e8d565b818816606085015286608085015283810360a08501526155fd818761541b565b91505082810360c0840152615612818561543a565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a060808301526141b160a083018461541b565b60408152600061566d6040830185614e8d565b90506001600160a01b03831660208301529392505050565b6040815260006156986040830185614e8d565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156df816017850160208801614e69565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571c816028840160208801614e69565b01602801949350505050565b60008161573757615737614f42565b506000190190565b60008251615751818460208701614e69565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122051339265b354dd1f0973bfe78d4afe3466e76f16690932b2a80ac453990a8ee864736f6c63430008130033","sourceMap":"1253:23719:130:-:0;;;1088:4:67;1045:48;;1253:23719:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106103a25760003560e01c80636c53db9a116101e7578063a217fddf1161010d578063c8a593e9116100a0578063db61d65c1161006f578063db61d65c14610bdf578063ebd7dc5214610c00578063f2fde38b14610c20578063f86c5f8914610c4057600080fd5b8063c8a593e914610b68578063d547741f14610b88578063d6d8428d14610ba8578063d7050f0714610bc957600080fd5b8063b64e39af116100dc578063b64e39af14610b07578063b99b437014610b29578063bc063e1a14610b3e578063c6d572ae14610b5357600080fd5b8063a217fddf14610a58578063a230c52414610a6d578063b3f0067414610ad2578063b5058c5014610af257600080fd5b806382d6a1e71161018557806391d148541161015457806391d148541461098d57806396f0adec146109d35780639a72a86f146109f3578063a0cf0aea14610a3057600080fd5b806382d6a1e7146108c857806388cfe684146108e85780638961be6b146109595780638da5cb5b1461096f57600080fd5b8063733a2d1f116101c1578063733a2d1f146108165780637817ee4f1461084a57806378a0b8a9146108915780637b103999146108a757600080fd5b80636c53db9a146107c0578063715018a6146107e157806373265c37146107f657600080fd5b806333960459116102cc5780634f1ef2861161026a5780635ecf71c5116102395780635ecf71c51461072657806365e3864c146107465780636871eb4d1461077f57806368decabb1461079f57600080fd5b80634f1ef286146106bd57806352d1902d146106d0578063559de05d146106e55780635c94e4d21461070557600080fd5b80633659cfe6116102a65780633659cfe614610610578063397e2543146106305780633a871fe114610650578063477a5cc01461068157600080fd5b806333960459146105c45780633517aa7d146105db57806336568abe146105f057600080fd5b8063223e5479116103445780632b38c69c116103135780632b38c69c146105125780632c611c4a1461054a5780632f2ff15d1461058457806331f61bca146105a457600080fd5b8063223e54791461048d57806322bcf999146104ad578063248a9ca3146104cd57806328c309e9146104fd57600080fd5b80630d12bbdb116103805780630d12bbdb146104115780630d4a8b4914610433578063175188e8146104535780631f787d281461047357600080fd5b806301ffc9a7146103a75780630331383c146103dc57806308386eba146103fb575b600080fd5b3480156103b357600080fd5b506103c76103c2366004614830565b610c61565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b5060fc545b6040519081526020016103d3565b34801561040757600080fd5b506103ed60fe5481565b34801561041d57600080fd5b5061043161042c36600461485a565b610cb1565b005b34801561043f57600080fd5b5061043161044e366004614898565b610d3b565b34801561045f57600080fd5b5061043161046e3660046148d1565b6110a7565b34801561047f57600080fd5b5060fb546103c79060ff1681565b34801561049957600080fd5b506104316104a83660046148d1565b6110bb565b3480156104b957600080fd5b506104316104c8366004614898565b6110cc565b3480156104d957600080fd5b506103ed6104e836600461485a565b600090815260c9602052604090206001015490565b34801561050957600080fd5b506103ed6111df565b34801561051e57600080fd5b5061053261052d3660046148ee565b6112ca565b6040516001600160a01b0390911681526020016103d3565b34801561055657600080fd5b506103ed6105653660046148d1565b6001600160a01b0316600090815261010c602052604090206001015490565b34801561059057600080fd5b5061043161059f36600461491a565b611303565b3480156105b057600080fd5b506104316105bf36600461485a565b61132d565b3480156105d057600080fd5b506103ed6101025481565b3480156105e757600080fd5b5061043161136a565b3480156105fc57600080fd5b5061043161060b36600461491a565b611776565b34801561061c57600080fd5b5061043161062b3660046148d1565b611807565b34801561063c57600080fd5b5061043161064b3660046148d1565b61197f565b34801561065c57600080fd5b506103c761066b3660046148d1565b61010a6020526000908152604090205460ff1681565b34801561068d57600080fd5b506103c761069c366004614898565b61010e60209081526000928352604080842090915290825290205460ff1681565b6104316106cb366004614a80565b6119ee565b3480156106dc57600080fd5b506103ed611b56565b3480156106f157600080fd5b5061043161070036600461485a565b611c1b565b34801561071157600080fd5b5061010154610532906001600160a01b031681565b34801561073257600080fd5b5061043161074136600461485a565b611efa565b34801561075257600080fd5b506103ed610761366004614898565b61010b60209081526000928352604080842090915290825290205481565b34801561078b57600080fd5b5061043161079a366004614898565b6122ba565b3480156107ab57600080fd5b5061010354610532906001600160a01b031681565b3480156107cc57600080fd5b5061010654610532906001600160a01b031681565b3480156107ed57600080fd5b506104316124c9565b34801561080257600080fd5b5061043161081136600461485a565b6124db565b34801561082257600080fd5b506103ed7f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa81565b34801561085657600080fd5b506103ed610865366004614898565b6001600160a01b03918216600090815261010b6020908152604080832093909416825291909152205490565b34801561089d57600080fd5b506103ed60fc5481565b3480156108b357600080fd5b5061010454610532906001600160a01b031681565b3480156108d457600080fd5b506104316108e336600461485a565b61256e565b3480156108f457600080fd5b506109326109033660046148d1565b61010c602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b03909416845260208401929092521515908201526060016103d3565b34801561096557600080fd5b506103ed60fd5481565b34801561097b57600080fd5b506033546001600160a01b0316610532565b34801561099957600080fd5b506103c76109a836600461491a565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156109df57600080fd5b506104316109ee366004614b6f565b612620565b3480156109ff57600080fd5b50610a13610a0e366004614e06565b612c69565b604080519283526001600160a01b039091166020830152016103d3565b348015610a3c57600080fd5b5061053273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610a6457600080fd5b506103ed600081565b348015610a7957600080fd5b506103c7610a883660046148d1565b6001600160a01b03908116600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b348015610ade57600080fd5b5060ff54610532906001600160a01b031681565b348015610afe57600080fd5b50610431612cb5565b348015610b1357600080fd5b50610b1c612d02565b6040516103d39190614eb9565b348015610b3557600080fd5b50610431612d91565b348015610b4a57600080fd5b506103ed612ef7565b348015610b5f57600080fd5b50610b1c612f07565b348015610b7457600080fd5b50610a13610b83366004614ecc565b612f15565b348015610b9457600080fd5b50610431610ba336600461491a565b613096565b348015610bb457600080fd5b5061010754610532906001600160a01b031681565b348015610bd557600080fd5b506103ed61271081565b348015610beb57600080fd5b5061010554610532906001600160a01b031681565b348015610c0c57600080fd5b506103c7610c1b3660046148d1565b6130bb565b348015610c2c57600080fd5b50610431610c3b3660046148d1565b6130fb565b348015610c4c57600080fd5b5061010054610532906001600160a01b031681565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610cab57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb9613188565b610cc6612710600a614f58565b811115610cff576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fd8190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b610d44826131f0565b610d4d81613254565b610d56816132a7565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff1615610db7576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff1615159183019190915260fc546003846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190614f85565b6003811115610e7957610e79614f6f565b03610ef85760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190614fa2565b9050610fea565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190614f85565b6003811115610f6f57610f6f614f6f565b14610fea5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190614fa2565b90505b6001600160a01b03858116600081815261010b6020908152604080832094891680845294825280832086905583835261010e82528083208584528252808320805460ff1916600190811790915584845261010d83528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b6110af613188565b6110b8816132e7565b50565b6110c3613188565b6110b881613342565b6110d5826131f0565b6110de816132a7565b6110e833826133eb565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff16611148576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600081815261010e60209081526040808320948616808452948252808320805460ff1916905592825261010b8152828220938252929092528120556111988282613436565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b91015b60405180910390a15050565b610100546000906001600160a01b0316816111fd6127106064614f58565b60fd5460fc5461120d9190614f58565b6112179190614fbb565b905060006112286127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190614fa2565b60fc5461129d9190614f58565b6112a79190614fbb565b9050808260fc546112b89190614fdd565b6112c29190614fdd565b935050505090565b61010d60205281600052604060002081815481106112e757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600082815260c9602052604090206001015461131e81613559565b6113288383613563565b505050565b611335613188565b60fc8190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610d30565b611372613605565b33600081815261010c602052604081206101005490916001600160a01b03909116906113a16127106064614f58565b60fd5460fc546113b19190614f58565b6113bb9190614fbb565b905060006113cc6127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190614fa2565b60fc546114419190614f58565b61144b9190614fbb565b6001600160a01b03808716600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506117655760028401805460ff1916600190811790915560fc549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152610105546114fd91906001600160a01b031661365e565b6115308530838560fc546115119190614fdd565b61151b9190614fdd565b610105546001600160a01b03169291906136bc565b61156f6040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083613740565b81156115dd5760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260ff546115bf91906001600160a01b031661365e565b60ff54610105546115dd916001600160a01b0391821691168461379e565b61161c6040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082613740565b801561171e576116a560405180606001604052806026815260200161575c60269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190614ff0565b61365e565b61171e836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190614ff0565b610105546001600160a01b0316908361379e565b60fc54604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506117746001606555565b565b6001600160a01b03811633146117f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61180382826137d5565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118945760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461195a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b61196381613858565b604080516000808252602082019092526110b891839190613860565b611987613188565b611990816132a7565b61010380546001600160a01b0319166001600160a01b03838116918217909255610106546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610d30565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ad67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614611b415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b611b4a82613858565b61180382826001613860565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016117f0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611c23613605565b611c2b613a00565b33600081815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015611c8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c6f575b50505050509050600080600090505b8251811015611e5f57828181518110611cb757611cb761500d565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d369190614fa2565b91508115611e4d576001600160a01b038416600090815261010b602052604081208451849290869085908110611d6e57611d6e61500d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611da59190614fdd565b92505081905550611e4d6040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525061010b6000876001600160a01b03166001600160a01b031681526020019081526020016000206000868581518110611e1f57611e1f61500d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613740565b80611e5781615023565b915050611c9c565b5061010554611e79906001600160a01b03168430876136bc565b6001600160a01b038316600090815261010c602052604081206001018054869290611ea5908490614fdd565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a15050506110b86001606555565b611f02613605565b611f0a613a00565b33600081815261010d6020908152604080832060fc5461010c9093529083206001015490929190611f3c90869061503c565b1015611f74576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010554611f8c906001600160a01b0316848661379e565b60005b8254811015612249576000838281548110611fac57611fac61500d565b6000918252602090912001546001600160a01b03169050611fd48163f1801e6160e01b613a60565b1561217d576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614fa2565b9250600061010b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815481106120a3576120a361500d565b60009182526020808320909101546001600160a01b0316835282019290925260400190205490508084111561210e576040517f8a11f31800000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016117f0565b6001600160a01b038616600090815261010b60205260408120865486929088908790811061213e5761213e61500d565b60009182526020808320909101546001600160a01b031683528201929092526040018120805490919061217290849061503c565b909155505050612236565b8354849061218d9060019061503c565b8154811061219d5761219d61500d565b9060005260206000200160009054906101000a90046001600160a01b03168483815481106121cd576121cd61500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508380548061220b5761220b61504f565b600082815260209020810160001990810180546001600160a01b0319169055019055612236816132e7565b508061224181615023565b915050611f8f565b506001600160a01b038316600090815261010c60205260408120600101805486929061227690849061503c565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff89101611ee5565b6122c2613605565b6122ca613188565b60fb5460ff16612306576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905261236a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515908201526123b983613a83565b6001600160a01b03838116600090815261010c6020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff191690556101055490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615065565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506118036001606555565b6124d1613ba6565b6117746000613c00565b6124e3613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa15801561252e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125569190810190615082565b602001519050612565816132a7565b611803816132e7565b612576613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa1580156125c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125e99190810190615082565b6020015190506125f8816132a7565b6126126001600160a01b03821663f1801e6160e01b613a60565b156118035761180381613342565b600054610100900460ff16158080156126405750600054600160ff909116105b8061265a5750303b15801561265a575060005460ff166001145b6126cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016117f0565b6000805460ff1916600117905580156126ef576000805461ff0019166101001790555b6126f7613c52565b6126ff613cc5565b612707613d38565b6127327f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa6000613da3565b61273f82602001516132a7565b61274d8261010001516132a7565b8151612758906132a7565b6127658260a001516132a7565b6127738261018001516132a7565b60608201511561278a5761278a8260c001516132a7565b815161010780546001600160a01b039283166001600160a01b0319918216179091556020840151610105805491909316911617905560408201516000036127fd576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604082015160fc55606082015160fd5561014082015160fb805460ff191691151591909117905561012082015161010890612838908261522c565b506101608201516101099061284d908261522c565b5060a082015161010080546001600160a01b03199081166001600160a01b0393841617825560c085015160ff805483169185169190911790559084015161010680548316828516179055610180850151610101805490931693169290921790556128d8907f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa90613563565b61010760009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129509190614ff0565b61010480546001600160a01b0319166001600160a01b0392831617905561010654604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906152ec565b9050600081516002612a069190614fdd565b67ffffffffffffffff811115612a1e57612a1e61493f565b604051908082528060200260200182016040528015612a47578160200160208202803683370190505b50905060005b8251811015612aac57828181518110612a6857612a6861500d565b6020026020010151828281518110612a8257612a8261500d565b6001600160a01b039092166020928302919091019091015280612aa481615023565b915050612a4d565b506101065481516001600160a01b03909116908290612acd9060019061503c565b81518110612add57612add61500d565b60200260200101906001600160a01b031690816001600160a01b031681525050308160028351612b0d919061503c565b81518110612b1d57612b1d61500d565b6001600160a01b03928316602091820292909201015261010454608086015160e08701516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f92612b879291610108913090889060040161547e565b6020604051808303816000875af1158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190614fa2565b60fe558051612be19061010f90602084019061479c565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed0320560fe546101088660e00151604051612c1d939291906154cc565b60405180910390a150508015611803576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016111d3565b61010154610102805460009283928392612c9a926001600160a01b03169184612c9183615023565b91905055613dee565b9050612ca881878787612f15565b9250925050935093915050565b610103546001600160a01b03163314612cfa576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611774613e42565b6101098054612d10906151a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3c906151a4565b8015612d895780601f10612d5e57610100808354040283529160200191612d89565b820191906000526020600020905b815481529060010190602001808311612d6c57829003601f168201915b505050505081565b612d99613605565b33612da3816131f0565b612dac81613a83565b6001600160a01b03808216600081815261010c602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945561010d90529182209091612e259190614801565b61010554602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea29190615065565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506117746001606555565b612f04612710600a614f58565b81565b6101088054612d10906151a4565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03861615612f3f5750845b869150600061010f805480602002602001604051908101604052809291908181526020018280548015612f9b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f7d575b50506101075460fe546040519596506001600160a01b039091169463e1007d4a9450909250879150612fd1908b9060200161550b565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161300797969594939291906155b4565b6020604051808303816000875af1158015613026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304a9190614fa2565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a89604051613083959493929190615620565b60405180910390a1505094509492505050565b600082815260c960205260409020600101546130b181613559565b61132883836137d5565b6001600160a01b03811660009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604081205460ff16610cab565b613103613ba6565b6001600160a01b03811661317f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016117f0565b6110b881613c00565b3360009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604090205460ff16611774576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808216600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190526110b857604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038116600090815261010a602052604090205460ff166110b8576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166110b8576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132f0816132a7565b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610d30565b6001600160a01b038116600090815261010a602052604090205460ff1615613396576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610d30565b806001600160a01b0316826001600160a01b031614611803576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600090815261010d60205260408120905b815481101561355357826001600160a01b03168282815481106134765761347661500d565b6000918252602090912001546001600160a01b03160361354157815482906134a09060019061503c565b815481106134b0576134b061500d565b9060005260206000200160009054906101000a90046001600160a01b03168282815481106134e0576134e061500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508180548061351e5761351e61504f565b600082815260209020810160001990810180546001600160a01b03191690550190555b8061354b81615023565b915050613451565b50505050565b6110b88133613e9f565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135c13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6002606554036136575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016117f0565b6002606555565b611803828260405160240161367492919061565a565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03808516602483015283166044820152606481018290526135539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f35565b6118038282604051602401613756929190615685565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03831660248201526044810182905261132890849063a9059cbb60e01b90606401613709565b6001606555565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff161561180357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6110b8613ba6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613893576113288361401d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614fa2565b60015b61395f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146139f45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016117f0565b506113288383836140db565b33600090815261010c6020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff161515910181905261177457604051636a5cfb6d60e01b815260040160405180910390fd5b6000613a6b83614100565b8015613a7c5750613a7c8383614133565b9392505050565b6001600160a01b038116600090815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015613aee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ad0575b5050505050905060005b815181101561132857818181518110613b1357613b1361500d565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b158015613b7b57600080fd5b505af1158015613b8f573d6000803e3d6000fd5b505050508080613b9e90615023565b915050613af8565b6033546001600160a01b031633146117745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016117f0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613cbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6117746141bc565b600054610100900460ff16613d305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b611774614230565b600054610100900460ff166117745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b600082815260c96020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050613e3a848261429b565b949350505050565b610103805461010680546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357613ed281614338565b613edd83602061434a565b604051602001613eee9291906156a7565b60408051601f198184030181529082905262461bcd60e51b82526117f091600401614eb9565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000613f8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661452b9092919063ffffffff16565b9050805160001480613fab575080806020019051810190613fab9190615065565b6113285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016117f0565b6001600160a01b0381163b61409a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6140e48361453a565b6000825111806140f15750805b1561132857613553838361457a565b6000614113826301ffc9a760e01b614133565b8015610cab575061412c826001600160e01b0319614133565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141a5575060208210155b80156141b15750600081115b979650505050505050565b600054610100900460ff166142275760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b61177433613c00565b600054610100900460ff166137ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610cab5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016117f0565b6060610cab6001600160a01b03831660145b60606000614359836002614f58565b614364906002614fdd565b67ffffffffffffffff81111561437c5761437c61493f565b6040519080825280601f01601f1916602001820160405280156143a6576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143dd576143dd61500d565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106144285761442861500d565b60200101906001600160f81b031916908160001a905350600061444c846002614f58565b614457906001614fdd565b90505b60018111156144dc577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106144985761449861500d565b1a60f81b8282815181106144ae576144ae61500d565b60200101906001600160f81b031916908160001a90535060049490941c936144d581615728565b905061445a565b508315613a7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016117f0565b6060613e3a848460008561459f565b6145438161401d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a7c838360405180606001604052806027815260200161578260279139614686565b6060824710156146175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016117f0565b600080866001600160a01b03168587604051614633919061573f565b60006040518083038185875af1925050503d8060008114614670576040519150601f19603f3d011682016040523d82523d6000602084013e614675565b606091505b50915091506141b1878383876146fe565b6060600080856001600160a01b0316856040516146a3919061573f565b600060405180830381855af49150503d80600081146146de576040519150601f19603f3d011682016040523d82523d6000602084013e6146e3565b606091505b50915091506146f4868383876146fe565b9695505050505050565b6060831561476d578251600003614766576001600160a01b0385163b6147665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016117f0565b5081613e3a565b613e3a83838151156147825781518083602001fd5b8060405162461bcd60e51b81526004016117f09190614eb9565b8280548282559060005260206000209081019282156147f1579160200282015b828111156147f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147bc565b506147fd92915061481b565b5090565b50805460008255906000526020600020908101906110b891905b5b808211156147fd576000815560010161481c565b60006020828403121561484257600080fd5b81356001600160e01b031981168114613a7c57600080fd5b60006020828403121561486c57600080fd5b5035919050565b6001600160a01b03811681146110b857600080fd5b803561489381614873565b919050565b600080604083850312156148ab57600080fd5b82356148b681614873565b915060208301356148c681614873565b809150509250929050565b6000602082840312156148e357600080fd5b8135613a7c81614873565b6000806040838503121561490157600080fd5b823561490c81614873565b946020939093013593505050565b6000806040838503121561492d57600080fd5b8235915060208301356148c681614873565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156149785761497861493f565b60405290565b6040516101a0810167ffffffffffffffff811182821017156149785761497861493f565b604051610120810167ffffffffffffffff811182821017156149785761497861493f565b60405160c0810167ffffffffffffffff811182821017156149785761497861493f565b604051601f8201601f1916810167ffffffffffffffff81118282101715614a1257614a1261493f565b604052919050565b600067ffffffffffffffff821115614a3457614a3461493f565b50601f01601f191660200190565b6000614a55614a5084614a1a565b6149e9565b9050828152838383011115614a6957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614a9357600080fd5b8235614a9e81614873565b9150602083013567ffffffffffffffff811115614aba57600080fd5b8301601f81018513614acb57600080fd5b614ada85823560208401614a42565b9150509250929050565b600082601f830112614af557600080fd5b613a7c83833560208501614a42565b600060408284031215614b1657600080fd5b614b1e614955565b905081358152602082013567ffffffffffffffff811115614b3e57600080fd5b614b4a84828501614ae4565b60208301525092915050565b80151581146110b857600080fd5b803561489381614b56565b600060208284031215614b8157600080fd5b813567ffffffffffffffff80821115614b9957600080fd5b908301906101a08286031215614bae57600080fd5b614bb661497e565b614bbf83614888565b8152614bcd60208401614888565b6020820152604083013560408201526060830135606082015260808301356080820152614bfc60a08401614888565b60a0820152614c0d60c08401614888565b60c082015260e083013582811115614c2457600080fd5b614c3087828601614b04565b60e083015250610100614c44818501614888565b908201526101208381013583811115614c5c57600080fd5b614c6888828701614ae4565b828401525050610140614c7c818501614b64565b908201526101608381013583811115614c9457600080fd5b614ca088828701614ae4565b8284015250506101809150614cb6828401614888565b91810191909152949350505050565b80356003811061489357600080fd5b600481106110b857600080fd5b803561489381614cd4565b600060208284031215614cfe57600080fd5b6040516020810181811067ffffffffffffffff82111715614d2157614d2161493f565b6040529135825250919050565b600060408284031215614d4057600080fd5b614d48614955565b90508135614d5581614873565b808252506020820135602082015292915050565b60006101408284031215614d7c57600080fd5b614d846149a2565b9050614d8f82614888565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152614dc560a08301614cc5565b60a0820152614dd660c08301614ce1565b60c0820152614de88360e08401614cec565b60e0820152610100614dfc84828501614d2e565b9082015292915050565b60008060006101808486031215614e1c57600080fd5b8335614e2781614873565b9250614e368560208601614d69565b915061016084013567ffffffffffffffff811115614e5357600080fd5b614e5f86828701614b04565b9150509250925092565b60005b83811015614e84578181015183820152602001614e6c565b50506000910152565b60008151808452614ea5816020860160208601614e69565b601f01601f19169290920160200192915050565b602081526000613a7c6020830184614e8d565b6000806000806101a08587031215614ee357600080fd5b8435614eee81614873565b93506020850135614efe81614873565b9250614f0d8660408701614d69565b915061018085013567ffffffffffffffff811115614f2a57600080fd5b614f3687828801614b04565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610cab57610cab614f42565b634e487b7160e01b600052602160045260246000fd5b600060208284031215614f9757600080fd5b8151613a7c81614cd4565b600060208284031215614fb457600080fd5b5051919050565b600082614fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610cab57610cab614f42565b60006020828403121561500257600080fd5b8151613a7c81614873565b634e487b7160e01b600052603260045260246000fd5b60006001820161503557615035614f42565b5060010190565b81810381811115610cab57610cab614f42565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561507757600080fd5b8151613a7c81614b56565b6000602080838503121561509557600080fd5b825167ffffffffffffffff808211156150ad57600080fd5b9084019060c082870312156150c157600080fd5b6150c96149c6565b82518152838301516150da81614873565b8185015260408301516150ec81614873565b604082015260608301518281111561510357600080fd5b83016040818903121561511557600080fd5b61511d614955565b81518152858201518481111561513257600080fd5b82019350601f8401891361514557600080fd5b83519150615155614a5083614a1a565b828152898784870101111561516957600080fd5b61517883888301898801614e69565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c908216806151b857607f821691505b6020821081036151d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561132857600081815260208120601f850160051c810160208610156152055750805b601f850160051c820191505b8181101561522457828155600101615211565b505050505050565b815167ffffffffffffffff8111156152465761524661493f565b61525a8161525484546151a4565b846151de565b602080601f83116001811461528f57600084156152775750858301515b600019600386901b1c1916600185901b178555615224565b600085815260208120601f198616915b828110156152be5788860151825594840194600190910190840161529f565b50858210156152dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156152ff57600080fd5b825167ffffffffffffffff8082111561531757600080fd5b818501915085601f83011261532b57600080fd5b81518181111561533d5761533d61493f565b8060051b915061534e8483016149e9565b818152918301840191848101908884111561536857600080fd5b938501935b83851015615392578451925061538283614873565b828252938501939085019061536d565b98975050505050505050565b600081546153ab816151a4565b8085526020600183811680156153c857600181146153e257615410565b60ff1985168884015283151560051b880183019550615410565b866000528260002060005b858110156154085781548a82018601529083019084016153ed565b890184019650505b505050505092915050565b805182526000602082015160406020850152613e3a6040850182614e8d565b600081518084526020808501945080840160005b838110156154735781516001600160a01b03168752958201959082019060010161544e565b509495945050505050565b85815260a06020820152600061549760a083018761539e565b82810360408401526154a9818761541b565b90506001600160a01b03851660608401528281036080840152615392818561543a565b8381526060602082015260006154e5606083018561539e565b82810360408401526146f4818561541b565b6004811061550757615507614f6f565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061555e5761555e614f6f565b8060a08401525060c083015161557760c08401826154f7565b5060e083015161558a60e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526155dd60e0840189614e8d565b818816606085015286608085015283810360a08501526155fd818761541b565b91505082810360c0840152615612818561543a565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a060808301526141b160a083018461541b565b60408152600061566d6040830185614e8d565b90506001600160a01b03831660208301529392505050565b6040815260006156986040830185614e8d565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156df816017850160208801614e69565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571c816028840160208801614e69565b01602801949350505050565b60008161573757615737614f42565b506000190190565b60008251615751818460208701614e69565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122051339265b354dd1f0973bfe78d4afe3466e76f16690932b2a80ac453990a8ee864736f6c63430008130033","sourceMap":"1253:23719:130:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3050:213:44;;;;;;;;;;-1:-1:-1;3050:213:44;;;;;:::i;:::-;;:::i;:::-;;;516:14:145;;509:22;491:41;;479:2;464:18;3050:213:44;;;;;;;;22610:107:130;;;;;;;;;;-1:-1:-1;22691:19:130;;22610:107;;;689:25:145;;;677:2;662:18;22610:107:130;543:177:145;2290:24:130;;;;;;;;;;;;;;;;22911:280;;;;;;;;;;-1:-1:-1;22911:280:130;;;;;:::i;:::-;;:::i;:::-;;12587:1179;;;;;;;;;;-1:-1:-1;12587:1179:130;;;;;:::i;:::-;;:::i;19302:120::-;;;;;;;;;;-1:-1:-1;19302:120:130;;;;;:::i;:::-;;:::i;1979:25::-;;;;;;;;;;-1:-1:-1;1979:25:130;;;;;;;;18360:120;;;;;;;;;;-1:-1:-1;18360:120:130;;;;;:::i;:::-;;:::i;13772:691::-;;;;;;;;;;-1:-1:-1;13772:691:130;;;;;:::i;:::-;;:::i;4855:129:44:-;;;;;;;;;;-1:-1:-1;4855:129:44;;;;;:::i;:::-;4929:7;4955:12;;;:6;:12;;;;;:22;;;;4855:129;22137:467:130;;;;;;;;;;;;;:::i;3832:82::-;;;;;;;;;;-1:-1:-1;3832:82:130;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;2704:55:145;;;2686:74;;2674:2;2659:18;3832:82:130;2540:226:145;17769:143:130;;;;;;;;;;-1:-1:-1;17769:143:130;;;;;:::i;:::-;-1:-1:-1;;;;;17864:28:130;17838:7;17864:28;;;:19;:28;;;;;:41;;;;17769:143;5280:145:44;;;;;;;;;;-1:-1:-1;5280:145:44;;;;;:::i;:::-;;:::i;22723:182:130:-;;;;;;;;;;-1:-1:-1;22723:182:130;;;;;:::i;:::-;;:::i;2652:25::-;;;;;;;;;;;;;;;;20224:1907;;;;;;;;;;;;;:::i;6389:214:44:-;;;;;;;;;;-1:-1:-1;6389:214:44;;;;;:::i;:::-;;:::i;3143:195:67:-;;;;;;;;;;-1:-1:-1;3143:195:67;;;;;:::i;:::-;;:::i;19428:240:130:-;;;;;;;;;;-1:-1:-1;19428:240:130;;;;;:::i;:::-;;:::i;3367:68::-;;;;;;;;;;-1:-1:-1;3367:68:130;;;;;:::i;:::-;;;;;;;;;;;;;;;;3992:107;;;;;;;;;;-1:-1:-1;3992:107:130;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;3657:220:67;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;14900:998:130:-;;;;;;;;;;-1:-1:-1;14900:998:130;;;;;:::i;:::-;;:::i;2554:31::-;;;;;;;;;;-1:-1:-1;2554:31:130;;;;-1:-1:-1;;;;;2554:31:130;;;16038:1554;;;;;;;;;;-1:-1:-1;16038:1554:130;;;;;:::i;:::-;;:::i;3503:98::-;;;;;;;;;;-1:-1:-1;3503:98:130;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;24295:571;;;;;;;;;;-1:-1:-1;24295:571:130;;;;;:::i;:::-;;:::i;2745:41::-;;;;;;;;;;-1:-1:-1;2745:41:130;;;;-1:-1:-1;;;;;2745:41:130;;;3005:24;;;;;;;;;;-1:-1:-1;3005:24:130;;;;-1:-1:-1;;;;;3005:24:130;;;2085:101:46;;;;;;;;;;;;;:::i;18875:229:130:-;;;;;;;;;;-1:-1:-1;18875:229:130;;;;;:::i;:::-;;:::i;4433:68::-;;;;;;;;;;;;4474:27;4433:68;;17598:165;;;;;;;;;;-1:-1:-1;17598:165:130;;;;;:::i;:::-;-1:-1:-1;;;;;17715:30:130;;;17689:7;17715:30;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;;17598:165;2078:34;;;;;;;;;;;;;;;;2836:25;;;;;;;;;;-1:-1:-1;2836:25:130;;;;-1:-1:-1;;;;;2836:25:130;;;18041:313;;;;;;;;;;-1:-1:-1;18041:313:130;;;;;:::i;:::-;;:::i;3701:60::-;;;;;;;;;;-1:-1:-1;3701:60:130;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3701:60:130;;;;;;;;;;;;;-1:-1:-1;;;;;6937:55:145;;;6919:74;;7024:2;7009:18;;7002:34;;;;7079:14;7072:22;7052:18;;;7045:50;6907:2;6892:18;3701:60:130;6723:378:145;2189:27:130;;;;;;;;;;;;;;;;1462:85:46;;;;;;;;;;-1:-1:-1;1534:6:46;;-1:-1:-1;;;;;1534:6:46;1462:85;;3350:145:44;;;;;;;;;;-1:-1:-1;3350:145:44;;;;;:::i;:::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;;;;3350:145;9468:2107:130;;;;;;;;;;-1:-1:-1;9468:2107:130;;;;;:::i;:::-;;:::i;11581:341::-;;;;;;;;;;-1:-1:-1;11581:341:130;;;;;:::i;:::-;;:::i;:::-;;;;12604:25:145;;;-1:-1:-1;;;;;12665:55:145;;;12660:2;12645:18;;12638:83;12577:18;11581:341:130;12430:297:145;1578:75:130;;;;;;;;;;;;1611:42;1578:75;;2320:49:44;;;;;;;;;;-1:-1:-1;2320:49:44;2365:4;2320:49;;20036:182:130;;;;;;;;;;-1:-1:-1;20036:182:130;;;;;:::i;:::-;-1:-1:-1;;;;;20144:28:130;;;20092:14;20144:28;;;:19;:28;;;;;;;;;20118:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20036:182;2381:26;;;;;;;;;;-1:-1:-1;2381:26:130;;;;-1:-1:-1;;;;;2381:26:130;;;19859:171;;;;;;;;;;;;;:::i;3221:30::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;23364:453::-;;;;;;;;;;;;;:::i;1867:54::-;;;;;;;;;;;;;:::i;3136:27::-;;;;;;;;;;;;;:::i;11928:653::-;;;;;;;;;;-1:-1:-1;11928:653:130;;;;;:::i;:::-;;:::i;5705:147:44:-;;;;;;;;;;-1:-1:-1;5705:147:44;;;;;:::i;:::-;;:::i;3077:17:130:-;;;;;;;;;;-1:-1:-1;3077:17:130;;;;-1:-1:-1;;;;;3077:17:130;;;1743:49;;;;;;;;;;;;1785:7;1743:49;;2924:25;;;;;;;;;;-1:-1:-1;2924:25:130;;;;-1:-1:-1;;;;;2924:25:130;;;23233:125;;;;;;;;;;-1:-1:-1;23233:125:130;;;;;:::i;:::-;;:::i;2335:198:46:-;;;;;;;;;;-1:-1:-1;2335:198:46;;;;;:::i;:::-;;:::i;2465:30:130:-;;;;;;;;;;-1:-1:-1;2465:30:130;;;;-1:-1:-1;;;;;2465:30:130;;;3050:213:44;3135:4;-1:-1:-1;;;;;;3158:58:44;;3173:43;3158:58;;:98;;-1:-1:-1;;;;;;;;;;1189:51:54;;;3220:36:44;3151:105;3050:213;-1:-1:-1;;3050:213:44:o;22911:280:130:-;22979:17;:15;:17::i;:::-;1901:20;1785:7;1901:2;:20;:::i;:::-;23010:16;:26;23006:86;;;23059:22;;;;;;;;;;;;;;23006:86;23101:12;:31;;;23147:37;;689:25:145;;;23147:37:130;;677:2:145;662:18;23147:37:130;;;;;;;;22911:280;:::o;12587:1179::-;12674:34;12700:7;12674:25;:34::i;:::-;12718:30;12738:9;12718:19;:30::i;:::-;12758:29;12777:9;12758:18;:29::i;:::-;-1:-1:-1;;;;;12802:36:130;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;12798:107;;;12872:22;;;;;;;;;;;;;;12798:107;-1:-1:-1;;;;;12938:28:130;;;12915:20;12938:28;;;:19;:28;;;;;;;;;12915:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13061:19;;13141:36;13110:9;-1:-1:-1;;;;;13095:40:130;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:82;;;;;;;;:::i;:::-;;13091:384;;13212:51;;-1:-1:-1;;;13212:51:130;;-1:-1:-1;;;;;15778:55:145;;;13212:51:130;;;15760:74:145;13261:1:130;15850:18:145;;;15843:34;13212:39:130;;;;;15733:18:145;;13212:51:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13193:70;;13091:384;;;13330:32;13299:9;-1:-1:-1;;;;;13284:40:130;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:78;;;;;;;;:::i;:::-;;13280:195;;13397:67;;-1:-1:-1;;;13397:67:130;;-1:-1:-1;;;;;15778:55:145;;;13397:67:130;;;15760:74:145;15850:18;;;15843:34;;;13397:39:130;;;;;15733:18:145;;13397:67:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;13378:86;;13280:195;-1:-1:-1;;;;;13485:30:130;;;;;;;:21;:30;;;;;;;;:41;;;;;;;;;;;;:60;;;13574:36;;;:27;:36;;;;;:47;;;;;;;;:54;;-1:-1:-1;;13574:54:130;13624:4;13574:54;;;;;;13639:27;;;:18;:27;;;;;:43;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;13639:43:130;;;;;13698:61;;16642:34:145;;;16692:18;;16685:43;;;;16744:18;;;16737:34;;;13698:61:130;;16569:2:145;16554:18;13698:61:130;;;;;;;12664:1102;;;12587:1179;;:::o;19302:120::-;19362:17;:15;:17::i;:::-;19389:26;19405:9;19389:15;:26::i;:::-;19302:120;:::o;18360:::-;18420:17;:15;:17::i;:::-;18447:26;18460:12;18447;:26::i;13772:691::-;13861:34;13887:7;13861:25;:34::i;:::-;13905:29;13924:9;13905:18;:29::i;:::-;13944:42;13964:10;13976:9;13944:19;:42::i;:::-;-1:-1:-1;;;;;14002:36:130;;;;;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;13997:110;;14072:24;;;;;;;;;;;;;;13997:110;-1:-1:-1;;;;;14117:36:130;;;14167:5;14117:36;;;:27;:36;;;;;;;;:47;;;;;;;;;;;;:55;;-1:-1:-1;;14117:55:130;;;14182:30;;;:21;:30;;;;;:41;;;;;;;;;:45;14237:44;14145:7;14154:9;14237:24;:44::i;:::-;14411:45;;;-1:-1:-1;;;;;17035:15:145;;;17017:34;;17087:15;;17082:2;17067:18;;17060:43;14411:45:130;;16929:18:145;14411:45:130;;;;;;;;13772:691;;:::o;22137:467::-;22260:15;;22192:7;;-1:-1:-1;;;;;22260:15:130;22192:7;22355:21;1785:7;22355:3;:21;:::i;:::-;22338:12;;22316:19;;:34;;;;:::i;:::-;22315:62;;;;:::i;:::-;22286:91;-1:-1:-1;22387:24:130;22498:21;1785:7;22498:3;:21;:::i;:::-;22449:44;;-1:-1:-1;;;22449:44:130;;22487:4;22449:44;;;2686:74:145;-1:-1:-1;;;;;22449:29:130;;;;;2659:18:145;;22449:44:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22427:19;;:66;;;;:::i;:::-;22426:94;;;;:::i;:::-;22387:133;;22581:16;22560:18;22538:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;22531:66;;;;;22137:467;:::o;3832:82::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3832:82:130;;-1:-1:-1;3832:82:130;;-1:-1:-1;3832:82:130:o;5280:145:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5393:25:::1;5404:4;5410:7;5393:10;:25::i;:::-;5280:145:::0;;;:::o;22723:182:130:-;22792:17;:15;:17::i;:::-;22819:19;:32;;;22866;;689:25:145;;;22866:32:130;;677:2:145;662:18;22866:32:130;543:177:145;20224:1907:130;2526:21:49;:19;:21::i;:::-;20306:10:130::1;20288:15;20353:28:::0;;;:19:::1;:28;::::0;;;;20440:15:::1;::::0;20353:28;;-1:-1:-1;;;;;20440:15:130;;::::1;::::0;20535:21:::1;1785:7;20535:3;:21;:::i;:::-;20518:12;;20496:19;;:34;;;;:::i;:::-;20495:62;;;;:::i;:::-;20466:91:::0;-1:-1:-1;20567:24:130::1;20678:21;1785:7;20678:3;:21;:::i;:::-;20629:44;::::0;-1:-1:-1;;;20629:44:130;;20667:4:::1;20629:44;::::0;::::1;2686:74:145::0;-1:-1:-1;;;;;20629:29:130;::::1;::::0;::::1;::::0;2659:18:145;;20629:44:130::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20607:19;;:66;;;;:::i;:::-;20606:94;;;;:::i;:::-;-1:-1:-1::0;;;;;20144:28:130;;;20092:14;20144:28;;;:19;:28;;;;;;;;;20118:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20567:133;;-1:-1:-1;20710:1415:130::1;;20748:22;::::0;::::1;:29:::0;;-1:-1:-1;;20748:29:130::1;20773:4;20748:29:::0;;::::1;::::0;;;20817:19:::1;::::0;20792:22;;::::1;:44:::0;20922:48:::1;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;20957:11:::1;::::0;20922:48:::1;::::0;;-1:-1:-1;;;;;20957:11:130::1;20922;:48::i;:::-;20985:143;21031:7;21048:4;21098:16;21077:18;21055:19;;:40;;;;:::i;:::-;:59;;;;:::i;:::-;20985:11;::::0;-1:-1:-1;;;;;20985:11:130::1;::::0;:143;;:28:::1;:143::i;:::-;21479:53;;;;;;;;;;;;;;;;;::::0;21513:18:::1;21479:11;:53::i;:::-;21550:22:::0;;21546:175:::1;;21592:39;::::0;;;;::::1;::::0;;;::::1;::::0;;::::1;;::::0;::::1;::::0;21619:11:::1;::::0;21592:39:::1;::::0;;-1:-1:-1;;;;;21619:11:130::1;21592;:39::i;:::-;21674:11;::::0;21649::::1;::::0;:57:::1;::::0;-1:-1:-1;;;;;21649:11:130;;::::1;::::0;21674::::1;21687:18:::0;21649:24:::1;:57::i;:::-;21734:49;;;;;;;;;;;;;;;;;::::0;21766:16:::1;21734:11;:49::i;:::-;21801:20:::0;;21797:252:::1;;21841:93;;;;;;;;;;;;;;;;;;21895:14;-1:-1:-1::0;;;;;21895:36:130::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21841:11;:93::i;:::-;21952:82;21977:14;-1:-1:-1::0;;;;;21977:36:130::1;;:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;21952:11;::::0;-1:-1:-1;;;;;21952:11:130::1;::::0;22017:16;21952:24:::1;:82::i;:::-;22094:19;::::0;22068:46:::1;::::0;;-1:-1:-1;;;;;15778:55:145;;15760:74;;15865:2;15850:18;;15843:34;;;;22068:46:130::1;::::0;15733:18:145;22068:46:130::1;;;;;;;20710:1415;20278:1853;;;;;2568:20:49::0;1808:1;3074:7;:22;2894:209;2568:20;20224:1907:130:o;6389:214:44:-;-1:-1:-1;;;;;6484:23:44;;965:10:52;6484:23:44;6476:83;;;;-1:-1:-1;;;6476:83:44;;17981:2:145;6476:83:44;;;17963:21:145;18020:2;18000:18;;;17993:30;18059:34;18039:18;;;18032:62;18130:17;18110:18;;;18103:45;18165:19;;6476:83:44;;;;;;;;;6570:26;6582:4;6588:7;6570:11;:26::i;:::-;6389:214;;:::o;3143:195:67:-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;18397:2:145;1629:80:67;;;18379:21:145;18436:2;18416:18;;;18409:30;18475:34;18455:18;;;18448:62;-1:-1:-1;;;18526:18:145;;;18519:42;18578:19;;1629:80:67;18195:408:145;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;18810:2:145;1719:87:67;;;18792:21:145;18849:2;18829:18;;;18822:30;18888:34;18868:18;;;18861:62;-1:-1:-1;;;18939:18:145;;;18932:42;18991:19;;1719:87:67;18608:408:145;1719:87:67;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;19428:240:130:-:0;19492:17;:15;:17::i;:::-;19519:25;19538:5;19519:18;:25::i;:::-;19554:18;:26;;-1:-1:-1;;;;;;19554:26:130;-1:-1:-1;;;;;19554:26:130;;;;;;;;;19628:11;;19595:66;;;19628:11;;;;17017:34:145;;17082:2;17067:18;;17060:43;;;;19595:66:130;;16929:18:145;19595:66:130;16782:327:145;3657:220:67;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;18397:2:145;1629:80:67;;;18379:21:145;18436:2;18416:18;;;18409:30;18475:34;18455:18;;;18448:62;-1:-1:-1;;;18526:18:145;;;18519:42;18578:19;;1629:80:67;18195:408:145;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;18810:2:145;1719:87:67;;;18792:21:145;18849:2;18829:18;;;18822:30;18888:34;18868:18;;;18861:62;-1:-1:-1;;;18939:18:145;;;18932:42;18991:19;;1719:87:67;18608:408:145;1719:87:67;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;2762:131::-:0;2840:7;2080:4;-1:-1:-1;;;;;2089:6:67;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:67;;19563:2:145;2064:92:67;;;19545:21:145;19602:2;19582:18;;;19575:30;19641:34;19621:18;;;19614:62;19712:26;19692:18;;;19685:54;19756:19;;2064:92:67;19361:420:145;2064:92:67;-1:-1:-1;1030:66:64::1;2762:131:67::0;:::o;14900:998:130:-;2526:21:49;:19;:21::i;:::-;14976:26:130::1;:24;:26::i;:::-;15029:10;15012:14;15085:26:::0;;;:18:::1;:26;::::0;;;;;;;15049:62;;;;;;::::1;::::0;;;;;;;;;;;;15085:26;;15049:62;;::::1;15085:26:::0;15049:62;;::::1;;;;;;;;;;;;;;;;::::0;;-1:-1:-1;;;;;15049:62:130::1;::::0;;;;;::::1;::::0;::::1;;::::0;;::::1;;;;;;;;;;;15122:24;15162:9:::0;15174:1:::1;15162:13;;15157:533;15181:16;:23;15177:1;:27;15157:533;;;15364:16;15381:1;15364:19;;;;;;;;:::i;:::-;;::::0;;::::1;::::0;;;;;;15349:72:::1;::::0;-1:-1:-1;;;15349:72:130;;-1:-1:-1;;;;;15778:55:145;;;15349:72:130::1;::::0;::::1;15760:74:145::0;15850:18;;;15843:34;;;15349:49:130;;::::1;::::0;::::1;::::0;15733:18:145;;15349:72:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15330:91:::0;-1:-1:-1;15439:21:130;;15435:229:::1;;-1:-1:-1::0;;;;;15480:29:130;::::1;;::::0;;;:21:::1;:29;::::0;;;;15510:19;;15534:16;;15480:29;15510:16;;15527:1;;15510:19;::::1;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15480:50:130::1;-1:-1:-1::0;;;;;15480:50:130::1;;;;;;;;;;;;;:70;;;;;;;:::i;:::-;;;;;;;;15568:81;;;;;;;;;;;;;;;;;::::0;15598:21:::1;:29;15620:6;-1:-1:-1::0;;;;;15598:29:130::1;-1:-1:-1::0;;;;;15598:29:130::1;;;;;;;;;;;;:50;15628:16;15645:1;15628:19;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1::0;;;;;15598:50:130::1;-1:-1:-1::0;;;;;15598:50:130::1;;;;;;;;;;;;;15568:11;:81::i;:::-;15206:3:::0;::::1;::::0;::::1;:::i;:::-;;;;15157:533;;;-1:-1:-1::0;15700:11:130::1;::::0;:66:::1;::::0;-1:-1:-1;;;;;15700:11:130::1;15729:6:::0;15745:4:::1;15752:13:::0;15700:28:::1;:66::i;:::-;-1:-1:-1::0;;;;;15776:27:130;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:57:::0;;15820:13;;15776:27;:57:::1;::::0;15820:13;;15776:57:::1;:::i;:::-;::::0;;;-1:-1:-1;;15848:43:130::1;::::0;;-1:-1:-1;;;;;15778:55:145;;15760:74;;15865:2;15850:18;;15843:34;;;15848:43:130::1;::::0;15733:18:145;15848:43:130::1;;;;;;;;14966:932;;;2568:20:49::0;1808:1;3074:7;:22;2894:209;16038:1554:130;2526:21:49;:19;:21::i;:::-;16116:26:130::1;:24;:26::i;:::-;16169:10;16152:14;16226:26:::0;;;:18:::1;:26;::::0;;;;;;;16363:19:::1;::::0;16302::::1;:27:::0;;;;;;:40:::1;;::::0;16226:26;;16152:14;16363:19;16302:58:::1;::::0;16345:15;;16302:58:::1;:::i;:::-;:80;16298:140;;;16405:22;;;;;;;;;;;;;;16298:140;16447:11;::::0;:49:::1;::::0;-1:-1:-1;;;;;16447:11:130::1;16472:6:::0;16480:15;16447:24:::1;:49::i;:::-;16511:9;16506:951;16530:23:::0;;16526:27;::::1;16506:951;;;16574:16;16593;16610:1;16593:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;16593:19:130::1;::::0;-1:-1:-1;16630:60:130::1;16593:19:::0;-1:-1:-1;;;16630:26:130::1;:60::i;:::-;16626:804;;;16729:63;::::0;;;;-1:-1:-1;;;;;15778:55:145;;;16729:63:130::1;::::0;::::1;15760:74:145::0;15850:18;;;15843:34;;;16729:38:130;::::1;::::0;::::1;::::0;15733:18:145;;16729:63:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16710:82;;16810:20;16833:21;:29;16855:6;-1:-1:-1::0;;;;;16833:29:130::1;-1:-1:-1::0;;;;;16833:29:130::1;;;;;;;;;;;;:50;16863:16;16880:1;16863:19;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;16863:19:130::1;16833:50:::0;;;::::1;::::0;;;;;;;;;;-1:-1:-1;16905:31:130;;::::1;16901:259;;;16967:57;::::0;::::1;::::0;;::::1;::::0;::::1;20422:25:145::0;;;20463:18;;;20456:34;;;20395:18;;16967:57:130::1;20248:248:145::0;16901:259:130::1;-1:-1:-1::0;;;;;17071:29:130;::::1;;::::0;;;:21:::1;:29;::::0;;;;17101:19;;17125:16;;17071:29;17101:16;;17118:1;;17101:19;::::1;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;;::::1;::::0;-1:-1:-1;;;;;17101:19:130::1;17071:50:::0;;;::::1;::::0;;;;;;;;:70;;:50;;17101:19;17071:70:::1;::::0;;;::::1;:::i;:::-;::::0;;;-1:-1:-1;;16692:482:130::1;16626:804;;;17304:23:::0;;17287:16;;17304:27:::1;::::0;17330:1:::1;::::0;17304:27:::1;:::i;:::-;17287:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1::0;;;;;17287:45:130::1;17265:16;17282:1;17265:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1::0;;;;;17265:67:130::1;;;;;-1:-1:-1::0;;;;;17265:67:130::1;;;;;;17350:16;:22;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;17350:22:130;;;;;-1:-1:-1;;;;;;17350:22:130::1;::::0;;;;;17390:25:::1;17406:8:::0;17390:15:::1;:25::i;:::-;-1:-1:-1::0;16555:3:130;::::1;::::0;::::1;:::i;:::-;;;;16506:951;;;-1:-1:-1::0;;;;;;17466:27:130;::::1;;::::0;;;:19:::1;:27;::::0;;;;:40:::1;;:59:::0;;17510:15;;17466:27;:59:::1;::::0;17510:15;;17466:59:::1;:::i;:::-;::::0;;;-1:-1:-1;;17540:45:130::1;::::0;;-1:-1:-1;;;;;15778:55:145;;15760:74;;15865:2;15850:18;;15843:34;;;17540:45:130::1;::::0;15733:18:145;17540:45:130::1;15578:305:145::0;24295:571:130;2526:21:49;:19;:21::i;:::-;24388:17:130::1;:15;:17::i;:::-;24420:13;::::0;::::1;;24415:68;;24456:16;;;;;;;;;;;;;;24415:68;-1:-1:-1::0;;;;;20144:28:130;;;20092:14;20144:28;;;:19;:28;;;;;;;;;20118:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24492:75:::1;;24537:19;;-1:-1:-1::0;;;24537:19:130::1;;;;;;;;;;;24492:75;-1:-1:-1::0;;;;;24599:28:130;;::::1;24576:20;24599:28:::0;;;:19:::1;:28;::::0;;;;;;;;24576:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;::::1;::::0;;;;::::1;;::::0;::::1;;;;::::0;;;;24637:32:::1;24619:7:::0;24637:23:::1;:32::i;:::-;-1:-1:-1::0;;;;;24686:28:130;;::::1;;::::0;;;:19:::1;:28;::::0;;;;;;;24679:35;;-1:-1:-1;;;;;;24679:35:130::1;::::0;;-1:-1:-1;24679:35:130;::::1;::::0;;;;::::1;::::0;;::::1;::::0;;-1:-1:-1;;24679:35:130::1;::::0;;24725:11:::1;::::0;24764:19;;::::1;::::0;24725:59;;-1:-1:-1;;;24725:59:130;;15778:55:145;;;24725:59:130::1;::::0;::::1;15760:74:145::0;15850:18;;;15843:34;;;;24725:11:130;;::::1;::::0;:20:::1;::::0;15733:18:145;;24725:59:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;24839:19:130::1;::::0;;::::1;::::0;24799:60:::1;::::0;;-1:-1:-1;;;;;16660:15:145;;;16642:34;;16712:15;;16692:18;;;16685:43;;;;16744:18;;16737:34;24799:60:130::1;::::0;16569:2:145;16554:18;24799:60:130::1;;;;;;;24378:488;2568:20:49::0;1808:1;3074:7;:22;2894:209;2085:101:46;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;18875:229:130:-:0;18940:17;:15;:17::i;:::-;18994:4;;:20;;-1:-1:-1;;;18994:20:130;;;;;689:25:145;;;18967:16:130;;-1:-1:-1;;;;;18994:4:130;;:12;;662:18:145;;18994:20:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18994:20:130;;;;;;;;;;;;:::i;:::-;:29;;;18967:57;;19034:28;19053:8;19034:18;:28::i;:::-;19072:25;19088:8;19072:15;:25::i;18041:313::-;18103:17;:15;:17::i;:::-;18157:4;;:20;;-1:-1:-1;;;18157:20:130;;;;;689:25:145;;;18130:16:130;;-1:-1:-1;;;;;18157:4:130;;:12;;662:18:145;;18157:20:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;18157:20:130;;;;;;;;;;;;:::i;:::-;:29;;;18130:57;;18197:28;18216:8;18197:18;:28::i;:::-;18239:60;-1:-1:-1;;;;;18239:26:130;;-1:-1:-1;;;18239:26:130;:60::i;:::-;18235:113;;;18315:22;18328:8;18315:12;:22::i;9468:2107::-;3279:19:48;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:48;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:48;1713:19:51;:23;;;3387:66:48;;-1:-1:-1;3436:12:48;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:48;;22799:2:145;3325:201:48;;;22781:21:145;22838:2;22818:18;;;22811:30;22877:34;22857:18;;;22850:62;22948:16;22928:18;;;22921:44;22982:19;;3325:201:48;22597:410:145;3325:201:48;3536:12;:16;;-1:-1:-1;;3536:16:48;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:48;;;;;3562:65;9571:16:130::1;:14;:16::i;:::-;9597:24;:22;:24::i;:::-;9631:22;:20;:22::i;:::-;9664:49;4474:27;2365:4:44;9664:13:130;:49::i;:::-;9724:48;9751:6;:19;;;9724:18;:48::i;:::-;9782:39;9801:6;:19;;;9782:18;:39::i;:::-;9850:12:::0;;9831:32:::1;::::0;:18:::1;:32::i;:::-;9873:43;9892:6;:23;;;9873:18;:43::i;:::-;9926:44;9945:6;:24;;;9926:18;:44::i;:::-;9985:20;::::0;::::1;::::0;:25;9981:95:::1;;10026:39;10045:6;:19;;;10026:18;:39::i;:::-;10098:12:::0;;10085:4:::1;:26:::0;;-1:-1:-1;;;;;10085:26:130;;::::1;-1:-1:-1::0;;;;;;10085:26:130;;::::1;;::::0;;;10135:19:::1;::::0;::::1;::::0;10121:11:::1;:33:::0;;;;;::::1;::::0;::::1;;::::0;;10168:27:::1;::::0;::::1;::::0;10098:12:::1;10168:32:::0;10164:89:::1;;10223:19;;;;;;;;;;;;;;10164:89;10284:27;::::0;::::1;::::0;10262:19:::1;:49:::0;10336:20:::1;::::0;::::1;::::0;10321:12:::1;:35:::0;10382:21:::1;::::0;::::1;::::0;10366:13:::1;:37:::0;;-1:-1:-1;;10366:37:130::1;::::0;::::1;;::::0;;;::::1;::::0;;10429:21:::1;::::0;::::1;::::0;10413:13:::1;::::0;:37:::1;::::0;:13;:37:::1;:::i;:::-;-1:-1:-1::0;10479:23:130::1;::::0;::::1;::::0;10460:16:::1;::::0;:42:::1;::::0;:16;:42:::1;:::i;:::-;-1:-1:-1::0;10530:23:130::1;::::0;::::1;::::0;10512:15:::1;:41:::0;;-1:-1:-1;;;;;;10512:41:130;;::::1;-1:-1:-1::0;;;;;10512:41:130;;::::1;;::::0;;10577:19:::1;::::0;::::1;::::0;10563:11:::1;:33:::0;;;::::1;::::0;;::::1;::::0;;;::::1;::::0;;10626:19;;::::1;::::0;10606:11:::1;:40:::0;;;::::1;::::0;;::::1;;::::0;;10675:24:::1;::::0;::::1;::::0;10656:16:::1;:43:::0;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;10710:47:::1;::::0;4474:27:::1;::::0;10710:10:::1;:47::i;:::-;10789:4;;;;;;;;;-1:-1:-1::0;;;;;10789:4:130::1;-1:-1:-1::0;;;;;10789:16:130::1;;:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;10768:8;:40:::0;;-1:-1:-1;;;;;;10768:40:130::1;-1:-1:-1::0;;;;;10768:40:130;;::::1;;::::0;;10845:11:::1;::::0;:23:::1;::::0;;;;;;;-1:-1:-1;;10845:11:130;;;::::1;::::0;:21:::1;::::0;:23:::1;::::0;;::::1;::::0;-1:-1:-1;;10845:23:130;;;;;;;;:11;:23:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;::::0;;::::1;-1:-1:-1::0;;10845:23:130::1;::::0;::::1;;::::0;::::1;::::0;;;::::1;::::0;::::1;:::i;:::-;10819:49;;10878:36;10931:6;:13;10947:1;10931:17;;;;:::i;:::-;10917:32;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;-1:-1:-1;10917:32:130::1;;10878:71;;10965:9;10960:103;10984:6;:13;10980:1;:17;10960:103;;;11043:6;11050:1;11043:9;;;;;;;;:::i;:::-;;;;;;;11018:19;11038:1;11018:22;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11018:34:130;;::::1;:22;::::0;;::::1;::::0;;;;;;;:34;10999:3;::::1;::::0;::::1;:::i;:::-;;;;10960:103;;;-1:-1:-1::0;11135:11:130::1;::::0;11093:26;;-1:-1:-1;;;;;11135:11:130;;::::1;::::0;11073:19;;11093:30:::1;::::0;11135:11;;11093:30:::1;:::i;:::-;11073:51;;;;;;;;:::i;:::-;;;;;;:74;-1:-1:-1::0;;;;;11073:74:130::1;;;-1:-1:-1::0;;;;;11073:74:130::1;;;::::0;::::1;11219:4;11157:19;11206:1;11177:19;:26;:30;;;;:::i;:::-;11157:51;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;11157:67:130;;::::1;:51;::::0;;::::1;::::0;;;;;:67;11336:8:::1;::::0;11359:13:::1;::::0;::::1;::::0;11389:16:::1;::::0;::::1;::::0;11336:106:::1;::::0;;;;:8;;;::::1;::::0;:22:::1;::::0;:106:::1;::::0;11359:13;11374::::1;::::0;11415:4:::1;::::0;11422:19;;11336:106:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;11312:9;:130:::0;11453:36;;::::1;::::0;:14:::1;::::0;:36:::1;::::0;::::1;::::0;::::1;:::i;:::-;;11505:63;11525:9;;11536:13;11551:6;:16;;;11505:63;;;;;;;;:::i;:::-;;;;;;;;9561:2014;;3651:14:48::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:48;;;3721:14;;-1:-1:-1;29875:36:145;;3721:14:48;;29863:2:145;29848:18;3721:14:48;29723:194:145;11581:341:130;11814:16;;11832:10;:12;;11724:14;;;;;;11796:49;;-1:-1:-1;;;;;11814:16:130;;11724:14;11832:12;;;:::i;:::-;;;;;11796:17;:49::i;:::-;11772:73;;11862:53;11873:13;11888:6;11896:7;11905:9;11862:10;:53::i;:::-;11855:60;;;;;11581:341;;;;;;:::o;19859:171::-;19923:18;;-1:-1:-1;;;;;19923:18:130;19909:10;:32;19905:89;;19964:19;;;;;;;;;;;;;;19905:89;20003:20;:18;:20::i;3221:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;23364:453::-;2526:21:49;:19;:21::i;:::-;23440:10:130::1;23460:34;23440:10:::0;23460:25:::1;:34::i;:::-;23504:32;23528:7;23504:23;:32::i;:::-;-1:-1:-1::0;;;;;23569:28:130;;::::1;23546:20;23569:28:::0;;;:19:::1;:28;::::0;;;;;;;23546:51;;::::1;::::0;::::1;::::0;;;;;;::::1;::::0;;;;::::1;::::0;;;;::::1;::::0;::::1;::::0;::::1;::::0;;::::1;::::0;::::1;;;::::0;;;;23614:28;;;-1:-1:-1;;;;;;23607:35:130;;::::1;::::0;;;;;;;-1:-1:-1;;23607:35:130;;::::1;::::0;;;23659:18:::1;:27:::0;;;;;23546:51;;23652:34:::1;::::0;23659:27;23652:34:::1;:::i;:::-;23697:11;::::0;23727:19:::1;::::0;::::1;::::0;23697:50:::1;::::0;-1:-1:-1;;;23697:50:130;;-1:-1:-1;;;;;15778:55:145;;;23697:50:130::1;::::0;::::1;15760:74:145::0;15850:18;;;15843:34;;;;23697:11:130;::::1;::::0;:20:::1;::::0;15733:18:145;;23697:50:130::1;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;23790:19:130::1;::::0;;::::1;::::0;23762:48:::1;::::0;;-1:-1:-1;;;;;15778:55:145;;15760:74;;15850:18;;;15843:34;;;;23762:48:130::1;::::0;15733:18:145;23762:48:130::1;;;;;;;23412:405;;2568:20:49::0;1808:1;3074:7;:22;2894:209;1867:54:130;1901:20;1785:7;1901:2;:20;:::i;:::-;1867:54;:::o;3136:27::-;;;;;;;:::i;11928:653::-;12112:14;;1611:42;-1:-1:-1;;;;;12192:20:130;;;12188:65;;-1:-1:-1;12236:6:130;12188:65;12273:9;12262:20;;12293:31;12327:14;12293:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;12293:48:130;;;;;;;;;;;;;;;;-1:-1:-1;;12361:4:130;;12408:9;;12429:19;;12293:48;;-1:-1:-1;;;;;;12361:4:130;;;;:33;;-1:-1:-1;12408:9:130;;-1:-1:-1;12419:8:130;;-1:-1:-1;12429:19:130;;12440:7;;12429:19;;;:::i;:::-;;;;;;;;;;;;;12450:5;12457:1;12460:9;12471:14;12361:134;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;12352:143;;12511:63;12523:6;12531:8;12549:4;12556:6;12564:9;12511:63;;;;;;;;;;:::i;:::-;;;;;;;;12146:435;;11928:653;;;;;;;:::o;5705:147:44:-;4929:7;4955:12;;;:6;:12;;;;;:22;;;2798:16;2809:4;2798:10;:16::i;:::-;5819:26:::1;5831:4;5837:7;5819:11;:26::i;23233:125:130:-:0;-1:-1:-1;;;;;3459:29:44;;23296:4:130;3459:29:44;;;:12;;:29;:12;:29;;;;;23319:32:130;3350:145:44;2335:198:46;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:46;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:46;;33365:2:145;2415:73:46::1;::::0;::::1;33347:21:145::0;33404:2;33384:18;;;33377:30;33443:34;33423:18;;;33416:62;33514:8;33494:18;;;33487:36;33540:19;;2415:73:46::1;33163:402:145::0;2415:73:46::1;2498:28;2517:8;2498:18;:28::i;5942:148:130:-:0;6021:10;3436:4:44;3459:29;;;:12;;:29;:12;:29;;;;;5992:92:130;;6055:18;;;;;;;;;;;;;;6245:156;-1:-1:-1;;;;;20144:28:130;;;20092:14;20144:28;;;:19;:28;;;;;;;;;20118:54;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6320:75;;6365:19;;-1:-1:-1;;;6365:19:130;;;;;;;;;;;6407:162;-1:-1:-1;;;;;6483:28:130;;;;;;:17;:28;;;;;;;;6478:85;;6534:18;;;;;;;;;;;;;;18736:133;-1:-1:-1;;;;;18810:22:130;;18806:56;;18841:21;;;;;;;;;;;;;;19110:186;19173:29;19192:9;19173:18;:29::i;:::-;-1:-1:-1;;;;;19212:28:130;;19243:5;19212:28;;;:17;:28;;;;;;;;;:36;;-1:-1:-1;;19212:36:130;;;19263:26;;2686:74:145;;;19263:26:130;;2659:18:145;19263:26:130;2540:226:145;18486:244:130;-1:-1:-1;;;;;18553:31:130;;;;;;:17;:31;;;;;;;;18549:85;;;18607:16;;;;;;;;;;;;;;18549:85;-1:-1:-1;;;;;18643:31:130;;;;;;:17;:31;;;;;;;;;:38;;-1:-1:-1;;18643:38:130;18677:4;18643:38;;;18696:27;;2686:74:145;;;18696:27:130;;2659:18:145;18696:27:130;2540:226:145;6575:171:130;6678:9;-1:-1:-1;;;;;6667:20:130;:7;-1:-1:-1;;;;;6667:20:130;;6663:77;;6710:19;;;;;;;;;;;;;;14469:425;-1:-1:-1;;;;;14595:27:130;;14558:34;14595:27;;;:18;:27;;;;;;14632:256;14656:23;;14652:27;;14632:256;;;14727:9;-1:-1:-1;;;;;14704:32:130;:16;14721:1;14704:19;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;14704:19:130;:32;14700:178;;14795:23;;14778:16;;14795:27;;14821:1;;14795:27;:::i;:::-;14778:45;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;-1:-1:-1;;;;;14778:45:130;14756:16;14773:1;14756:19;;;;;;;;:::i;:::-;;;;;;;;;:67;;;;;-1:-1:-1;;;;;14756:67:130;;;;;-1:-1:-1;;;;;14756:67:130;;;;;;14841:16;:22;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;14841:22:130;;;;;-1:-1:-1;;;;;;14841:22:130;;;;;;14700:178;14681:3;;;;:::i;:::-;;;;14632:256;;;;14548:346;14469:425;;:::o;3789:103:44:-;3855:30;3866:4;965:10:52;3855::44;:30::i;7938:233::-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8016:149;;8059:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8059:29:44;;;;;;;;;:36;;-1:-1:-1;;8059:36:44;8091:4;8059:36;;;8141:12;965:10:52;;886:96;8141:12:44;-1:-1:-1;;;;;8114:40:44;8132:7;-1:-1:-1;;;;;8114:40:44;8126:4;8114:40;;;;;;;;;;7938:233;;:::o;2601:287:49:-;1851:1;2733:7;;:19;2725:63;;;;-1:-1:-1;;;2725:63:49;;33772:2:145;2725:63:49;;;33754:21:145;33811:2;33791:18;;;33784:30;33850:33;33830:18;;;33823:61;33901:18;;2725:63:49;33570:355:145;2725:63:49;1851:1;2863:7;:18;2601:287::o;6994:145:35:-;7061:71;7124:2;7128;7077:54;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;7077:54:35;;;;;;;;;;;;;;-1:-1:-1;;;;;7077:54:35;;;;;7061:15;:71::i;1355:203:76:-;1482:68;;-1:-1:-1;;;;;16660:15:145;;;1482:68:76;;;16642:34:145;16712:15;;16692:18;;;16685:43;16744:18;;;16737:34;;;1455:96:76;;1475:5;;1505:27;;16554:18:145;;1482:68:76;;;;-1:-1:-1;;1482:68:76;;;;;;;;;;;;;;-1:-1:-1;;;;;1482:68:76;-1:-1:-1;;;;;;1482:68:76;;;;;;;;;;1455:19;:96::i;6548:139:35:-;6612:68;6672:2;6676;6628:51;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;6628:51:35;;;;;;;;;;;;;;-1:-1:-1;;;;;6628:51:35;;;;;6612:15;:68::i;941:175:76:-;1050:58;;-1:-1:-1;;;;;15778:55:145;;1050:58:76;;;15760:74:145;15850:18;;;15843:34;;;1023:86:76;;1043:5;;-1:-1:-1;;;1073:23:76;15733:18:145;;1050:58:76;15578:305:145;2894:209:49;1808:1;3074:7;:22;2894:209::o;8342:234:44:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;8421:149;;;8495:5;8463:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8463:29:44;;;;;;;;;;:37;;-1:-1:-1;;8463:37:44;;;8519:40;965:10:52;;8463:12:44;;8519:40;;8495:5;8519:40;8342:234;;:::o;24872:66:130:-;1355:13:46;:11;:13::i;2494:922:64:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:64;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:64;;;;;;;;-1:-1:-1;;3046:52:64;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:64;;34773:2:145;3262:56:64;;;34755:21:145;34812:2;34792:18;;;34785:30;34851:34;34831:18;;;34824:62;34922:16;34902:18;;;34895:44;34956:19;;3262:56:64;34571:410:145;3042:291:64;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:64;;35188:2:145;3140:82:64;;;35170:21:145;35227:2;35207:18;;;35200:30;35266:34;35246:18;;;35239:62;35337:11;35317:18;;;35310:39;35366:19;;3140:82:64;34986:405:145;3140:82:64;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;6096:143:130:-;6169:10;20092:14;20144:28;;;:19;:28;;;;;;;;;20118:54;;;;;;;;;-1:-1:-1;;;;;20118:54:130;;;;;;;;;;;;;;;;;;;;;;;;;;6155:78;;6203:19;;-1:-1:-1;;;6203:19:130;;;;;;;;;;;1349:282:84;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;:::-;1536:88;1349:282;-1:-1:-1;;;1349:282:84:o;23823:466:130:-;-1:-1:-1;;;;;23928:27:130;;23892:33;23928:27;;;:18;:27;;;;;;;;23892:63;;;;;;;;;;;;;;;;;;;23928:27;;23892:63;;;23928:27;23892:63;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;23892:63:130;;;;;;;;;;;;;;;;;;;;;;;24036:9;24031:252;24055:16;:23;24051:1;:27;24031:252;;;24226:16;24243:1;24226:19;;;;;;;;:::i;:::-;;;;;;;;;;;24211:61;;;;;-1:-1:-1;;;;;2704:55:145;;;24211:61:130;;;2686:74:145;24211:52:130;;;;;;2659:18:145;;24211:61:130;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24080:3;;;;;:::i;:::-;;;;24031:252;;1620:130:46;1534:6;;-1:-1:-1;;;;;1534:6:46;965:10:52;1683:23:46;1675:68;;;;-1:-1:-1;;;1675:68:46;;35598:2:145;1675:68:46;;;35580:21:145;;;35617:18;;;35610:30;35676:34;35656:18;;;35649:62;35728:18;;1675:68:46;35396:356:145;2687:187:46;2779:6;;;-1:-1:-1;;;;;2795:17:46;;;-1:-1:-1;;;;;;2795:17:46;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1024:95::-;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;35959:2:145;5366:69:48;;;35941:21:145;35998:2;35978:18;;;35971:30;36037:34;36017:18;;;36010:62;-1:-1:-1;;;36088:18:145;;;36081:41;36139:19;;5366:69:48;35757:407:145;5366:69:48;1086:26:46::1;:24;:26::i;1889:111:49:-:0;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;35959:2:145;5366:69:48;;;35941:21:145;35998:2;35978:18;;;35971:30;36037:34;36017:18;;;36010:62;-1:-1:-1;;;36088:18:145;;;36081:41;36139:19;;5366:69:48;35757:407:145;5366:69:48;1959:34:49::1;:32;:34::i;2838:65:44:-:0;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;35959:2:145;5366:69:48;;;35941:21:145;35998:2;35978:18;;;35971:30;36037:34;36017:18;;;36010:62;-1:-1:-1;;;36088:18:145;;;36081:41;36139:19;;5366:69:48;35757:407:145;7523:247:44;7606:25;4955:12;;;:6;:12;;;;;;:22;;;;7662:34;;;;7711:52;;4955:22;;7662:34;;4955:22;;:12;;7711:52;;7606:25;7711:52;7596:174;7523:247;;:::o;4749:279:6:-;4867:36;;-1:-1:-1;;4884:10:6;36346:2:145;36342:15;36338:53;4867:36:6;;;36326:66:145;36408:12;;;36401:28;;;4823:7:6;;;;36445:12:145;;4867:36:6;;;;;;;;;;;;4857:47;;;;;;4842:62;;4968:53;5005:9;5016:4;4968:36;:53::i;:::-;4961:60;4749:279;-1:-1:-1;;;;4749:279:6:o;19674:179:130:-;19743:18;;;19723:11;:39;;-1:-1:-1;;;;;19743:18:130;;-1:-1:-1;;;;;;19723:39:130;;;;;;;19772:25;;;19812:34;;-1:-1:-1;2686:74:145;;19812:34:130;;2674:2:145;2659:18;19812:34:130;;;;;;;19674:179::o;4173:501:44:-;3436:4;3459:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3459:29:44;;;;;;;;;;;;4256:412;;4444:39;4475:7;4444:30;:39::i;:::-;4554:49;4593:4;4600:2;4554:30;:49::i;:::-;4351:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4351:274:44;;;;;;;;;;-1:-1:-1;;;4299:358:44;;;;;;;:::i;181:376:35:-;275:14;;131:42;448:2;435:16;;251:21;;275:14;435:16;131:42;484:5;473:68;464:77;;401:150;;181:376;:::o;5173:642:76:-;5592:23;5618:69;5646:4;5618:69;;;;;;;;;;;;;;;;;5626:5;-1:-1:-1;;;;;5618:27:76;;;:69;;;;;:::i;:::-;5592:95;;5705:10;:17;5726:1;5705:22;:56;;;;5742:10;5731:30;;;;;;;;;;;;:::i;:::-;5697:111;;;;-1:-1:-1;;;5697:111:76;;37726:2:145;5697:111:76;;;37708:21:145;37765:2;37745:18;;;37738:30;37804:34;37784:18;;;37777:62;37875:12;37855:18;;;37848:40;37905:19;;5697:111:76;37524:406:145;1406:259:64;-1:-1:-1;;;;;1713:19:51;;;1479:95:64;;;;-1:-1:-1;;;1479:95:64;;38137:2:145;1479:95:64;;;38119:21:145;38176:2;38156:18;;;38149:30;38215:34;38195:18;;;38188:62;38286:15;38266:18;;;38259:43;38319:19;;1479:95:64;37935:409:145;1479:95:64;1030:66;1584:74;;-1:-1:-1;;;;;;1584:74:64;-1:-1:-1;;;;;1584:74:64;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;704:427:84:-;768:4;975:68;1008:7;-1:-1:-1;;;975:32:84;:68::i;:::-;:149;;;;-1:-1:-1;1060:64:84;1093:7;-1:-1:-1;;;;;;1060:32:84;:64::i;:::-;1059:65;956:168;704:427;-1:-1:-1;;704:427:84:o;4421:647::-;4592:71;;;-1:-1:-1;;;;;;38511:79:145;;4592:71:84;;;;38493:98:145;;;;4592:71:84;;;;;;;;;;38466:18:145;;;;4592:71:84;;;;;;;;;-1:-1:-1;;;;;4592:71:84;-1:-1:-1;;;4592:71:84;;;4871:20;;4523:4;;4592:71;4523:4;;;;;;4592:71;4523:4;;4871:20;4836:7;4829:5;4818:86;4807:97;;4931:16;4917:30;;4981:4;4975:11;4960:26;;5013:7;:29;;;;;5038:4;5024:10;:18;;5013:29;:48;;;;;5060:1;5046:11;:15;5013:48;5006:55;4421:647;-1:-1:-1;;;;;;;4421:647:84:o;1125:111:46:-;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;35959:2:145;5366:69:48;;;35941:21:145;35998:2;35978:18;;;35971:30;36037:34;36017:18;;;36010:62;-1:-1:-1;;;36088:18:145;;;36081:41;36139:19;;5366:69:48;35757:407:145;5366:69:48;1197:32:46::1;965:10:52::0;1197:18:46::1;:32::i;2006:109:49:-:0;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;35959:2:145;5366:69:48;;;35941:21:145;35998:2;35978:18;;;35971:30;36037:34;36017:18;;;36010:62;-1:-1:-1;;;36088:18:145;;;36081:41;36139:19;;5366:69:48;35757:407:145;2118:794:47;2202:16;2534:48;2516:14;2510:4;2506:25;2500:4;2496:36;2493:90;2487:4;2480:104;2741:32;2724:14;2718:4;2714:25;2711:63;2705:4;2698:77;2823:4;2817;2811;2808:1;2800:28;2788:40;-1:-1:-1;;;;;;2855:22:47;;2847:58;;;;-1:-1:-1;;;2847:58:47;;38804:2:145;2847:58:47;;;38786:21:145;38843:2;38823:18;;;38816:30;38882:25;38862:18;;;38855:53;38925:18;;2847:58:47;38602:347:145;2473:149:53;2531:13;2563:52;-1:-1:-1;;;;;2575:22:53;;376:2;1884:437;1959:13;1984:19;2016:10;2020:6;2016:1;:10;:::i;:::-;:14;;2029:1;2016:14;:::i;:::-;2006:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2006:25:53;;1984:47;;2041:15;:6;2048:1;2041:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2041:15:53;;;;;;;;;2066;:6;2073:1;2066:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;2066:15:53;;;;;;;;-1:-1:-1;2096:9:53;2108:10;2112:6;2108:1;:10;:::i;:::-;:14;;2121:1;2108:14;:::i;:::-;2096:26;;2091:128;2128:1;2124;:5;2091:128;;;2162:8;2171:5;2179:3;2171:11;2162:21;;;;;;;:::i;:::-;;;;2150:6;2157:1;2150:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;2150:33:53;;;;;;;;-1:-1:-1;2207:1:53;2197:11;;;;;2131:3;;;:::i;:::-;;;2091:128;;;-1:-1:-1;2236:10:53;;2228:55;;;;-1:-1:-1;;;2228:55:53;;39297:2:145;2228:55:53;;;39279:21:145;;;39316:18;;;39309:30;39375:34;39355:18;;;39348:62;39427:18;;2228:55:53;39095:356:145;4108:223:79;4241:12;4272:52;4294:6;4302:4;4308:1;4311:12;4272:21;:52::i;1771:152:64:-;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:64;;;;;;;;1771:152;:::o;6674:198:79:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;5165:446::-;5330:12;5387:5;5362:21;:30;;5354:81;;;;-1:-1:-1;;;5354:81:79;;39658:2:145;5354:81:79;;;39640:21:145;39697:2;39677:18;;;39670:30;39736:34;39716:18;;;39709:62;39807:8;39787:18;;;39780:36;39833:19;;5354:81:79;39456:402:145;5354:81:79;5446:12;5460:23;5487:6;-1:-1:-1;;;;;5487:11:79;5506:5;5513:4;5487:31;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5445:73;;;;5535:69;5562:6;5570:7;5579:10;5591:12;5535:26;:69::i;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:79;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:79:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:51;;;8113:60:79;;;;-1:-1:-1;;;8113:60:79;;40357:2:145;8113:60:79;;;40339:21:145;40396:2;40376:18;;;40369:30;40435:31;40415:18;;;40408:59;40484:18;;8113:60:79;40155:353:145;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:332:145;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;180:9;167:23;-1:-1:-1;;;;;;223:5:145;219:78;212:5;209:89;199:117;;312:1;309;302:12;907:180;966:6;1019:2;1007:9;998:7;994:23;990:32;987:52;;;1035:1;1032;1025:12;987:52;-1:-1:-1;1058:23:145;;907:180;-1:-1:-1;907:180:145:o;1092:154::-;-1:-1:-1;;;;;1171:5:145;1167:54;1160:5;1157:65;1147:93;;1236:1;1233;1226:12;1251:134;1319:20;;1348:31;1319:20;1348:31;:::i;:::-;1251:134;;;:::o;1390:388::-;1458:6;1466;1519:2;1507:9;1498:7;1494:23;1490:32;1487:52;;;1535:1;1532;1525:12;1487:52;1574:9;1561:23;1593:31;1618:5;1593:31;:::i;:::-;1643:5;-1:-1:-1;1700:2:145;1685:18;;1672:32;1713:33;1672:32;1713:33;:::i;:::-;1765:7;1755:17;;;1390:388;;;;;:::o;1783:247::-;1842:6;1895:2;1883:9;1874:7;1870:23;1866:32;1863:52;;;1911:1;1908;1901:12;1863:52;1950:9;1937:23;1969:31;1994:5;1969:31;:::i;2220:315::-;2288:6;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2404:9;2391:23;2423:31;2448:5;2423:31;:::i;:::-;2473:5;2525:2;2510:18;;;;2497:32;;-1:-1:-1;;;2220:315:145:o;2771:::-;2839:6;2847;2900:2;2888:9;2879:7;2875:23;2871:32;2868:52;;;2916:1;2913;2906:12;2868:52;2952:9;2939:23;2929:33;;3012:2;3001:9;2997:18;2984:32;3025:31;3050:5;3025:31;:::i;3351:184::-;-1:-1:-1;;;3400:1:145;3393:88;3500:4;3497:1;3490:15;3524:4;3521:1;3514:15;3540:257;3612:4;3606:11;;;3644:17;;3691:18;3676:34;;3712:22;;;3673:62;3670:88;;;3738:18;;:::i;:::-;3774:4;3767:24;3540:257;:::o;3802:255::-;3874:2;3868:9;3916:6;3904:19;;3953:18;3938:34;;3974:22;;;3935:62;3932:88;;;4000:18;;:::i;4062:255::-;4134:2;4128:9;4176:6;4164:19;;4213:18;4198:34;;4234:22;;;4195:62;4192:88;;;4260:18;;:::i;4322:253::-;4394:2;4388:9;4436:4;4424:17;;4471:18;4456:34;;4492:22;;;4453:62;4450:88;;;4518:18;;:::i;4580:275::-;4651:2;4645:9;4716:2;4697:13;;-1:-1:-1;;4693:27:145;4681:40;;4751:18;4736:34;;4772:22;;;4733:62;4730:88;;;4798:18;;:::i;:::-;4834:2;4827:22;4580:275;;-1:-1:-1;4580:275:145:o;4860:186::-;4908:4;4941:18;4933:6;4930:30;4927:56;;;4963:18;;:::i;:::-;-1:-1:-1;5029:2:145;5008:15;-1:-1:-1;;5004:29:145;5035:4;5000:40;;4860:186::o;5051:336::-;5115:5;5144:52;5160:35;5188:6;5160:35;:::i;:::-;5144:52;:::i;:::-;5135:61;;5219:6;5212:5;5205:21;5259:3;5250:6;5245:3;5241:16;5238:25;5235:45;;;5276:1;5273;5266:12;5235:45;5325:6;5320:3;5313:4;5306:5;5302:16;5289:43;5379:1;5372:4;5363:6;5356:5;5352:18;5348:29;5341:40;5051:336;;;;;:::o;5392:584::-;5469:6;5477;5530:2;5518:9;5509:7;5505:23;5501:32;5498:52;;;5546:1;5543;5536:12;5498:52;5585:9;5572:23;5604:31;5629:5;5604:31;:::i;:::-;5654:5;-1:-1:-1;5710:2:145;5695:18;;5682:32;5737:18;5726:30;;5723:50;;;5769:1;5766;5759:12;5723:50;5792:22;;5845:4;5837:13;;5833:27;-1:-1:-1;5823:55:145;;5874:1;5871;5864:12;5823:55;5897:73;5962:7;5957:2;5944:16;5939:2;5935;5931:11;5897:73;:::i;:::-;5887:83;;;5392:584;;;;;:::o;7106:221::-;7149:5;7202:3;7195:4;7187:6;7183:17;7179:27;7169:55;;7220:1;7217;7210:12;7169:55;7242:79;7317:3;7308:6;7295:20;7288:4;7280:6;7276:17;7242:79;:::i;7332:411::-;7387:5;7435:4;7423:9;7418:3;7414:19;7410:30;7407:50;;;7453:1;7450;7443:12;7407:50;7475:22;;:::i;:::-;7466:31;;7533:9;7520:23;7513:5;7506:38;7595:2;7584:9;7580:18;7567:32;7622:18;7614:6;7611:30;7608:50;;;7654:1;7651;7644:12;7608:50;7690:46;7732:3;7723:6;7712:9;7708:22;7690:46;:::i;:::-;7685:2;7678:5;7674:14;7667:70;;7332:411;;;;:::o;7748:118::-;7834:5;7827:13;7820:21;7813:5;7810:32;7800:60;;7856:1;7853;7846:12;7871:128;7936:20;;7965:28;7936:20;7965:28;:::i;8004:1713::-;8098:6;8151:2;8139:9;8130:7;8126:23;8122:32;8119:52;;;8167:1;8164;8157:12;8119:52;8207:9;8194:23;8236:18;8277:2;8269:6;8266:14;8263:34;;;8293:1;8290;8283:12;8263:34;8316:22;;;;8372:6;8354:16;;;8350:29;8347:49;;;8392:1;8389;8382:12;8347:49;8418:22;;:::i;:::-;8463;8482:2;8463:22;:::i;:::-;8456:5;8449:37;8518:31;8545:2;8541;8537:11;8518:31;:::i;:::-;8513:2;8506:5;8502:14;8495:55;8603:2;8599;8595:11;8582:25;8577:2;8570:5;8566:14;8559:49;8661:2;8657;8653:11;8640:25;8635:2;8628:5;8624:14;8617:49;8720:3;8716:2;8712:12;8699:26;8693:3;8686:5;8682:15;8675:51;8759:32;8786:3;8782:2;8778:12;8759:32;:::i;:::-;8753:3;8746:5;8742:15;8735:57;8825:32;8852:3;8848:2;8844:12;8825:32;:::i;:::-;8819:3;8812:5;8808:15;8801:57;8904:3;8900:2;8896:12;8883:26;8934:2;8924:8;8921:16;8918:36;;;8950:1;8947;8940:12;8918:36;8987:54;9033:7;9022:8;9018:2;9014:17;8987:54;:::i;:::-;8981:3;8974:5;8970:15;8963:79;;9061:3;9096:31;9123:2;9119;9115:11;9096:31;:::i;:::-;9080:14;;;9073:55;9147:3;9188:11;;;9175:25;9212:16;;;9209:36;;;9241:1;9238;9231:12;9209:36;9277:45;9314:7;9303:8;9299:2;9295:17;9277:45;:::i;:::-;9272:2;9265:5;9261:14;9254:69;;;9342:3;9377:28;9401:2;9397;9393:11;9377:28;:::i;:::-;9361:14;;;9354:52;9425:3;9466:11;;;9453:25;9490:16;;;9487:36;;;9519:1;9516;9509:12;9487:36;9555:45;9592:7;9581:8;9577:2;9573:17;9555:45;:::i;:::-;9550:2;9543:5;9539:14;9532:69;;;9620:3;9610:13;;9655:31;9682:2;9678;9674:11;9655:31;:::i;:::-;9639:14;;;9632:55;;;;9643:5;8004:1713;-1:-1:-1;;;;8004:1713:145:o;9722:153::-;9800:20;;9849:1;9839:12;;9829:40;;9865:1;9862;9855:12;9880:110;9964:1;9957:5;9954:12;9944:40;;9980:1;9977;9970:12;9995:152;10072:20;;10101:40;10072:20;10101:40;:::i;10152:416::-;10216:5;10264:4;10252:9;10247:3;10243:19;10239:30;10236:50;;;10282:1;10279;10272:12;10236:50;10315:2;10309:9;10357:4;10349:6;10345:17;10428:6;10416:10;10413:22;10392:18;10380:10;10377:34;10374:62;10371:88;;;10439:18;;:::i;:::-;10475:2;10468:22;10538:23;;10523:39;;-1:-1:-1;10508:6:145;10152:416;-1:-1:-1;10152:416:145:o;10573:359::-;10631:5;10679:4;10667:9;10662:3;10658:19;10654:30;10651:50;;;10697:1;10694;10687:12;10651:50;10719:22;;:::i;:::-;10710:31;;10778:9;10765:23;10797:33;10822:7;10797:33;:::i;:::-;10853:7;10846:5;10839:22;;10921:2;10910:9;10906:18;10893:32;10888:2;10881:5;10877:14;10870:56;10573:359;;;;:::o;10937:865::-;11000:5;11048:6;11036:9;11031:3;11027:19;11023:32;11020:52;;;11068:1;11065;11058:12;11020:52;11090:22;;:::i;:::-;11081:31;;11135:29;11154:9;11135:29;:::i;:::-;11128:5;11121:44;11225:2;11214:9;11210:18;11197:32;11192:2;11185:5;11181:14;11174:56;11290:2;11279:9;11275:18;11262:32;11257:2;11250:5;11246:14;11239:56;11355:2;11344:9;11340:18;11327:32;11322:2;11315:5;11311:14;11304:56;11421:3;11410:9;11406:19;11393:33;11387:3;11380:5;11376:15;11369:58;11460:49;11504:3;11493:9;11489:19;11460:49;:::i;:::-;11454:3;11447:5;11443:15;11436:74;11543:48;11586:3;11575:9;11571:19;11543:48;:::i;:::-;11537:3;11530:5;11526:15;11519:73;11625:61;11682:3;11676;11665:9;11661:19;11625:61;:::i;:::-;11619:3;11612:5;11608:15;11601:86;11706:3;11741:54;11791:3;11786:2;11775:9;11771:18;11741:54;:::i;:::-;11725:14;;;11718:78;11729:5;10937:865;-1:-1:-1;;10937:865:145:o;11807:618::-;11945:6;11953;11961;12014:3;12002:9;11993:7;11989:23;11985:33;11982:53;;;12031:1;12028;12021:12;11982:53;12070:9;12057:23;12089:31;12114:5;12089:31;:::i;:::-;12139:5;-1:-1:-1;12163:63:145;12218:7;12213:2;12198:18;;12163:63;:::i;:::-;12153:73;;12277:3;12266:9;12262:19;12249:33;12305:18;12297:6;12294:30;12291:50;;;12337:1;12334;12327:12;12291:50;12360:59;12411:7;12402:6;12391:9;12387:22;12360:59;:::i;:::-;12350:69;;;11807:618;;;;;:::o;12732:250::-;12817:1;12827:113;12841:6;12838:1;12835:13;12827:113;;;12917:11;;;12911:18;12898:11;;;12891:39;12863:2;12856:10;12827:113;;;-1:-1:-1;;12974:1:145;12956:16;;12949:27;12732:250::o;12987:271::-;13029:3;13067:5;13061:12;13094:6;13089:3;13082:19;13110:76;13179:6;13172:4;13167:3;13163:14;13156:4;13149:5;13145:16;13110:76;:::i;:::-;13240:2;13219:15;-1:-1:-1;;13215:29:145;13206:39;;;;13247:4;13202:50;;12987:271;-1:-1:-1;;12987:271:145:o;13263:220::-;13412:2;13401:9;13394:21;13375:4;13432:45;13473:2;13462:9;13458:18;13450:6;13432:45;:::i;13488:759::-;13635:6;13643;13651;13659;13712:3;13700:9;13691:7;13687:23;13683:33;13680:53;;;13729:1;13726;13719:12;13680:53;13768:9;13755:23;13787:31;13812:5;13787:31;:::i;:::-;13837:5;-1:-1:-1;13894:2:145;13879:18;;13866:32;13907:33;13866:32;13907:33;:::i;:::-;13959:7;-1:-1:-1;13985:63:145;14040:7;14035:2;14020:18;;13985:63;:::i;:::-;13975:73;;14099:3;14088:9;14084:19;14071:33;14127:18;14119:6;14116:30;14113:50;;;14159:1;14156;14149:12;14113:50;14182:59;14233:7;14224:6;14213:9;14209:22;14182:59;:::i;:::-;14172:69;;;13488:759;;;;;;;:::o;14745:184::-;-1:-1:-1;;;14794:1:145;14787:88;14894:4;14891:1;14884:15;14918:4;14915:1;14908:15;14934:168;15007:9;;;15038;;15055:15;;;15049:22;;15035:37;15025:71;;15076:18;;:::i;15107:184::-;-1:-1:-1;;;15156:1:145;15149:88;15256:4;15253:1;15246:15;15280:4;15277:1;15270:15;15296:277;15383:6;15436:2;15424:9;15415:7;15411:23;15407:32;15404:52;;;15452:1;15449;15442:12;15404:52;15484:9;15478:16;15503:40;15537:5;15503:40;:::i;15888:184::-;15958:6;16011:2;15999:9;15990:7;15986:23;15982:32;15979:52;;;16027:1;16024;16017:12;15979:52;-1:-1:-1;16050:16:145;;15888:184;-1:-1:-1;15888:184:145:o;17114:274::-;17154:1;17180;17170:189;;-1:-1:-1;;;17212:1:145;17205:88;17316:4;17313:1;17306:15;17344:4;17341:1;17334:15;17170:189;-1:-1:-1;17373:9:145;;17114:274::o;17393:125::-;17458:9;;;17479:10;;;17476:36;;;17492:18;;:::i;17523:251::-;17593:6;17646:2;17634:9;17625:7;17621:23;17617:32;17614:52;;;17662:1;17659;17652:12;17614:52;17694:9;17688:16;17713:31;17738:5;17713:31;:::i;19786:184::-;-1:-1:-1;;;19835:1:145;19828:88;19935:4;19932:1;19925:15;19959:4;19956:1;19949:15;19975:135;20014:3;20035:17;;;20032:43;;20055:18;;:::i;:::-;-1:-1:-1;20102:1:145;20091:13;;19975:135::o;20115:128::-;20182:9;;;20203:11;;;20200:37;;;20217:18;;:::i;20501:184::-;-1:-1:-1;;;20550:1:145;20543:88;20650:4;20647:1;20640:15;20674:4;20671:1;20664:15;20690:245;20757:6;20810:2;20798:9;20789:7;20785:23;20781:32;20778:52;;;20826:1;20823;20816:12;20778:52;20858:9;20852:16;20877:28;20899:5;20877:28;:::i;20940:1652::-;21032:6;21063:2;21106;21094:9;21085:7;21081:23;21077:32;21074:52;;;21122:1;21119;21112:12;21074:52;21155:9;21149:16;21184:18;21225:2;21217:6;21214:14;21211:34;;;21241:1;21238;21231:12;21211:34;21264:22;;;;21320:4;21302:16;;;21298:27;21295:47;;;21338:1;21335;21328:12;21295:47;21364:22;;:::i;:::-;21415:2;21409:9;21402:5;21395:24;21457:2;21453;21449:11;21443:18;21470:33;21495:7;21470:33;:::i;:::-;21519:14;;;21512:31;21581:2;21573:11;;21567:18;21594:33;21567:18;21594:33;:::i;:::-;21654:2;21643:14;;21636:31;21706:2;21698:11;;21692:18;21722:16;;;21719:36;;;21751:1;21748;21741:12;21719:36;21774:17;;21825:2;21807:16;;;21803:25;21800:45;;;21841:1;21838;21831:12;21800:45;21869:22;;:::i;:::-;21922:2;21916:9;21907:7;21900:26;21965:2;21961;21957:11;21951:18;21994:2;21984:8;21981:16;21978:36;;;22010:1;22007;22000:12;21978:36;22033:17;;;-1:-1:-1;22081:4:145;22073:13;;22069:27;-1:-1:-1;22059:55:145;;22110:1;22107;22100:12;22059:55;22139:2;22133:9;22123:19;;22164:48;22180:31;22208:2;22180:31;:::i;22164:48::-;22235:2;22228:5;22221:17;22275:7;22270:2;22265;22261;22257:11;22253:20;22250:33;22247:53;;;22296:1;22293;22286:12;22247:53;22309:67;22373:2;22368;22361:5;22357:14;22352:2;22348;22344:11;22309:67;:::i;:::-;22392:16;;;22385:31;;;;-1:-1:-1;22443:2:145;22432:14;;22425:31;;;;-1:-1:-1;22503:3:145;22495:12;;;22489:19;22472:15;;;22465:44;22556:3;22548:12;;;22542:19;22525:15;;;22518:44;22436:5;20940:1652;-1:-1:-1;;;20940:1652:145:o;23012:437::-;23091:1;23087:12;;;;23134;;;23155:61;;23209:4;23201:6;23197:17;23187:27;;23155:61;23262:2;23254:6;23251:14;23231:18;23228:38;23225:218;;-1:-1:-1;;;23296:1:145;23289:88;23400:4;23397:1;23390:15;23428:4;23425:1;23418:15;23225:218;;23012:437;;;:::o;23580:545::-;23682:2;23677:3;23674:11;23671:448;;;23718:1;23743:5;23739:2;23732:17;23788:4;23784:2;23774:19;23858:2;23846:10;23842:19;23839:1;23835:27;23829:4;23825:38;23894:4;23882:10;23879:20;23876:47;;;-1:-1:-1;23917:4:145;23876:47;23972:2;23967:3;23963:12;23960:1;23956:20;23950:4;23946:31;23936:41;;24027:82;24045:2;24038:5;24035:13;24027:82;;;24090:17;;;24071:1;24060:13;24027:82;;;24031:3;;;23580:545;;;:::o;24301:1352::-;24427:3;24421:10;24454:18;24446:6;24443:30;24440:56;;;24476:18;;:::i;:::-;24505:97;24595:6;24555:38;24587:4;24581:11;24555:38;:::i;:::-;24549:4;24505:97;:::i;:::-;24657:4;;24721:2;24710:14;;24738:1;24733:663;;;;25440:1;25457:6;25454:89;;;-1:-1:-1;25509:19:145;;;25503:26;25454:89;-1:-1:-1;;24258:1:145;24254:11;;;24250:24;24246:29;24236:40;24282:1;24278:11;;;24233:57;25556:81;;24703:944;;24733:663;23527:1;23520:14;;;23564:4;23551:18;;-1:-1:-1;;24769:20:145;;;24887:236;24901:7;24898:1;24895:14;24887:236;;;24990:19;;;24984:26;24969:42;;25082:27;;;;25050:1;25038:14;;;;24917:19;;24887:236;;;24891:3;25151:6;25142:7;25139:19;25136:201;;;25212:19;;;25206:26;-1:-1:-1;;25295:1:145;25291:14;;;25307:3;25287:24;25283:37;25279:42;25264:58;25249:74;;25136:201;-1:-1:-1;;;;;25383:1:145;25367:14;;;25363:22;25350:36;;-1:-1:-1;24301:1352:145:o;25658:1011::-;25753:6;25784:2;25827;25815:9;25806:7;25802:23;25798:32;25795:52;;;25843:1;25840;25833:12;25795:52;25876:9;25870:16;25905:18;25946:2;25938:6;25935:14;25932:34;;;25962:1;25959;25952:12;25932:34;26000:6;25989:9;25985:22;25975:32;;26045:7;26038:4;26034:2;26030:13;26026:27;26016:55;;26067:1;26064;26057:12;26016:55;26096:2;26090:9;26118:2;26114;26111:10;26108:36;;;26124:18;;:::i;:::-;26170:2;26167:1;26163:10;26153:20;;26193:28;26217:2;26213;26209:11;26193:28;:::i;:::-;26255:15;;;26325:11;;;26321:20;;;26286:12;;;;26353:19;;;26350:39;;;26385:1;26382;26375:12;26350:39;26409:11;;;;26429:210;26445:6;26440:3;26437:15;26429:210;;;26518:3;26512:10;26499:23;;26535:31;26560:5;26535:31;:::i;:::-;26579:18;;;26462:12;;;;26617;;;;26429:210;;;26658:5;25658:1011;-1:-1:-1;;;;;;;;25658:1011:145:o;26674:772::-;26724:3;26765:5;26759:12;26794:36;26820:9;26794:36;:::i;:::-;26839:19;;;26877:4;26900:1;26917:18;;;26944:146;;;;27104:1;27099:341;;;;26910:530;;26944:146;-1:-1:-1;;26986:24:145;;26972:12;;;26965:46;27058:14;;27051:22;27048:1;27044:30;27035:40;;27031:49;;;-1:-1:-1;26944:146:145;;27099:341;27130:5;27127:1;27120:16;27177:2;27174:1;27164:16;27202:1;27216:174;27230:6;27227:1;27224:13;27216:174;;;27317:14;;27299:11;;;27295:20;;27288:44;27360:16;;;;27245:10;;27216:174;;;27414:11;;27410:20;;;-1:-1:-1;;26910:530:145;;;;;;26674:772;;;;:::o;27451:252::-;27538:5;27532:12;27527:3;27520:25;27502:3;27591:4;27584:5;27580:16;27574:23;27629:4;27622;27617:3;27613:14;27606:28;27650:47;27691:4;27686:3;27682:14;27668:12;27650:47;:::i;27708:484::-;27761:3;27799:5;27793:12;27826:6;27821:3;27814:19;27852:4;27881:2;27876:3;27872:12;27865:19;;27918:2;27911:5;27907:14;27939:1;27949:218;27963:6;27960:1;27957:13;27949:218;;;28028:13;;-1:-1:-1;;;;;28024:62:145;28012:75;;28107:12;;;;28142:15;;;;27985:1;27978:9;27949:218;;;-1:-1:-1;28183:3:145;;27708:484;-1:-1:-1;;;;;27708:484:145:o;28197:827::-;28557:6;28546:9;28539:25;28600:3;28595:2;28584:9;28580:18;28573:31;28520:4;28627:54;28676:3;28665:9;28661:19;28653:6;28627:54;:::i;:::-;28729:9;28721:6;28717:22;28712:2;28701:9;28697:18;28690:50;28763:42;28798:6;28790;28763:42;:::i;:::-;28749:56;;-1:-1:-1;;;;;28845:6:145;28841:55;28836:2;28825:9;28821:18;28814:83;28946:9;28938:6;28934:22;28928:3;28917:9;28913:19;28906:51;28974:44;29011:6;29003;28974:44;:::i;29218:500::-;29472:6;29461:9;29454:25;29515:2;29510;29499:9;29495:18;29488:30;29435:4;29541:53;29590:2;29579:9;29575:18;29567:6;29541:53;:::i;:::-;29642:9;29634:6;29630:22;29625:2;29614:9;29610:18;29603:50;29670:42;29705:6;29697;29670:42;:::i;29922:142::-;30005:1;29998:5;29995:12;29985:46;;30011:18;;:::i;:::-;30040;;29922:142::o;30370:1140::-;30532:4;30574:3;30563:9;30559:19;30551:27;;-1:-1:-1;;;;;30615:6:145;30609:13;30605:62;30594:9;30587:81;30724:4;30716:6;30712:17;30706:24;30699:4;30688:9;30684:20;30677:54;30787:4;30779:6;30775:17;30769:24;30762:4;30751:9;30747:20;30740:54;30850:4;30842:6;30838:17;30832:24;30825:4;30814:9;30810:20;30803:54;30913:4;30905:6;30901:17;30895:24;30888:4;30877:9;30873:20;30866:54;30967:4;30959:6;30955:17;30949:24;31009:1;30995:12;30992:19;30982:53;;31015:18;;:::i;:::-;31073:12;31066:4;31055:9;31051:20;31044:42;;31135:4;31127:6;31123:17;31117:24;31150:65;31209:4;31198:9;31194:20;31178:14;31150:65;:::i;:::-;;31264:4;31256:6;31252:17;31246:24;31279:73;31346:4;31335:9;31331:20;31315:14;30144:12;30132:25;;30069:90;31279:73;-1:-1:-1;31371:6:145;31414:15;;;31408:22;30245:12;;-1:-1:-1;;;;;30241:61:145;31485:18;;;30229:74;30352:4;30341:16;;30335:23;30319:14;;;30312:47;31439:65;;30370:1140;;;;:::o;31515:1002::-;31940:6;31929:9;31922:25;31903:4;-1:-1:-1;;;;;32056:2:145;32048:6;32044:15;32039:2;32028:9;32024:18;32017:43;32096:3;32091:2;32080:9;32076:18;32069:31;32123:46;32164:3;32153:9;32149:19;32141:6;32123:46;:::i;:::-;32217:2;32209:6;32205:15;32200:2;32189:9;32185:18;32178:43;32258:6;32252:3;32241:9;32237:19;32230:35;32314:9;32306:6;32302:22;32296:3;32285:9;32281:19;32274:51;32348:42;32383:6;32375;32348:42;:::i;:::-;32334:56;;;32439:9;32431:6;32427:22;32421:3;32410:9;32406:19;32399:51;32467:44;32504:6;32496;32467:44;:::i;:::-;32459:52;31515:1002;-1:-1:-1;;;;;;;;;;31515:1002:145:o;32522:636::-;32815:6;32804:9;32797:25;32778:4;-1:-1:-1;;;;;32931:2:145;32923:6;32919:15;32914:2;32903:9;32899:18;32892:43;32983:2;32975:6;32971:15;32966:2;32955:9;32951:18;32944:43;33035:2;33027:6;33023:15;33018:2;33007:9;33003:18;32996:43;;33076:3;33070;33059:9;33055:19;33048:32;33097:55;33147:3;33136:9;33132:19;33124:6;33097:55;:::i;33930:340::-;34107:2;34096:9;34089:21;34070:4;34127:45;34168:2;34157:9;34153:18;34145:6;34127:45;:::i;:::-;34119:53;;-1:-1:-1;;;;;34212:6:145;34208:55;34203:2;34192:9;34188:18;34181:83;33930:340;;;;;:::o;34275:291::-;34452:2;34441:9;34434:21;34415:4;34472:45;34513:2;34502:9;34498:18;34490:6;34472:45;:::i;:::-;34464:53;;34553:6;34548:2;34537:9;34533:18;34526:34;34275:291;;;;;:::o;36707:812::-;37118:25;37113:3;37106:38;37088:3;37173:6;37167:13;37189:75;37257:6;37252:2;37247:3;37243:12;37236:4;37228:6;37224:17;37189:75;:::i;:::-;37328:19;37323:2;37283:16;;;37315:11;;;37308:40;37373:13;;37395:76;37373:13;37457:2;37449:11;;37442:4;37430:17;;37395:76;:::i;:::-;37491:17;37510:2;37487:26;;36707:812;-1:-1:-1;;;;36707:812:145:o;38954:136::-;38993:3;39021:5;39011:39;;39030:18;;:::i;:::-;-1:-1:-1;;;39066:18:145;;38954:136::o;39863:287::-;39992:3;40030:6;40024:13;40046:66;40105:6;40100:3;40093:4;40085:6;40081:17;40046:66;:::i;:::-;40128:16;;;;;39863:287;-1:-1:-1;;39863:287:145:o","linkReferences":{},"immutableReferences":{"55944":[{"start":6161,"length":32},{"start":6294,"length":32},{"start":6648,"length":32},{"start":6781,"length":32},{"start":7011,"length":32}]}},"methodIdentifiers":{"COUNCIL_MEMBER()":"733a2d1f","DEFAULT_ADMIN_ROLE()":"a217fddf","MAX_FEE()":"bc063e1a","NATIVE()":"a0cf0aea","PRECISION_SCALE()":"d7050f07","acceptCouncilSafe()":"b5058c50","activateMemberInStrategy(address,address)":"0d4a8b49","addStrategy(address)":"223e5479","addStrategyByPoolId(uint256)":"82d6a1e7","addressToMemberInfo(address)":"88cfe684","allo()":"d6d8428d","cloneNonce()":"33960459","communityFee()":"8961be6b","communityName()":"c6d572ae","councilSafe()":"6c53db9a","covenantIpfsHash()":"b64e39af","createPool(address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"9a72a86f","createPool(address,address,(address,uint256,uint256,uint256,uint256,uint8,uint8,(uint256),(address,uint256)),(uint256,string))":"c8a593e9","deactivateMemberInStrategy(address,address)":"22bcf999","decreasePower(uint256)":"5ecf71c5","enabledStrategies(address)":"3a871fe1","feeReceiver()":"b3f00674","gardenToken()":"db61d65c","getBasisStakedAmount()":"0331383c","getMemberPowerInStrategy(address,address)":"7817ee4f","getMemberStakedAmount(address)":"2c611c4a","getRoleAdmin(bytes32)":"248a9ca3","getStakeAmountWithFees()":"28c309e9","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","increasePower(uint256)":"559de05d","initialize((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"96f0adec","isCouncilMember(address)":"ebd7dc52","isKickEnabled()":"1f787d28","isMember(address)":"a230c524","kickMember(address,address)":"6871eb4d","memberActivatedInStrategies(address,address)":"477a5cc0","memberPowerInStrategy(address,address)":"65e3864c","owner()":"8da5cb5b","pendingCouncilSafe()":"68decabb","profileId()":"08386eba","proxiableUUID()":"52d1902d","registerStakeAmount()":"78a0b8a9","registry()":"7b103999","registryFactory()":"f86c5f89","removeStrategy(address)":"175188e8","removeStrategyByPoolId(uint256)":"73265c37","renounceOwnership()":"715018a6","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","setBasisStakedAmount(uint256)":"31f61bca","setCommunityFee(uint256)":"0d12bbdb","setCouncilSafe(address)":"397e2543","stakeAndRegisterMember()":"3517aa7d","strategiesByMember(address,uint256)":"2b38c69c","strategyTemplate()":"5c94e4d2","supportsInterface(bytes4)":"01ffc9a7","transferOwnership(address)":"f2fde38b","unregisterMember()":"b99b4370","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_decreaseAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_currentPower\",\"type\":\"uint256\"}],\"name\":\"CantDecreaseMoreThanPower\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"DecreaseUnderMinimum\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"KickNotEnabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NewFeeGreaterThanMax\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PointsDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"RegistryCannotBeZero\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotNewOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"SenderNotStrategy\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyDisabled\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"StrategyExists\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyActivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyDeactivated\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserAlreadyRegistered\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotGardenOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInCouncil\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"UserNotInRegistry\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ValueCannotBeZero\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"}],\"name\":\"AlloSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"BasisStakedAmountSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newFee\",\"type\":\"uint256\"}],\"name\":\"CommunityFeeUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safeOwner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newSafeOwner\",\"type\":\"address\"}],\"name\":\"CouncilSafeChangeStarted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"CouncilSafeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_pointsToIncrease\",\"type\":\"uint256\"}],\"name\":\"MemberActivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"MemberDeactivatedStrategy\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberKicked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_unstakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerDecreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_stakedAmount\",\"type\":\"uint256\"}],\"name\":\"MemberPowerIncreased\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"MemberRegistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_amountReturned\",\"type\":\"uint256\"}],\"name\":\"MemberUnregistered\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_poolId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"PoolCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"_profileId\",\"type\":\"bytes32\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"RegistryInitialized\",\"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\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"StrategyRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COUNCIL_MEMBER\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MAX_FEE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"NATIVE\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PRECISION_SCALE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"acceptCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"activateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newStrategy\",\"type\":\"address\"}],\"name\":\"addStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"addStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"addressToMemberInfo\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"stakedAmount\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"isRegistered\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo\",\"outputs\":[{\"internalType\":\"contract FAllo\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"cloneNonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"communityName\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"councilSafe\",\"outputs\":[{\"internalType\":\"contract ISafe\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"covenantIpfsHash\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"registryCommunity\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"decay\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maxRatio\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"weight\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minThresholdPoints\",\"type\":\"uint256\"},{\"internalType\":\"enum StrategyStruct.ProposalType\",\"name\":\"proposalType\",\"type\":\"uint8\"},{\"internalType\":\"enum StrategyStruct.PointSystem\",\"name\":\"pointSystem\",\"type\":\"uint8\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"maxAmount\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.PointSystemConfig\",\"name\":\"pointConfig\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"sybilOracleScorer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"internalType\":\"struct StrategyStruct.SybilConfig\",\"name\":\"sybilConfig\",\"type\":\"tuple\"}],\"internalType\":\"struct StrategyStruct.InitializeParams\",\"name\":\"_params\",\"type\":\"tuple\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"}],\"name\":\"createPool\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"deactivateMemberInStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_amountUnstaked\",\"type\":\"uint256\"}],\"name\":\"decreasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"enabledStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isEnabled\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardenToken\",\"outputs\":[{\"internalType\":\"contract IERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getBasisStakedAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"getMemberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"getMemberStakedAmount\",\"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\":[],\"name\":\"getStakeAmountWithFees\",\"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\":\"uint256\",\"name\":\"_amountStaked\",\"type\":\"uint256\"}],\"name\":\"increasePower\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunityV0_0.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isCouncilMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"isKickEnabled\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"}],\"name\":\"isMember\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"_isMember\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_transferAddress\",\"type\":\"address\"}],\"name\":\"kickMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"}],\"name\":\"memberActivatedInStrategies\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"isActivated\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"strategy\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"}],\"name\":\"memberPowerInStrategy\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"power\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pendingCouncilSafe\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profileId\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registerStakeAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract IRegistry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registryFactory\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_strategy\",\"type\":\"address\"}],\"name\":\"removeStrategy\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"poolId\",\"type\":\"uint256\"}],\"name\":\"removeStrategyByPoolId\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"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\":\"uint256\",\"name\":\"_newAmount\",\"type\":\"uint256\"}],\"name\":\"setBasisStakedAmount\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_newCommunityFee\",\"type\":\"uint256\"}],\"name\":\"setCommunityFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address payable\",\"name\":\"_safe\",\"type\":\"address\"}],\"name\":\"setCouncilSafe\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"stakeAndRegisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"member\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"strategiesByMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"strategiesAddresses\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"strategyTemplate\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"unregisterMember\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"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 signaling this. _Available since v3.1._\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"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`)\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"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`.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"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 `account`. 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\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"COUNCIL_MEMBER()\":{\"notice\":\"Role to council safe members\"},\"MAX_FEE()\":{\"notice\":\"The maximum fee that can be charged to the community\"},\"NATIVE()\":{\"notice\":\"The native address to represent native token eg: ETH in mainnet\"},\"PRECISION_SCALE()\":{\"notice\":\"The precision scale used in the contract to avoid loss of precision\"},\"addressToMemberInfo(address)\":{\"notice\":\"Member information as the staked amount and if is registered in the community\"},\"allo()\":{\"notice\":\"The Allo contract address\"},\"cloneNonce()\":{\"notice\":\"The nonce used to create new strategy clones\"},\"communityFee()\":{\"notice\":\"The fee charged to the community for each registration\"},\"communityName()\":{\"notice\":\"The community name\"},\"councilSafe()\":{\"notice\":\"The council safe contract address\"},\"covenantIpfsHash()\":{\"notice\":\"The covenant IPFS hash of community\"},\"enabledStrategies(address)\":{\"notice\":\"List of enabled/disabled strategies\"},\"feeReceiver()\":{\"notice\":\"The address that receives the community fee\"},\"gardenToken()\":{\"notice\":\"The token used to stake in the community\"},\"isKickEnabled()\":{\"notice\":\"Enable or disable the kick feature\"},\"memberActivatedInStrategies(address,address)\":{\"notice\":\"Mapping to check if a member is activated in a strategy\"},\"memberPowerInStrategy(address,address)\":{\"notice\":\"Power points for each member in each strategy\"},\"pendingCouncilSafe()\":{\"notice\":\"The address of the pending council safe owner\"},\"profileId()\":{\"notice\":\"The profileId of the community in the Allo Registry\"},\"registerStakeAmount()\":{\"notice\":\"The amount of tokens required to register a member\"},\"registry()\":{\"notice\":\"The Registry Allo contract\"},\"registryFactory()\":{\"notice\":\"The address of the registry factory\"},\"strategiesByMember(address,uint256)\":{\"notice\":\"List of strategies for each member are activated\"},\"strategyTemplate()\":{\"notice\":\"The address of the strategy template\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryCommunityV0_0.sol\":\"RegistryCommunityV0_0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryCommunityV0_0.sol\":{\"keccak256\":\"0x16c0522a7583d5bc911fb96831c62ec3b0377d6454345e0e45f2e23fa4411dd4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://926e9d52972a2ef1aa7a39dc853e7d2f1f0472c22817437263faa55b1bf3f979\",\"dweb:/ipfs/QmXGmeFSJNDo2V5TQC6twGVL92KtqHMhKy1z22MXB5Ec3a\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/FAllo.sol\":{\"keccak256\":\"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458\",\"dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"uint256","name":"_decreaseAmount","type":"uint256"},{"internalType":"uint256","name":"_currentPower","type":"uint256"}],"type":"error","name":"CantDecreaseMoreThanPower"},{"inputs":[],"type":"error","name":"DecreaseUnderMinimum"},{"inputs":[],"type":"error","name":"KickNotEnabled"},{"inputs":[],"type":"error","name":"NewFeeGreaterThanMax"},{"inputs":[],"type":"error","name":"PointsDeactivated"},{"inputs":[],"type":"error","name":"RegistryCannotBeZero"},{"inputs":[],"type":"error","name":"SenderNotNewOwner"},{"inputs":[],"type":"error","name":"SenderNotStrategy"},{"inputs":[],"type":"error","name":"StrategyDisabled"},{"inputs":[],"type":"error","name":"StrategyExists"},{"inputs":[],"type":"error","name":"UserAlreadyActivated"},{"inputs":[],"type":"error","name":"UserAlreadyDeactivated"},{"inputs":[],"type":"error","name":"UserAlreadyRegistered"},{"inputs":[],"type":"error","name":"UserNotGardenOwner"},{"inputs":[],"type":"error","name":"UserNotInCouncil"},{"inputs":[],"type":"error","name":"UserNotInRegistry"},{"inputs":[],"type":"error","name":"ValueCannotBeZero"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"_allo","type":"address","indexed":false}],"type":"event","name":"AlloSet","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256","indexed":false}],"type":"event","name":"BasisStakedAmountSet","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_newFee","type":"uint256","indexed":false}],"type":"event","name":"CommunityFeeUpdated","anonymous":false},{"inputs":[{"internalType":"address","name":"_safeOwner","type":"address","indexed":false},{"internalType":"address","name":"_newSafeOwner","type":"address","indexed":false}],"type":"event","name":"CouncilSafeChangeStarted","anonymous":false},{"inputs":[{"internalType":"address","name":"_safe","type":"address","indexed":false}],"type":"event","name":"CouncilSafeSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"uint256","name":"_pointsToIncrease","type":"uint256","indexed":false}],"type":"event","name":"MemberActivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"MemberDeactivatedStrategy","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"address","name":"_transferAddress","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberKicked","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_unstakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerDecreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_stakedAmount","type":"uint256","indexed":false}],"type":"event","name":"MemberPowerIncreased","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountStaked","type":"uint256","indexed":false}],"type":"event","name":"MemberRegistered","anonymous":false},{"inputs":[{"internalType":"address","name":"_member","type":"address","indexed":false},{"internalType":"uint256","name":"_amountReturned","type":"uint256","indexed":false}],"type":"event","name":"MemberUnregistered","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_poolId","type":"uint256","indexed":false},{"internalType":"address","name":"_strategy","type":"address","indexed":false},{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"address","name":"_token","type":"address","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"PoolCreated","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"_profileId","type":"bytes32","indexed":false},{"internalType":"string","name":"_communityName","type":"string","indexed":false},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}],"indexed":false}],"type":"event","name":"RegistryInitialized","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"previousAdminRole","type":"bytes32","indexed":true},{"internalType":"bytes32","name":"newAdminRole","type":"bytes32","indexed":true}],"type":"event","name":"RoleAdminChanged","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleGranted","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32","indexed":true},{"internalType":"address","name":"account","type":"address","indexed":true},{"internalType":"address","name":"sender","type":"address","indexed":true}],"type":"event","name":"RoleRevoked","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyAdded","anonymous":false},{"inputs":[{"internalType":"address","name":"_strategy","type":"address","indexed":false}],"type":"event","name":"StrategyRemoved","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COUNCIL_MEMBER","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MAX_FEE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"NATIVE","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"PRECISION_SCALE","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"acceptCouncilSafe"},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"activateMemberInStrategy"},{"inputs":[{"internalType":"address","name":"_newStrategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"addStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"addStrategyByPoolId"},{"inputs":[{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"addressToMemberInfo","outputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"stakedAmount","type":"uint256"},{"internalType":"bool","name":"isRegistered","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"allo","outputs":[{"internalType":"contract FAllo","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"cloneNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"communityName","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"councilSafe","outputs":[{"internalType":"contract ISafe","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"covenantIpfsHash","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"},{"internalType":"address","name":"_token","type":"address"},{"internalType":"struct StrategyStruct.InitializeParams","name":"_params","type":"tuple","components":[{"internalType":"address","name":"registryCommunity","type":"address"},{"internalType":"uint256","name":"decay","type":"uint256"},{"internalType":"uint256","name":"maxRatio","type":"uint256"},{"internalType":"uint256","name":"weight","type":"uint256"},{"internalType":"uint256","name":"minThresholdPoints","type":"uint256"},{"internalType":"enum StrategyStruct.ProposalType","name":"proposalType","type":"uint8"},{"internalType":"enum StrategyStruct.PointSystem","name":"pointSystem","type":"uint8"},{"internalType":"struct StrategyStruct.PointSystemConfig","name":"pointConfig","type":"tuple","components":[{"internalType":"uint256","name":"maxAmount","type":"uint256"}]},{"internalType":"struct StrategyStruct.SybilConfig","name":"sybilConfig","type":"tuple","components":[{"internalType":"address","name":"sybilOracleScorer","type":"address"},{"internalType":"uint256","name":"threshold","type":"uint256"}]}]},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"createPool","outputs":[{"internalType":"uint256","name":"poolId","type":"uint256"},{"internalType":"address","name":"strategy","type":"address"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"deactivateMemberInStrategy"},{"inputs":[{"internalType":"uint256","name":"_amountUnstaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreasePower"},{"inputs":[{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"enabledStrategies","outputs":[{"internalType":"bool","name":"isEnabled","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"feeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardenToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getBasisStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberPowerInStrategy","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"getMemberStakedAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getStakeAmountWithFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"grantRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"view","type":"function","name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"uint256","name":"_amountStaked","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increasePower"},{"inputs":[{"internalType":"struct RegistryCommunityV0_0.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isCouncilMember","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"isKickEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"}],"stateMutability":"view","type":"function","name":"isMember","outputs":[{"internalType":"bool","name":"_isMember","type":"bool"}]},{"inputs":[{"internalType":"address","name":"_member","type":"address"},{"internalType":"address","name":"_transferAddress","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"kickMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"address","name":"strategy","type":"address"}],"stateMutability":"view","type":"function","name":"memberActivatedInStrategies","outputs":[{"internalType":"bool","name":"isActivated","type":"bool"}]},{"inputs":[{"internalType":"address","name":"strategy","type":"address"},{"internalType":"address","name":"member","type":"address"}],"stateMutability":"view","type":"function","name":"memberPowerInStrategy","outputs":[{"internalType":"uint256","name":"power","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"pendingCouncilSafe","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profileId","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registerStakeAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract IRegistry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registryFactory","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_strategy","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategy"},{"inputs":[{"internalType":"uint256","name":"poolId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"removeStrategyByPoolId"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"renounceRole"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"revokeRole"},{"inputs":[{"internalType":"uint256","name":"_newAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setBasisStakedAmount"},{"inputs":[{"internalType":"uint256","name":"_newCommunityFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityFee"},{"inputs":[{"internalType":"address payable","name":"_safe","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setCouncilSafe"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"stakeAndRegisterMember"},{"inputs":[{"internalType":"address","name":"member","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function","name":"strategiesByMember","outputs":[{"internalType":"address","name":"strategiesAddresses","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"strategyTemplate","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"stateMutability":"view","type":"function","name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"unregisterMember"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"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`."},"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"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 `account`. 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":"See {IERC165-supportsInterface}."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{"COUNCIL_MEMBER()":{"notice":"Role to council safe members"},"MAX_FEE()":{"notice":"The maximum fee that can be charged to the community"},"NATIVE()":{"notice":"The native address to represent native token eg: ETH in mainnet"},"PRECISION_SCALE()":{"notice":"The precision scale used in the contract to avoid loss of precision"},"addressToMemberInfo(address)":{"notice":"Member information as the staked amount and if is registered in the community"},"allo()":{"notice":"The Allo contract address"},"cloneNonce()":{"notice":"The nonce used to create new strategy clones"},"communityFee()":{"notice":"The fee charged to the community for each registration"},"communityName()":{"notice":"The community name"},"councilSafe()":{"notice":"The council safe contract address"},"covenantIpfsHash()":{"notice":"The covenant IPFS hash of community"},"enabledStrategies(address)":{"notice":"List of enabled/disabled strategies"},"feeReceiver()":{"notice":"The address that receives the community fee"},"gardenToken()":{"notice":"The token used to stake in the community"},"isKickEnabled()":{"notice":"Enable or disable the kick feature"},"memberActivatedInStrategies(address,address)":{"notice":"Mapping to check if a member is activated in a strategy"},"memberPowerInStrategy(address,address)":{"notice":"Power points for each member in each strategy"},"pendingCouncilSafe()":{"notice":"The address of the pending council safe owner"},"profileId()":{"notice":"The profileId of the community in the Allo Registry"},"registerStakeAmount()":{"notice":"The amount of tokens required to register a member"},"registry()":{"notice":"The Registry Allo contract"},"registryFactory()":{"notice":"The address of the registry factory"},"strategiesByMember(address,uint256)":{"notice":"List of strategies for each member are activated"},"strategyTemplate()":{"notice":"The address of the strategy template"}},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryCommunityV0_0.sol":"RegistryCommunityV0_0"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunityV0_0.sol":{"keccak256":"0x16c0522a7583d5bc911fb96831c62ec3b0377d6454345e0e45f2e23fa4411dd4","urls":["bzz-raw://926e9d52972a2ef1aa7a39dc853e7d2f1f0472c22817437263faa55b1bf3f979","dweb:/ipfs/QmXGmeFSJNDo2V5TQC6twGVL92KtqHMhKy1z22MXB5Ec3a"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/FAllo.sol":{"keccak256":"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437","urls":["bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458","dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":52821,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":52941,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":53206,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"_status","offset":0,"slot":"101","type":"t_uint256"},{"astId":53275,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"__gap","offset":0,"slot":"102","type":"t_array(t_uint256)49_storage"},{"astId":54008,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"__gap","offset":0,"slot":"151","type":"t_array(t_uint256)50_storage"},{"astId":52428,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"_roles","offset":0,"slot":"201","type":"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)"},{"astId":52735,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"__gap","offset":0,"slot":"202","type":"t_array(t_uint256)49_storage"},{"astId":77746,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"isKickEnabled","offset":0,"slot":"251","type":"t_bool"},{"astId":77749,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"registerStakeAmount","offset":0,"slot":"252","type":"t_uint256"},{"astId":77752,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"communityFee","offset":0,"slot":"253","type":"t_uint256"},{"astId":77755,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"profileId","offset":0,"slot":"254","type":"t_bytes32"},{"astId":77758,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"feeReceiver","offset":0,"slot":"255","type":"t_address"},{"astId":77761,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"registryFactory","offset":0,"slot":"256","type":"t_address"},{"astId":77764,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"strategyTemplate","offset":0,"slot":"257","type":"t_address"},{"astId":77767,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"cloneNonce","offset":0,"slot":"258","type":"t_uint256"},{"astId":77770,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"pendingCouncilSafe","offset":0,"slot":"259","type":"t_address_payable"},{"astId":77774,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"registry","offset":0,"slot":"260","type":"t_contract(IRegistry)2802"},{"astId":77778,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"gardenToken","offset":0,"slot":"261","type":"t_contract(IERC20)56900"},{"astId":77782,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"councilSafe","offset":0,"slot":"262","type":"t_contract(ISafe)80232"},{"astId":77786,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"allo","offset":0,"slot":"263","type":"t_contract(FAllo)80223"},{"astId":77789,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"communityName","offset":0,"slot":"264","type":"t_string_storage"},{"astId":77792,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"covenantIpfsHash","offset":0,"slot":"265","type":"t_string_storage"},{"astId":77797,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"enabledStrategies","offset":0,"slot":"266","type":"t_mapping(t_address,t_bool)"},{"astId":77804,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"memberPowerInStrategy","offset":0,"slot":"267","type":"t_mapping(t_address,t_mapping(t_address,t_uint256))"},{"astId":77810,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"addressToMemberInfo","offset":0,"slot":"268","type":"t_mapping(t_address,t_struct(Member)78071_storage)"},{"astId":77816,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"strategiesByMember","offset":0,"slot":"269","type":"t_mapping(t_address,t_array(t_address)dyn_storage)"},{"astId":77823,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"memberActivatedInStrategies","offset":0,"slot":"270","type":"t_mapping(t_address,t_mapping(t_address,t_bool))"},{"astId":77827,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"initialMembers","offset":0,"slot":"271","type":"t_array(t_address)dyn_storage"},{"astId":79617,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"__gap","offset":0,"slot":"272","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_address_payable":{"encoding":"inplace","label":"address payable","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_contract(FAllo)80223":{"encoding":"inplace","label":"contract FAllo","numberOfBytes":"20"},"t_contract(IERC20)56900":{"encoding":"inplace","label":"contract IERC20","numberOfBytes":"20"},"t_contract(IRegistry)2802":{"encoding":"inplace","label":"contract IRegistry","numberOfBytes":"20"},"t_contract(ISafe)80232":{"encoding":"inplace","label":"contract ISafe","numberOfBytes":"20"},"t_mapping(t_address,t_array(t_address)dyn_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => address[])","numberOfBytes":"32","value":"t_array(t_address)dyn_storage"},"t_mapping(t_address,t_bool)":{"encoding":"mapping","key":"t_address","label":"mapping(address => bool)","numberOfBytes":"32","value":"t_bool"},"t_mapping(t_address,t_mapping(t_address,t_bool))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => bool))","numberOfBytes":"32","value":"t_mapping(t_address,t_bool)"},"t_mapping(t_address,t_mapping(t_address,t_uint256))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(address => uint256))","numberOfBytes":"32","value":"t_mapping(t_address,t_uint256)"},"t_mapping(t_address,t_struct(Member)78071_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryCommunityV0_0.Member)","numberOfBytes":"32","value":"t_struct(Member)78071_storage"},"t_mapping(t_address,t_uint256)":{"encoding":"mapping","key":"t_address","label":"mapping(address => uint256)","numberOfBytes":"32","value":"t_uint256"},"t_mapping(t_bytes32,t_struct(RoleData)52423_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct AccessControlUpgradeable.RoleData)","numberOfBytes":"32","value":"t_struct(RoleData)52423_storage"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Member)78071_storage":{"encoding":"inplace","label":"struct RegistryCommunityV0_0.Member","numberOfBytes":"96","members":[{"astId":78066,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"member","offset":0,"slot":"0","type":"t_address"},{"astId":78068,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"stakedAmount","offset":0,"slot":"1","type":"t_uint256"},{"astId":78070,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"isRegistered","offset":0,"slot":"2","type":"t_bool"}]},"t_struct(RoleData)52423_storage":{"encoding":"inplace","label":"struct AccessControlUpgradeable.RoleData","numberOfBytes":"64","members":[{"astId":52420,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"members","offset":0,"slot":"0","type":"t_mapping(t_address,t_bool)"},{"astId":52422,"contract":"pkg/contracts/src/RegistryCommunityV0_0.sol:RegistryCommunityV0_0","label":"adminRole","offset":0,"slot":"1","type":"t_bytes32"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryCommunityV0_0.sol","id":79619,"exportedSymbols":{"AccessControlUpgradeable":[52736],"CVStrategy":[75561],"Clone":[3002],"ERC165Checker":[58291],"FAllo":[80223],"IAllo":[2610],"IERC20":[56900],"IPointStrategy":[72793],"IRegistry":[2802],"ISafe":[80232],"Metadata":[3098],"OwnableUpgradeable":[52942],"ReentrancyGuardUpgradeable":[53276],"RegistryCommunityV0_0":[79618],"RegistryFactory":[79854],"SafeERC20":[57337],"StrategyStruct":[72884],"UUPSUpgradeable":[56044],"console":[29549]},"nodeType":"SourceUnit","src":"42:24931:130","nodes":[{"id":77677,"nodeType":"PragmaDirective","src":"42:24:130","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":77678,"nodeType":"ImportDirective","src":"68:31:130","nodes":[],"absolutePath":"lib/forge-std/src/console.sol","file":"forge-std/console.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":29550,"symbolAliases":[],"unitAlias":""},{"id":77680,"nodeType":"ImportDirective","src":"101:70:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"@openzeppelin/contracts/token/ERC20/IERC20.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":56901,"symbolAliases":[{"foreign":{"id":77679,"name":"IERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56900,"src":"109:6:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77682,"nodeType":"ImportDirective","src":"172:82:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","file":"@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":57338,"symbolAliases":[{"foreign":{"id":77681,"name":"SafeERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57337,"src":"180:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77684,"nodeType":"ImportDirective","src":"255:92:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol","file":"@openzeppelin/contracts/utils/introspection/ERC165Checker.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":58292,"symbolAliases":[{"foreign":{"id":77683,"name":"ERC165Checker","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":58291,"src":"263:13:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77686,"nodeType":"ImportDirective","src":"348:88:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":56045,"symbolAliases":[{"foreign":{"id":77685,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56044,"src":"356:15:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77688,"nodeType":"ImportDirective","src":"438:110:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":52943,"symbolAliases":[{"foreign":{"id":77687,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52942,"src":"446:18:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77690,"nodeType":"ImportDirective","src":"549:132:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":53277,"symbolAliases":[{"foreign":{"id":77689,"name":"ReentrancyGuardUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53276,"src":"557:26:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77692,"nodeType":"ImportDirective","src":"682:126:130","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":52737,"symbolAliases":[{"foreign":{"id":77691,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52736,"src":"690:24:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77694,"nodeType":"ImportDirective","src":"810:66:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IAllo.sol","file":"allo-v2-contracts/core/interfaces/IAllo.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":2611,"symbolAliases":[{"foreign":{"id":77693,"name":"IAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2610,"src":"818:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77696,"nodeType":"ImportDirective","src":"877:65:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Clone.sol","file":"allo-v2-contracts/core/libraries/Clone.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":3003,"symbolAliases":[{"foreign":{"id":77695,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"885:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77699,"nodeType":"ImportDirective","src":"943:84:130","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/interfaces/IRegistry.sol","file":"allo-v2-contracts/core/interfaces/IRegistry.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":2803,"symbolAliases":[{"foreign":{"id":77697,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"951:9:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":77698,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"962:8:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77701,"nodeType":"ImportDirective","src":"1028:45:130","nodes":[],"absolutePath":"pkg/contracts/src/interfaces/FAllo.sol","file":"./interfaces/FAllo.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":80224,"symbolAliases":[{"foreign":{"id":77700,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80223,"src":"1036:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77703,"nodeType":"ImportDirective","src":"1074:45:130","nodes":[],"absolutePath":"pkg/contracts/src/interfaces/ISafe.sol","file":"./interfaces/ISafe.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":80233,"symbolAliases":[{"foreign":{"id":77702,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"1082:5:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77705,"nodeType":"ImportDirective","src":"1120:54:130","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"./RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":79855,"symbolAliases":[{"foreign":{"id":77704,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"1128:15:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77709,"nodeType":"ImportDirective","src":"1175:76:130","nodes":[],"absolutePath":"pkg/contracts/src/CVStrategy.sol","file":"./CVStrategy.sol","nameLocation":"-1:-1:-1","scope":79619,"sourceUnit":75562,"symbolAliases":[{"foreign":{"id":77706,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"1183:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":77707,"name":"CVStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":75561,"src":"1199:10:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"},{"foreign":{"id":77708,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"1211:14:130","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79618,"nodeType":"ContractDefinition","src":"1253:23719:130","nodes":[{"id":77720,"nodeType":"UsingForDirective","src":"1399:32:130","nodes":[],"global":false,"libraryName":{"id":77718,"name":"ERC165Checker","nameLocations":["1405:13:130"],"nodeType":"IdentifierPath","referencedDeclaration":58291,"src":"1405:13:130"},"typeName":{"id":77719,"name":"address","nodeType":"ElementaryTypeName","src":"1423:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77724,"nodeType":"UsingForDirective","src":"1436:27:130","nodes":[],"global":false,"libraryName":{"id":77721,"name":"SafeERC20","nameLocations":["1442:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":57337,"src":"1442:9:130"},"typeName":{"id":77723,"nodeType":"UserDefinedTypeName","pathNode":{"id":77722,"name":"IERC20","nameLocations":["1456:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1456:6:130"},"referencedDeclaration":56900,"src":"1456:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}},{"id":77727,"nodeType":"UsingForDirective","src":"1468:24:130","nodes":[],"global":false,"libraryName":{"id":77725,"name":"Clone","nameLocations":["1474:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":3002,"src":"1474:5:130"},"typeName":{"id":77726,"name":"address","nodeType":"ElementaryTypeName","src":"1484:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":77731,"nodeType":"VariableDeclaration","src":"1578:75:130","nodes":[],"constant":true,"documentation":{"id":77728,"nodeType":"StructuredDocumentation","src":"1498:75:130","text":"@notice The native address to represent native token eg: ETH in mainnet"},"functionSelector":"a0cf0aea","mutability":"constant","name":"NATIVE","nameLocation":"1602:6:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77729,"name":"address","nodeType":"ElementaryTypeName","src":"1578:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"value":{"hexValue":"307845656565654565656545654565654565456545656545454565656565456565656565656545456545","id":77730,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1611:42:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"value":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE"},"visibility":"public"},{"id":77737,"nodeType":"VariableDeclaration","src":"1743:49:130","nodes":[],"constant":true,"documentation":{"id":77732,"nodeType":"StructuredDocumentation","src":"1659:79:130","text":"@notice The precision scale used in the contract to avoid loss of precision"},"functionSelector":"d7050f07","mutability":"constant","name":"PRECISION_SCALE","nameLocation":"1767:15:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77733,"name":"uint256","nodeType":"ElementaryTypeName","src":"1743:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"},"id":77736,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":77734,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1785:2:130","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"**","rightExpression":{"hexValue":"34","id":77735,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1791:1:130","typeDescriptions":{"typeIdentifier":"t_rational_4_by_1","typeString":"int_const 4"},"value":"4"},"src":"1785:7:130","typeDescriptions":{"typeIdentifier":"t_rational_10000_by_1","typeString":"int_const 10000"}},"visibility":"public"},{"id":77743,"nodeType":"VariableDeclaration","src":"1867:54:130","nodes":[],"constant":true,"documentation":{"id":77738,"nodeType":"StructuredDocumentation","src":"1798:64:130","text":"@notice The maximum fee that can be charged to the community"},"functionSelector":"bc063e1a","mutability":"constant","name":"MAX_FEE","nameLocation":"1891:7:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77739,"name":"uint256","nodeType":"ElementaryTypeName","src":"1867:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":77742,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"3130","id":77740,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1901:2:130","typeDescriptions":{"typeIdentifier":"t_rational_10_by_1","typeString":"int_const 10"},"value":"10"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":77741,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77737,"src":"1906:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1901:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77746,"nodeType":"VariableDeclaration","src":"1979:25:130","nodes":[],"constant":false,"documentation":{"id":77744,"nodeType":"StructuredDocumentation","src":"1928:46:130","text":"@notice Enable or disable the kick feature"},"functionSelector":"1f787d28","mutability":"mutable","name":"isKickEnabled","nameLocation":"1991:13:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77745,"name":"bool","nodeType":"ElementaryTypeName","src":"1979:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"public"},{"id":77749,"nodeType":"VariableDeclaration","src":"2078:34:130","nodes":[],"constant":false,"documentation":{"id":77747,"nodeType":"StructuredDocumentation","src":"2011:62:130","text":"@notice The amount of tokens required to register a member"},"functionSelector":"78a0b8a9","mutability":"mutable","name":"registerStakeAmount","nameLocation":"2093:19:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77748,"name":"uint256","nodeType":"ElementaryTypeName","src":"2078:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77752,"nodeType":"VariableDeclaration","src":"2189:27:130","nodes":[],"constant":false,"documentation":{"id":77750,"nodeType":"StructuredDocumentation","src":"2118:66:130","text":"@notice The fee charged to the community for each registration"},"functionSelector":"8961be6b","mutability":"mutable","name":"communityFee","nameLocation":"2204:12:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77751,"name":"uint256","nodeType":"ElementaryTypeName","src":"2189:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77755,"nodeType":"VariableDeclaration","src":"2290:24:130","nodes":[],"constant":false,"documentation":{"id":77753,"nodeType":"StructuredDocumentation","src":"2222:63:130","text":"@notice The profileId of the community in the Allo Registry"},"functionSelector":"08386eba","mutability":"mutable","name":"profileId","nameLocation":"2305:9:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77754,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2290:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77758,"nodeType":"VariableDeclaration","src":"2381:26:130","nodes":[],"constant":false,"documentation":{"id":77756,"nodeType":"StructuredDocumentation","src":"2321:55:130","text":"@notice The address that receives the community fee"},"functionSelector":"b3f00674","mutability":"mutable","name":"feeReceiver","nameLocation":"2396:11:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77757,"name":"address","nodeType":"ElementaryTypeName","src":"2381:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77761,"nodeType":"VariableDeclaration","src":"2465:30:130","nodes":[],"constant":false,"documentation":{"id":77759,"nodeType":"StructuredDocumentation","src":"2413:47:130","text":"@notice The address of the registry factory"},"functionSelector":"f86c5f89","mutability":"mutable","name":"registryFactory","nameLocation":"2480:15:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77760,"name":"address","nodeType":"ElementaryTypeName","src":"2465:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77764,"nodeType":"VariableDeclaration","src":"2554:31:130","nodes":[],"constant":false,"documentation":{"id":77762,"nodeType":"StructuredDocumentation","src":"2501:48:130","text":"@notice The address of the strategy template"},"functionSelector":"5c94e4d2","mutability":"mutable","name":"strategyTemplate","nameLocation":"2569:16:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77763,"name":"address","nodeType":"ElementaryTypeName","src":"2554:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77767,"nodeType":"VariableDeclaration","src":"2652:25:130","nodes":[],"constant":false,"documentation":{"id":77765,"nodeType":"StructuredDocumentation","src":"2591:56:130","text":"@notice The nonce used to create new strategy clones"},"functionSelector":"33960459","mutability":"mutable","name":"cloneNonce","nameLocation":"2667:10:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77766,"name":"uint256","nodeType":"ElementaryTypeName","src":"2652:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77770,"nodeType":"VariableDeclaration","src":"2745:41:130","nodes":[],"constant":false,"documentation":{"id":77768,"nodeType":"StructuredDocumentation","src":"2683:57:130","text":"@notice The address of the pending council safe owner"},"functionSelector":"68decabb","mutability":"mutable","name":"pendingCouncilSafe","nameLocation":"2768:18:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":77769,"name":"address","nodeType":"ElementaryTypeName","src":"2745:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"public"},{"id":77774,"nodeType":"VariableDeclaration","src":"2836:25:130","nodes":[],"constant":false,"documentation":{"id":77771,"nodeType":"StructuredDocumentation","src":"2793:38:130","text":"@notice The Registry Allo contract"},"functionSelector":"7b103999","mutability":"mutable","name":"registry","nameLocation":"2853:8:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"},"typeName":{"id":77773,"nodeType":"UserDefinedTypeName","pathNode":{"id":77772,"name":"IRegistry","nameLocations":["2836:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":2802,"src":"2836:9:130"},"referencedDeclaration":2802,"src":"2836:9:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"visibility":"public"},{"id":77778,"nodeType":"VariableDeclaration","src":"2924:25:130","nodes":[],"constant":false,"documentation":{"id":77775,"nodeType":"StructuredDocumentation","src":"2867:52:130","text":"@notice The token used to stake in the community"},"functionSelector":"db61d65c","mutability":"mutable","name":"gardenToken","nameLocation":"2938:11:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":77777,"nodeType":"UserDefinedTypeName","pathNode":{"id":77776,"name":"IERC20","nameLocations":["2924:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"2924:6:130"},"referencedDeclaration":56900,"src":"2924:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"public"},{"id":77782,"nodeType":"VariableDeclaration","src":"3005:24:130","nodes":[],"constant":false,"documentation":{"id":77779,"nodeType":"StructuredDocumentation","src":"2955:45:130","text":"@notice The council safe contract address"},"functionSelector":"6c53db9a","mutability":"mutable","name":"councilSafe","nameLocation":"3018:11:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"},"typeName":{"id":77781,"nodeType":"UserDefinedTypeName","pathNode":{"id":77780,"name":"ISafe","nameLocations":["3005:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":80232,"src":"3005:5:130"},"referencedDeclaration":80232,"src":"3005:5:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"visibility":"public"},{"id":77786,"nodeType":"VariableDeclaration","src":"3077:17:130","nodes":[],"constant":false,"documentation":{"id":77783,"nodeType":"StructuredDocumentation","src":"3035:37:130","text":"@notice The Allo contract address"},"functionSelector":"d6d8428d","mutability":"mutable","name":"allo","nameLocation":"3090:4:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"},"typeName":{"id":77785,"nodeType":"UserDefinedTypeName","pathNode":{"id":77784,"name":"FAllo","nameLocations":["3077:5:130"],"nodeType":"IdentifierPath","referencedDeclaration":80223,"src":"3077:5:130"},"referencedDeclaration":80223,"src":"3077:5:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"visibility":"public"},{"id":77789,"nodeType":"VariableDeclaration","src":"3136:27:130","nodes":[],"constant":false,"documentation":{"id":77787,"nodeType":"StructuredDocumentation","src":"3101:30:130","text":"@notice The community name"},"functionSelector":"c6d572ae","mutability":"mutable","name":"communityName","nameLocation":"3150:13:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":77788,"name":"string","nodeType":"ElementaryTypeName","src":"3136:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":77792,"nodeType":"VariableDeclaration","src":"3221:30:130","nodes":[],"constant":false,"documentation":{"id":77790,"nodeType":"StructuredDocumentation","src":"3169:47:130","text":"@notice The covenant IPFS hash of community"},"functionSelector":"b64e39af","mutability":"mutable","name":"covenantIpfsHash","nameLocation":"3235:16:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":77791,"name":"string","nodeType":"ElementaryTypeName","src":"3221:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"public"},{"id":77797,"nodeType":"VariableDeclaration","src":"3367:68:130","nodes":[],"constant":false,"documentation":{"id":77793,"nodeType":"StructuredDocumentation","src":"3315:47:130","text":"@notice List of enabled/disabled strategies"},"functionSelector":"3a871fe1","mutability":"mutable","name":"enabledStrategies","nameLocation":"3418:17:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"typeName":{"id":77796,"keyName":"strategy","keyNameLocation":"3383:8:130","keyType":{"id":77794,"name":"address","nodeType":"ElementaryTypeName","src":"3375:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3367:43:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isEnabled","valueNameLocation":"3400:9:130","valueType":{"id":77795,"name":"bool","nodeType":"ElementaryTypeName","src":"3395:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}},"visibility":"public"},{"id":77804,"nodeType":"VariableDeclaration","src":"3503:98:130","nodes":[],"constant":false,"documentation":{"id":77798,"nodeType":"StructuredDocumentation","src":"3441:57:130","text":"@notice Power points for each member in each strategy"},"functionSelector":"65e3864c","mutability":"mutable","name":"memberPowerInStrategy","nameLocation":"3580:21:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"typeName":{"id":77803,"keyName":"strategy","keyNameLocation":"3519:8:130","keyType":{"id":77799,"name":"address","nodeType":"ElementaryTypeName","src":"3511:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3503:69:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":77802,"keyName":"member","keyNameLocation":"3547:6:130","keyType":{"id":77800,"name":"address","nodeType":"ElementaryTypeName","src":"3539:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3531:40:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"},"valueName":"power","valueNameLocation":"3565:5:130","valueType":{"id":77801,"name":"uint256","nodeType":"ElementaryTypeName","src":"3557:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}}},"visibility":"public"},{"id":77810,"nodeType":"VariableDeclaration","src":"3701:60:130","nodes":[],"constant":false,"documentation":{"id":77805,"nodeType":"StructuredDocumentation","src":"3607:89:130","text":"@notice Member information as the staked amount and if is registered in the community"},"functionSelector":"88cfe684","mutability":"mutable","name":"addressToMemberInfo","nameLocation":"3742:19:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member)"},"typeName":{"id":77809,"keyName":"member","keyNameLocation":"3717:6:130","keyType":{"id":77806,"name":"address","nodeType":"ElementaryTypeName","src":"3709:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3701:33:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":77808,"nodeType":"UserDefinedTypeName","pathNode":{"id":77807,"name":"Member","nameLocations":["3727:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":78071,"src":"3727:6:130"},"referencedDeclaration":78071,"src":"3727:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"}}},"visibility":"public"},{"id":77816,"nodeType":"VariableDeclaration","src":"3832:82:130","nodes":[],"constant":false,"documentation":{"id":77811,"nodeType":"StructuredDocumentation","src":"3767:60:130","text":"@notice List of strategies for each member are activated"},"functionSelector":"2b38c69c","mutability":"mutable","name":"strategiesByMember","nameLocation":"3896:18:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"typeName":{"id":77815,"keyName":"member","keyNameLocation":"3848:6:130","keyType":{"id":77812,"name":"address","nodeType":"ElementaryTypeName","src":"3840:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3832:56:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[])"},"valueName":"strategiesAddresses","valueNameLocation":"3868:19:130","valueType":{"baseType":{"id":77813,"name":"address","nodeType":"ElementaryTypeName","src":"3858:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77814,"nodeType":"ArrayTypeName","src":"3858:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"visibility":"public"},{"id":77823,"nodeType":"VariableDeclaration","src":"3992:107:130","nodes":[],"constant":false,"documentation":{"id":77817,"nodeType":"StructuredDocumentation","src":"3920:67:130","text":"@notice Mapping to check if a member is activated in a strategy"},"functionSelector":"477a5cc0","mutability":"mutable","name":"memberActivatedInStrategies","nameLocation":"4072:27:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"typeName":{"id":77822,"keyName":"member","keyNameLocation":"4008:6:130","keyType":{"id":77818,"name":"address","nodeType":"ElementaryTypeName","src":"4000:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"3992:72:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":77821,"keyName":"strategy","keyNameLocation":"4034:8:130","keyType":{"id":77819,"name":"address","nodeType":"ElementaryTypeName","src":"4026:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"4018:45:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"},"valueName":"isActivated","valueNameLocation":"4051:11:130","valueType":{"id":77820,"name":"bool","nodeType":"ElementaryTypeName","src":"4046:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}}},"visibility":"public"},{"id":77827,"nodeType":"VariableDeclaration","src":"4192:24:130","nodes":[],"constant":false,"documentation":{"id":77824,"nodeType":"StructuredDocumentation","src":"4106:81:130","text":"@notice List of initial members to be added as pool managers in the Allo Pool"},"mutability":"mutable","name":"initialMembers","nameLocation":"4202:14:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[]"},"typeName":{"baseType":{"id":77825,"name":"address","nodeType":"ElementaryTypeName","src":"4192:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77826,"nodeType":"ArrayTypeName","src":"4192:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"id":77833,"nodeType":"VariableDeclaration","src":"4433:68:130","nodes":[],"constant":true,"documentation":{"id":77828,"nodeType":"StructuredDocumentation","src":"4388:40:130","text":"@notice Role to council safe members"},"functionSelector":"733a2d1f","mutability":"constant","name":"COUNCIL_MEMBER","nameLocation":"4457:14:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77829,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4433:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"434f554e43494c5f4d454d424552","id":77831,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4484:16:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa","typeString":"literal_string \"COUNCIL_MEMBER\""},"value":"COUNCIL_MEMBER"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa","typeString":"literal_string \"COUNCIL_MEMBER\""}],"id":77830,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"4474:9:130","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":77832,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4474:27:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":77837,"nodeType":"EventDefinition","src":"4674:29:130","nodes":[],"anonymous":false,"eventSelector":"aaded18d4d508696508b945d03ff3d168110dbb73e17aeda699745655fa958d2","name":"AlloSet","nameLocation":"4680:7:130","parameters":{"id":77836,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77835,"indexed":false,"mutability":"mutable","name":"_allo","nameLocation":"4696:5:130","nodeType":"VariableDeclaration","scope":77837,"src":"4688:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77834,"name":"address","nodeType":"ElementaryTypeName","src":"4688:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4687:15:130"}},{"id":77841,"nodeType":"EventDefinition","src":"4708:36:130","nodes":[],"anonymous":false,"eventSelector":"ad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb68872","name":"CouncilSafeSet","nameLocation":"4714:14:130","parameters":{"id":77840,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77839,"indexed":false,"mutability":"mutable","name":"_safe","nameLocation":"4737:5:130","nodeType":"VariableDeclaration","scope":77841,"src":"4729:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77838,"name":"address","nodeType":"ElementaryTypeName","src":"4729:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4728:15:130"}},{"id":77847,"nodeType":"EventDefinition","src":"4749:74:130","nodes":[],"anonymous":false,"eventSelector":"83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf8","name":"CouncilSafeChangeStarted","nameLocation":"4755:24:130","parameters":{"id":77846,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77843,"indexed":false,"mutability":"mutable","name":"_safeOwner","nameLocation":"4788:10:130","nodeType":"VariableDeclaration","scope":77847,"src":"4780:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77842,"name":"address","nodeType":"ElementaryTypeName","src":"4780:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77845,"indexed":false,"mutability":"mutable","name":"_newSafeOwner","nameLocation":"4808:13:130","nodeType":"VariableDeclaration","scope":77847,"src":"4800:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77844,"name":"address","nodeType":"ElementaryTypeName","src":"4800:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4779:43:130"}},{"id":77853,"nodeType":"EventDefinition","src":"4828:63:130","nodes":[],"anonymous":false,"eventSelector":"67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689","name":"MemberRegistered","nameLocation":"4834:16:130","parameters":{"id":77852,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77849,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"4859:7:130","nodeType":"VariableDeclaration","scope":77853,"src":"4851:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77848,"name":"address","nodeType":"ElementaryTypeName","src":"4851:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77851,"indexed":false,"mutability":"mutable","name":"_amountStaked","nameLocation":"4876:13:130","nodeType":"VariableDeclaration","scope":77853,"src":"4868:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77850,"name":"uint256","nodeType":"ElementaryTypeName","src":"4868:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4850:40:130"}},{"id":77859,"nodeType":"EventDefinition","src":"4896:67:130","nodes":[],"anonymous":false,"eventSelector":"a13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4","name":"MemberUnregistered","nameLocation":"4902:18:130","parameters":{"id":77858,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77855,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"4929:7:130","nodeType":"VariableDeclaration","scope":77859,"src":"4921:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77854,"name":"address","nodeType":"ElementaryTypeName","src":"4921:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77857,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"4946:15:130","nodeType":"VariableDeclaration","scope":77859,"src":"4938:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77856,"name":"uint256","nodeType":"ElementaryTypeName","src":"4938:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4920:42:130"}},{"id":77867,"nodeType":"EventDefinition","src":"4968:87:130","nodes":[],"anonymous":false,"eventSelector":"b5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a3","name":"MemberKicked","nameLocation":"4974:12:130","parameters":{"id":77866,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77861,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"4995:7:130","nodeType":"VariableDeclaration","scope":77867,"src":"4987:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77860,"name":"address","nodeType":"ElementaryTypeName","src":"4987:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77863,"indexed":false,"mutability":"mutable","name":"_transferAddress","nameLocation":"5012:16:130","nodeType":"VariableDeclaration","scope":77867,"src":"5004:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77862,"name":"address","nodeType":"ElementaryTypeName","src":"5004:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77865,"indexed":false,"mutability":"mutable","name":"_amountReturned","nameLocation":"5038:15:130","nodeType":"VariableDeclaration","scope":77867,"src":"5030:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77864,"name":"uint256","nodeType":"ElementaryTypeName","src":"5030:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4986:68:130"}},{"id":77871,"nodeType":"EventDefinition","src":"5060:43:130","nodes":[],"anonymous":false,"eventSelector":"611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6","name":"CommunityFeeUpdated","nameLocation":"5066:19:130","parameters":{"id":77870,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77869,"indexed":false,"mutability":"mutable","name":"_newFee","nameLocation":"5094:7:130","nodeType":"VariableDeclaration","scope":77871,"src":"5086:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77868,"name":"uint256","nodeType":"ElementaryTypeName","src":"5086:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5085:17:130"}},{"id":77880,"nodeType":"EventDefinition","src":"5108:89:130","nodes":[],"anonymous":false,"eventSelector":"2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205","name":"RegistryInitialized","nameLocation":"5114:19:130","parameters":{"id":77879,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77873,"indexed":false,"mutability":"mutable","name":"_profileId","nameLocation":"5142:10:130","nodeType":"VariableDeclaration","scope":77880,"src":"5134:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":77872,"name":"bytes32","nodeType":"ElementaryTypeName","src":"5134:7:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":77875,"indexed":false,"mutability":"mutable","name":"_communityName","nameLocation":"5161:14:130","nodeType":"VariableDeclaration","scope":77880,"src":"5154:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":77874,"name":"string","nodeType":"ElementaryTypeName","src":"5154:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":77878,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"5186:9:130","nodeType":"VariableDeclaration","scope":77880,"src":"5177:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":77877,"nodeType":"UserDefinedTypeName","pathNode":{"id":77876,"name":"Metadata","nameLocations":["5177:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"5177:8:130"},"referencedDeclaration":3098,"src":"5177:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"5133:63:130"}},{"id":77884,"nodeType":"EventDefinition","src":"5202:39:130","nodes":[],"anonymous":false,"eventSelector":"3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f1","name":"StrategyAdded","nameLocation":"5208:13:130","parameters":{"id":77883,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77882,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"5230:9:130","nodeType":"VariableDeclaration","scope":77884,"src":"5222:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77881,"name":"address","nodeType":"ElementaryTypeName","src":"5222:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5221:19:130"}},{"id":77888,"nodeType":"EventDefinition","src":"5246:41:130","nodes":[],"anonymous":false,"eventSelector":"09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea4","name":"StrategyRemoved","nameLocation":"5252:15:130","parameters":{"id":77887,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77886,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"5276:9:130","nodeType":"VariableDeclaration","scope":77888,"src":"5268:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77885,"name":"address","nodeType":"ElementaryTypeName","src":"5268:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5267:19:130"}},{"id":77896,"nodeType":"EventDefinition","src":"5292:93:130","nodes":[],"anonymous":false,"eventSelector":"f56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec","name":"MemberActivatedStrategy","nameLocation":"5298:23:130","parameters":{"id":77895,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77890,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"5330:7:130","nodeType":"VariableDeclaration","scope":77896,"src":"5322:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77889,"name":"address","nodeType":"ElementaryTypeName","src":"5322:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77892,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"5347:9:130","nodeType":"VariableDeclaration","scope":77896,"src":"5339:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77891,"name":"address","nodeType":"ElementaryTypeName","src":"5339:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77894,"indexed":false,"mutability":"mutable","name":"_pointsToIncrease","nameLocation":"5366:17:130","nodeType":"VariableDeclaration","scope":77896,"src":"5358:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77893,"name":"uint256","nodeType":"ElementaryTypeName","src":"5358:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5321:63:130"}},{"id":77902,"nodeType":"EventDefinition","src":"5390:68:130","nodes":[],"anonymous":false,"eventSelector":"00de109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b","name":"MemberDeactivatedStrategy","nameLocation":"5396:25:130","parameters":{"id":77901,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77898,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"5430:7:130","nodeType":"VariableDeclaration","scope":77902,"src":"5422:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77897,"name":"address","nodeType":"ElementaryTypeName","src":"5422:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77900,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"5447:9:130","nodeType":"VariableDeclaration","scope":77902,"src":"5439:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77899,"name":"address","nodeType":"ElementaryTypeName","src":"5439:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"5421:36:130"}},{"id":77906,"nodeType":"EventDefinition","src":"5463:47:130","nodes":[],"anonymous":false,"eventSelector":"5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f","name":"BasisStakedAmountSet","nameLocation":"5469:20:130","parameters":{"id":77905,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77904,"indexed":false,"mutability":"mutable","name":"_newAmount","nameLocation":"5498:10:130","nodeType":"VariableDeclaration","scope":77906,"src":"5490:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77903,"name":"uint256","nodeType":"ElementaryTypeName","src":"5490:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5489:20:130"}},{"id":77912,"nodeType":"EventDefinition","src":"5515:67:130","nodes":[],"anonymous":false,"eventSelector":"576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f","name":"MemberPowerIncreased","nameLocation":"5521:20:130","parameters":{"id":77911,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77908,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"5550:7:130","nodeType":"VariableDeclaration","scope":77912,"src":"5542:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77907,"name":"address","nodeType":"ElementaryTypeName","src":"5542:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77910,"indexed":false,"mutability":"mutable","name":"_stakedAmount","nameLocation":"5567:13:130","nodeType":"VariableDeclaration","scope":77912,"src":"5559:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77909,"name":"uint256","nodeType":"ElementaryTypeName","src":"5559:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5541:40:130"}},{"id":77918,"nodeType":"EventDefinition","src":"5587:69:130","nodes":[],"anonymous":false,"eventSelector":"6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8","name":"MemberPowerDecreased","nameLocation":"5593:20:130","parameters":{"id":77917,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77914,"indexed":false,"mutability":"mutable","name":"_member","nameLocation":"5622:7:130","nodeType":"VariableDeclaration","scope":77918,"src":"5614:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77913,"name":"address","nodeType":"ElementaryTypeName","src":"5614:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77916,"indexed":false,"mutability":"mutable","name":"_unstakedAmount","nameLocation":"5639:15:130","nodeType":"VariableDeclaration","scope":77918,"src":"5631:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77915,"name":"uint256","nodeType":"ElementaryTypeName","src":"5631:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5613:42:130"}},{"id":77931,"nodeType":"EventDefinition","src":"5661:110:130","nodes":[],"anonymous":false,"eventSelector":"778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d283","name":"PoolCreated","nameLocation":"5667:11:130","parameters":{"id":77930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77920,"indexed":false,"mutability":"mutable","name":"_poolId","nameLocation":"5687:7:130","nodeType":"VariableDeclaration","scope":77931,"src":"5679:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77919,"name":"uint256","nodeType":"ElementaryTypeName","src":"5679:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77922,"indexed":false,"mutability":"mutable","name":"_strategy","nameLocation":"5704:9:130","nodeType":"VariableDeclaration","scope":77931,"src":"5696:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77921,"name":"address","nodeType":"ElementaryTypeName","src":"5696:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77924,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"5723:10:130","nodeType":"VariableDeclaration","scope":77931,"src":"5715:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77923,"name":"address","nodeType":"ElementaryTypeName","src":"5715:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77926,"indexed":false,"mutability":"mutable","name":"_token","nameLocation":"5743:6:130","nodeType":"VariableDeclaration","scope":77931,"src":"5735:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77925,"name":"address","nodeType":"ElementaryTypeName","src":"5735:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77929,"indexed":false,"mutability":"mutable","name":"_metadata","nameLocation":"5760:9:130","nodeType":"VariableDeclaration","scope":77931,"src":"5751:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":77928,"nodeType":"UserDefinedTypeName","pathNode":{"id":77927,"name":"Metadata","nameLocations":["5751:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"5751:8:130"},"referencedDeclaration":3098,"src":"5751:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"5678:92:130"}},{"id":77946,"nodeType":"FunctionDefinition","src":"5942:148:130","nodes":[],"body":{"id":77945,"nodeType":"Block","src":"5982:108:130","nodes":[],"statements":[{"condition":{"id":77939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"5996:36:130","subExpression":{"arguments":[{"id":77935,"name":"COUNCIL_MEMBER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77833,"src":"6005:14:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":77936,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6021:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77937,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6025:6:130","memberName":"sender","nodeType":"MemberAccess","src":"6021:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":77934,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"5997:7:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":77938,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5997:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77944,"nodeType":"IfStatement","src":"5992:92:130","trueBody":{"id":77943,"nodeType":"Block","src":"6034:50:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77940,"name":"UserNotInCouncil","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78030,"src":"6055:16:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77941,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6055:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77942,"nodeType":"RevertStatement","src":"6048:25:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyCouncilSafe","nameLocation":"5951:15:130","parameters":{"id":77932,"nodeType":"ParameterList","parameters":[],"src":"5966:2:130"},"returnParameters":{"id":77933,"nodeType":"ParameterList","parameters":[],"src":"5982:0:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77960,"nodeType":"FunctionDefinition","src":"6096:143:130","nodes":[],"body":{"id":77959,"nodeType":"Block","src":"6145:94:130","nodes":[],"statements":[{"condition":{"id":77953,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6159:21:130","subExpression":{"arguments":[{"expression":{"id":77950,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6169:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":77951,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6173:6:130","memberName":"sender","nodeType":"MemberAccess","src":"6169:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77949,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79186,"src":"6160:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77952,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6160:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77958,"nodeType":"IfStatement","src":"6155:78:130","trueBody":{"id":77957,"nodeType":"Block","src":"6182:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77954,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"6203:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77955,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6203:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77956,"nodeType":"RevertStatement","src":"6196:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberSender","nameLocation":"6105:24:130","parameters":{"id":77947,"nodeType":"ParameterList","parameters":[],"src":"6129:2:130"},"returnParameters":{"id":77948,"nodeType":"ParameterList","parameters":[],"src":"6145:0:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77975,"nodeType":"FunctionDefinition","src":"6245:156:130","nodes":[],"body":{"id":77974,"nodeType":"Block","src":"6310:91:130","nodes":[],"statements":[{"condition":{"id":77968,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6324:18:130","subExpression":{"arguments":[{"id":77966,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77962,"src":"6334:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77965,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79186,"src":"6325:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":77967,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6325:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77973,"nodeType":"IfStatement","src":"6320:75:130","trueBody":{"id":77972,"nodeType":"Block","src":"6344:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77969,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"6365:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77970,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6365:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77971,"nodeType":"RevertStatement","src":"6358:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyRegistryMemberAddress","nameLocation":"6254:25:130","parameters":{"id":77963,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77962,"mutability":"mutable","name":"_sender","nameLocation":"6288:7:130","nodeType":"VariableDeclaration","scope":77975,"src":"6280:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77961,"name":"address","nodeType":"ElementaryTypeName","src":"6280:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6279:17:130"},"returnParameters":{"id":77964,"nodeType":"ParameterList","parameters":[],"src":"6310:0:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":77990,"nodeType":"FunctionDefinition","src":"6407:162:130","nodes":[],"body":{"id":77989,"nodeType":"Block","src":"6468:101:130","nodes":[],"statements":[{"condition":{"id":77983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6482:29:130","subExpression":{"baseExpression":{"id":77980,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77797,"src":"6483:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":77982,"indexExpression":{"id":77981,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"6501:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6483:28:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77988,"nodeType":"IfStatement","src":"6478:85:130","trueBody":{"id":77987,"nodeType":"Block","src":"6513:50:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77984,"name":"StrategyDisabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78044,"src":"6534:16:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6534:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77986,"nodeType":"RevertStatement","src":"6527:25:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyEnabled","nameLocation":"6416:19:130","parameters":{"id":77978,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77977,"mutability":"mutable","name":"_strategy","nameLocation":"6444:9:130","nodeType":"VariableDeclaration","scope":77990,"src":"6436:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77976,"name":"address","nodeType":"ElementaryTypeName","src":"6436:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6435:19:130"},"returnParameters":{"id":77979,"nodeType":"ParameterList","parameters":[],"src":"6468:0:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78006,"nodeType":"FunctionDefinition","src":"6575:171:130","nodes":[],"body":{"id":78005,"nodeType":"Block","src":"6653:93:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77999,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77997,"name":"_sender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77992,"src":"6667:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":77998,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77994,"src":"6678:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"6667:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78004,"nodeType":"IfStatement","src":"6663:77:130","trueBody":{"id":78003,"nodeType":"Block","src":"6689:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78000,"name":"SenderNotStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78048,"src":"6710:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78001,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6710:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78002,"nodeType":"RevertStatement","src":"6703:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyStrategyAddress","nameLocation":"6584:19:130","parameters":{"id":77995,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77992,"mutability":"mutable","name":"_sender","nameLocation":"6612:7:130","nodeType":"VariableDeclaration","scope":78006,"src":"6604:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77991,"name":"address","nodeType":"ElementaryTypeName","src":"6604:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77994,"mutability":"mutable","name":"_strategy","nameLocation":"6629:9:130","nodeType":"VariableDeclaration","scope":78006,"src":"6621:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77993,"name":"address","nodeType":"ElementaryTypeName","src":"6621:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6603:36:130"},"returnParameters":{"id":77996,"nodeType":"ParameterList","parameters":[],"src":"6653:0:130"},"scope":79618,"stateMutability":"pure","virtual":false,"visibility":"private"},{"id":78024,"nodeType":"FunctionDefinition","src":"6752:189:130","nodes":[],"body":{"id":78023,"nodeType":"Block","src":"6817:124:130","nodes":[],"statements":[{"condition":{"id":78017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"6831:51:130","subExpression":{"baseExpression":{"baseExpression":{"id":78011,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77823,"src":"6832:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":78014,"indexExpression":{"expression":{"id":78012,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"6860:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6864:6:130","memberName":"sender","nodeType":"MemberAccess","src":"6860:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6832:39:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78016,"indexExpression":{"id":78015,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78008,"src":"6872:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"6832:50:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78022,"nodeType":"IfStatement","src":"6827:108:130","trueBody":{"id":78021,"nodeType":"Block","src":"6884:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78018,"name":"PointsDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78056,"src":"6905:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6905:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78020,"nodeType":"RevertStatement","src":"6898:26:130"}]}}]},"implemented":true,"kind":"function","modifiers":[],"name":"onlyActivatedInStrategy","nameLocation":"6761:23:130","parameters":{"id":78009,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78008,"mutability":"mutable","name":"_strategy","nameLocation":"6793:9:130","nodeType":"VariableDeclaration","scope":78024,"src":"6785:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78007,"name":"address","nodeType":"ElementaryTypeName","src":"6785:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"6784:19:130"},"returnParameters":{"id":78010,"nodeType":"ParameterList","parameters":[],"src":"6817:0:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":78026,"nodeType":"ErrorDefinition","src":"7113:28:130","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"7119:19:130","parameters":{"id":78025,"nodeType":"ParameterList","parameters":[],"src":"7138:2:130"}},{"id":78028,"nodeType":"ErrorDefinition","src":"7146:29:130","nodes":[],"errorSelector":"5df4b1ef","name":"RegistryCannotBeZero","nameLocation":"7152:20:130","parameters":{"id":78027,"nodeType":"ParameterList","parameters":[],"src":"7172:2:130"}},{"id":78030,"nodeType":"ErrorDefinition","src":"7180:25:130","nodes":[],"errorSelector":"f62651fa","name":"UserNotInCouncil","nameLocation":"7186:16:130","parameters":{"id":78029,"nodeType":"ParameterList","parameters":[],"src":"7202:2:130"}},{"id":78032,"nodeType":"ErrorDefinition","src":"7210:26:130","nodes":[],"errorSelector":"6a5cfb6d","name":"UserNotInRegistry","nameLocation":"7216:17:130","parameters":{"id":78031,"nodeType":"ParameterList","parameters":[],"src":"7233:2:130"}},{"id":78034,"nodeType":"ErrorDefinition","src":"7241:30:130","nodes":[],"errorSelector":"9e4a65f6","name":"UserAlreadyRegistered","nameLocation":"7247:21:130","parameters":{"id":78033,"nodeType":"ParameterList","parameters":[],"src":"7268:2:130"}},{"id":78036,"nodeType":"ErrorDefinition","src":"7276:27:130","nodes":[],"errorSelector":"e9a644b8","name":"UserNotGardenOwner","nameLocation":"7282:18:130","parameters":{"id":78035,"nodeType":"ParameterList","parameters":[],"src":"7300:2:130"}},{"id":78038,"nodeType":"ErrorDefinition","src":"7308:29:130","nodes":[],"errorSelector":"d5b9bc96","name":"UserAlreadyActivated","nameLocation":"7314:20:130","parameters":{"id":78037,"nodeType":"ParameterList","parameters":[],"src":"7334:2:130"}},{"id":78040,"nodeType":"ErrorDefinition","src":"7342:31:130","nodes":[],"errorSelector":"c12369dc","name":"UserAlreadyDeactivated","nameLocation":"7348:22:130","parameters":{"id":78039,"nodeType":"ParameterList","parameters":[],"src":"7370:2:130"}},{"id":78042,"nodeType":"ErrorDefinition","src":"7378:23:130","nodes":[],"errorSelector":"968a4d2c","name":"StrategyExists","nameLocation":"7384:14:130","parameters":{"id":78041,"nodeType":"ParameterList","parameters":[],"src":"7398:2:130"}},{"id":78044,"nodeType":"ErrorDefinition","src":"7406:25:130","nodes":[],"errorSelector":"46c26e4b","name":"StrategyDisabled","nameLocation":"7412:16:130","parameters":{"id":78043,"nodeType":"ParameterList","parameters":[],"src":"7428:2:130"}},{"id":78046,"nodeType":"ErrorDefinition","src":"7436:26:130","nodes":[],"errorSelector":"ebcd0d6e","name":"SenderNotNewOwner","nameLocation":"7442:17:130","parameters":{"id":78045,"nodeType":"ParameterList","parameters":[],"src":"7459:2:130"}},{"id":78048,"nodeType":"ErrorDefinition","src":"7467:26:130","nodes":[],"errorSelector":"bbe79611","name":"SenderNotStrategy","nameLocation":"7473:17:130","parameters":{"id":78047,"nodeType":"ParameterList","parameters":[],"src":"7490:2:130"}},{"id":78050,"nodeType":"ErrorDefinition","src":"7498:26:130","nodes":[],"errorSelector":"c70d18aa","name":"ValueCannotBeZero","nameLocation":"7504:17:130","parameters":{"id":78049,"nodeType":"ParameterList","parameters":[],"src":"7521:2:130"}},{"id":78052,"nodeType":"ErrorDefinition","src":"7529:29:130","nodes":[],"errorSelector":"fe925f7d","name":"NewFeeGreaterThanMax","nameLocation":"7535:20:130","parameters":{"id":78051,"nodeType":"ParameterList","parameters":[],"src":"7555:2:130"}},{"id":78054,"nodeType":"ErrorDefinition","src":"7563:23:130","nodes":[],"errorSelector":"cb63dc72","name":"KickNotEnabled","nameLocation":"7569:14:130","parameters":{"id":78053,"nodeType":"ParameterList","parameters":[],"src":"7583:2:130"}},{"id":78056,"nodeType":"ErrorDefinition","src":"7591:26:130","nodes":[],"errorSelector":"d4d3290e","name":"PointsDeactivated","nameLocation":"7597:17:130","parameters":{"id":78055,"nodeType":"ParameterList","parameters":[],"src":"7614:2:130"}},{"id":78058,"nodeType":"ErrorDefinition","src":"7622:29:130","nodes":[],"errorSelector":"9c47d02e","name":"DecreaseUnderMinimum","nameLocation":"7628:20:130","parameters":{"id":78057,"nodeType":"ParameterList","parameters":[],"src":"7648:2:130"}},{"id":78064,"nodeType":"ErrorDefinition","src":"7656:80:130","nodes":[],"errorSelector":"8a11f318","name":"CantDecreaseMoreThanPower","nameLocation":"7662:25:130","parameters":{"id":78063,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78060,"mutability":"mutable","name":"_decreaseAmount","nameLocation":"7696:15:130","nodeType":"VariableDeclaration","scope":78064,"src":"7688:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78059,"name":"uint256","nodeType":"ElementaryTypeName","src":"7688:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78062,"mutability":"mutable","name":"_currentPower","nameLocation":"7721:13:130","nodeType":"VariableDeclaration","scope":78064,"src":"7713:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78061,"name":"uint256","nodeType":"ElementaryTypeName","src":"7713:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"7687:48:130"}},{"id":78071,"nodeType":"StructDefinition","src":"7907:102:130","nodes":[],"canonicalName":"RegistryCommunityV0_0.Member","members":[{"constant":false,"id":78066,"mutability":"mutable","name":"member","nameLocation":"7939:6:130","nodeType":"VariableDeclaration","scope":78071,"src":"7931:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78065,"name":"address","nodeType":"ElementaryTypeName","src":"7931:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78068,"mutability":"mutable","name":"stakedAmount","nameLocation":"7963:12:130","nodeType":"VariableDeclaration","scope":78071,"src":"7955:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78067,"name":"uint256","nodeType":"ElementaryTypeName","src":"7955:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78070,"mutability":"mutable","name":"isRegistered","nameLocation":"7990:12:130","nodeType":"VariableDeclaration","scope":78071,"src":"7985:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78069,"name":"bool","nodeType":"ElementaryTypeName","src":"7985:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"Member","nameLocation":"7914:6:130","scope":79618,"visibility":"public"},{"id":78075,"nodeType":"StructDefinition","src":"8015:55:130","nodes":[],"canonicalName":"RegistryCommunityV0_0.Strategies","members":[{"constant":false,"id":78074,"mutability":"mutable","name":"strategies","nameLocation":"8053:10:130","nodeType":"VariableDeclaration","scope":78075,"src":"8043:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78072,"name":"address","nodeType":"ElementaryTypeName","src":"8043:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78073,"nodeType":"ArrayTypeName","src":"8043:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"name":"Strategies","nameLocation":"8022:10:130","scope":79618,"visibility":"public"},{"id":78104,"nodeType":"StructDefinition","src":"9028:434:130","nodes":[],"canonicalName":"RegistryCommunityV0_0.InitializeParams","members":[{"constant":false,"id":78077,"mutability":"mutable","name":"_allo","nameLocation":"9070:5:130","nodeType":"VariableDeclaration","scope":78104,"src":"9062:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78076,"name":"address","nodeType":"ElementaryTypeName","src":"9062:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78080,"mutability":"mutable","name":"_gardenToken","nameLocation":"9092:12:130","nodeType":"VariableDeclaration","scope":78104,"src":"9085:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":78079,"nodeType":"UserDefinedTypeName","pathNode":{"id":78078,"name":"IERC20","nameLocations":["9085:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"9085:6:130"},"referencedDeclaration":56900,"src":"9085:6:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":78082,"mutability":"mutable","name":"_registerStakeAmount","nameLocation":"9122:20:130","nodeType":"VariableDeclaration","scope":78104,"src":"9114:28:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78081,"name":"uint256","nodeType":"ElementaryTypeName","src":"9114:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78084,"mutability":"mutable","name":"_communityFee","nameLocation":"9160:13:130","nodeType":"VariableDeclaration","scope":78104,"src":"9152:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78083,"name":"uint256","nodeType":"ElementaryTypeName","src":"9152:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78086,"mutability":"mutable","name":"_nonce","nameLocation":"9191:6:130","nodeType":"VariableDeclaration","scope":78104,"src":"9183:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78085,"name":"uint256","nodeType":"ElementaryTypeName","src":"9183:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78088,"mutability":"mutable","name":"_registryFactory","nameLocation":"9215:16:130","nodeType":"VariableDeclaration","scope":78104,"src":"9207:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78087,"name":"address","nodeType":"ElementaryTypeName","src":"9207:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78090,"mutability":"mutable","name":"_feeReceiver","nameLocation":"9249:12:130","nodeType":"VariableDeclaration","scope":78104,"src":"9241:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78089,"name":"address","nodeType":"ElementaryTypeName","src":"9241:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78093,"mutability":"mutable","name":"_metadata","nameLocation":"9280:9:130","nodeType":"VariableDeclaration","scope":78104,"src":"9271:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"},"typeName":{"id":78092,"nodeType":"UserDefinedTypeName","pathNode":{"id":78091,"name":"Metadata","nameLocations":["9271:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"9271:8:130"},"referencedDeclaration":3098,"src":"9271:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"},{"constant":false,"id":78095,"mutability":"mutable","name":"_councilSafe","nameLocation":"9315:12:130","nodeType":"VariableDeclaration","scope":78104,"src":"9299:28:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":78094,"name":"address","nodeType":"ElementaryTypeName","src":"9299:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"},{"constant":false,"id":78097,"mutability":"mutable","name":"_communityName","nameLocation":"9344:14:130","nodeType":"VariableDeclaration","scope":78104,"src":"9337:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":78096,"name":"string","nodeType":"ElementaryTypeName","src":"9337:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":78099,"mutability":"mutable","name":"_isKickEnabled","nameLocation":"9373:14:130","nodeType":"VariableDeclaration","scope":78104,"src":"9368:19:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78098,"name":"bool","nodeType":"ElementaryTypeName","src":"9368:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":78101,"mutability":"mutable","name":"covenantIpfsHash","nameLocation":"9404:16:130","nodeType":"VariableDeclaration","scope":78104,"src":"9397:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":78100,"name":"string","nodeType":"ElementaryTypeName","src":"9397:6:130","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":78103,"mutability":"mutable","name":"_strategyTemplate","nameLocation":"9438:17:130","nodeType":"VariableDeclaration","scope":78104,"src":"9430:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78102,"name":"address","nodeType":"ElementaryTypeName","src":"9430:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"name":"InitializeParams","nameLocation":"9035:16:130","scope":79618,"visibility":"public"},{"id":78343,"nodeType":"FunctionDefinition","src":"9468:2107:130","nodes":[],"body":{"id":78342,"nodeType":"Block","src":"9561:2014:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78112,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52837,"src":"9571:14:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78113,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9571:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78114,"nodeType":"ExpressionStatement","src":"9571:16:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78115,"name":"__ReentrancyGuard_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":53215,"src":"9597:22:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9597:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78117,"nodeType":"ExpressionStatement","src":"9597:24:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78118,"name":"__AccessControl_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52448,"src":"9631:20:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9631:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78120,"nodeType":"ExpressionStatement","src":"9631:22:130"},{"expression":{"arguments":[{"id":78122,"name":"COUNCIL_MEMBER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77833,"src":"9678:14:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":78123,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52431,"src":"9694:18:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"id":78121,"name":"_setRoleAdmin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52667,"src":"9664:13:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (bytes32,bytes32)"}},"id":78124,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9664:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78125,"nodeType":"ExpressionStatement","src":"9664:49:130"},{"expression":{"arguments":[{"arguments":[{"expression":{"id":78129,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"9751:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78130,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9758:12:130","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":78080,"src":"9751:19:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":78128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"9743:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78127,"name":"address","nodeType":"ElementaryTypeName","src":"9743:7:130","typeDescriptions":{}}},"id":78131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9743:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78126,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"9724:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9724:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78133,"nodeType":"ExpressionStatement","src":"9724:48:130"},{"expression":{"arguments":[{"expression":{"id":78135,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"9801:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78136,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9808:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":78095,"src":"9801:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":78134,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"9782:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78137,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9782:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78138,"nodeType":"ExpressionStatement","src":"9782:39:130"},{"expression":{"arguments":[{"expression":{"id":78140,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"9850:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78141,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9857:5:130","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":78077,"src":"9850:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78139,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"9831:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9831:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78143,"nodeType":"ExpressionStatement","src":"9831:32:130"},{"expression":{"arguments":[{"expression":{"id":78145,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"9892:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78146,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9899:16:130","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":78088,"src":"9892:23:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78144,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"9873:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78147,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9873:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78148,"nodeType":"ExpressionStatement","src":"9873:43:130"},{"expression":{"arguments":[{"expression":{"id":78150,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"9945:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78151,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9952:17:130","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":78103,"src":"9945:24:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78149,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"9926:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"9926:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78153,"nodeType":"ExpressionStatement","src":"9926:44:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78157,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78154,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"9985:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78155,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"9992:13:130","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":78084,"src":"9985:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78156,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10009:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"9985:25:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78164,"nodeType":"IfStatement","src":"9981:95:130","trueBody":{"id":78163,"nodeType":"Block","src":"10012:64:130","statements":[{"expression":{"arguments":[{"expression":{"id":78159,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10045:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78160,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10052:12:130","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":78090,"src":"10045:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78158,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"10026:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78161,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10026:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78162,"nodeType":"ExpressionStatement","src":"10026:39:130"}]}},{"expression":{"id":78170,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78165,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77786,"src":"10085:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":78167,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10098:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78168,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10105:5:130","memberName":"_allo","nodeType":"MemberAccess","referencedDeclaration":78077,"src":"10098:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78166,"name":"FAllo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80223,"src":"10092:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_FAllo_$80223_$","typeString":"type(contract FAllo)"}},"id":78169,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10092:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"src":"10085:26:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"id":78171,"nodeType":"ExpressionStatement","src":"10085:26:130"},{"expression":{"id":78175,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78172,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"10121:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78173,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10135:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78174,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10142:12:130","memberName":"_gardenToken","nodeType":"MemberAccess","referencedDeclaration":78080,"src":"10135:19:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"src":"10121:33:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":78176,"nodeType":"ExpressionStatement","src":"10121:33:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78177,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10168:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10175:20:130","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":78082,"src":"10168:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":78179,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10199:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"10168:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78185,"nodeType":"IfStatement","src":"10164:89:130","trueBody":{"id":78184,"nodeType":"Block","src":"10202:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78181,"name":"ValueCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78050,"src":"10223:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10223:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78183,"nodeType":"RevertStatement","src":"10216:26:130"}]}},{"expression":{"id":78189,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78186,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"10262:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78187,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10284:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78188,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10291:20:130","memberName":"_registerStakeAmount","nodeType":"MemberAccess","referencedDeclaration":78082,"src":"10284:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10262:49:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78190,"nodeType":"ExpressionStatement","src":"10262:49:130"},{"expression":{"id":78194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78191,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77752,"src":"10321:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78192,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10336:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78193,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10343:13:130","memberName":"_communityFee","nodeType":"MemberAccess","referencedDeclaration":78084,"src":"10336:20:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10321:35:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78195,"nodeType":"ExpressionStatement","src":"10321:35:130"},{"expression":{"id":78199,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78196,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77746,"src":"10366:13:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78197,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10382:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78198,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10389:14:130","memberName":"_isKickEnabled","nodeType":"MemberAccess","referencedDeclaration":78099,"src":"10382:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"10366:37:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78200,"nodeType":"ExpressionStatement","src":"10366:37:130"},{"expression":{"id":78204,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78201,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77789,"src":"10413:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78202,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10429:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78203,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10436:14:130","memberName":"_communityName","nodeType":"MemberAccess","referencedDeclaration":78097,"src":"10429:21:130","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10413:37:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":78205,"nodeType":"ExpressionStatement","src":"10413:37:130"},{"expression":{"id":78209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78206,"name":"covenantIpfsHash","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77792,"src":"10460:16:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78207,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10479:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78208,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10486:16:130","memberName":"covenantIpfsHash","nodeType":"MemberAccess","referencedDeclaration":78101,"src":"10479:23:130","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"10460:42:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":78210,"nodeType":"ExpressionStatement","src":"10460:42:130"},{"expression":{"id":78214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78211,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77761,"src":"10512:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78212,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10530:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78213,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10537:16:130","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":78088,"src":"10530:23:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10512:41:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78215,"nodeType":"ExpressionStatement","src":"10512:41:130"},{"expression":{"id":78219,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78216,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77758,"src":"10563:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78217,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10577:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78218,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10584:12:130","memberName":"_feeReceiver","nodeType":"MemberAccess","referencedDeclaration":78090,"src":"10577:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10563:33:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78220,"nodeType":"ExpressionStatement","src":"10563:33:130"},{"expression":{"id":78226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78221,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77782,"src":"10606:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":78223,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10626:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78224,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10633:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":78095,"src":"10626:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":78222,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"10620:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$80232_$","typeString":"type(contract ISafe)"}},"id":78225,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10620:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"src":"10606:40:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":78227,"nodeType":"ExpressionStatement","src":"10606:40:130"},{"expression":{"id":78231,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78228,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77764,"src":"10656:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"id":78229,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10675:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78230,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10682:17:130","memberName":"_strategyTemplate","nodeType":"MemberAccess","referencedDeclaration":78103,"src":"10675:24:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"10656:43:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78232,"nodeType":"ExpressionStatement","src":"10656:43:130"},{"expression":{"arguments":[{"id":78234,"name":"COUNCIL_MEMBER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77833,"src":"10721:14:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":78235,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"10737:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78236,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"10744:12:130","memberName":"_councilSafe","nodeType":"MemberAccess","referencedDeclaration":78095,"src":"10737:19:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":78233,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52699,"src":"10710:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$","typeString":"function (bytes32,address)"}},"id":78237,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10710:47:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78238,"nodeType":"ExpressionStatement","src":"10710:47:130"},{"expression":{"id":78245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78239,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77774,"src":"10768:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78241,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77786,"src":"10789:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"id":78242,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10794:11:130","memberName":"getRegistry","nodeType":"MemberAccess","referencedDeclaration":80214,"src":"10789:16:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":78243,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10789:18:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78240,"name":"IRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2802,"src":"10779:9:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IRegistry_$2802_$","typeString":"type(contract IRegistry)"}},"id":78244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10779:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"src":"10768:40:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":78246,"nodeType":"ExpressionStatement","src":"10768:40:130"},{"assignments":[78251],"declarations":[{"constant":false,"id":78251,"mutability":"mutable","name":"owners","nameLocation":"10836:6:130","nodeType":"VariableDeclaration","scope":78342,"src":"10819:23:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78249,"name":"address","nodeType":"ElementaryTypeName","src":"10819:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78250,"nodeType":"ArrayTypeName","src":"10819:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":78255,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78252,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77782,"src":"10845:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":78253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10857:9:130","memberName":"getOwners","nodeType":"MemberAccess","referencedDeclaration":80231,"src":"10845:21:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () view external returns (address[] memory)"}},"id":78254,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10845:23:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10819:49:130"},{"assignments":[78260],"declarations":[{"constant":false,"id":78260,"mutability":"mutable","name":"pool_initialMembers","nameLocation":"10895:19:130","nodeType":"VariableDeclaration","scope":78342,"src":"10878:36:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78258,"name":"address","nodeType":"ElementaryTypeName","src":"10878:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78259,"nodeType":"ArrayTypeName","src":"10878:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":78269,"initialValue":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78267,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78264,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78251,"src":"10931:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10938:6:130","memberName":"length","nodeType":"MemberAccess","src":"10931:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"32","id":78266,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10947:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"10931:17:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"NewExpression","src":"10917:13:130","typeDescriptions":{"typeIdentifier":"t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function (uint256) pure returns (address[] memory)"},"typeName":{"baseType":{"id":78261,"name":"address","nodeType":"ElementaryTypeName","src":"10921:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78262,"nodeType":"ArrayTypeName","src":"10921:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}}},"id":78268,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"10917:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"nodeType":"VariableDeclarationStatement","src":"10878:71:130"},{"body":{"id":78289,"nodeType":"Block","src":"11004:59:130","statements":[{"expression":{"id":78287,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78281,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11018:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78283,"indexExpression":{"id":78282,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78271,"src":"11038:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11018:22:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":78284,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78251,"src":"11043:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78286,"indexExpression":{"id":78285,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78271,"src":"11050:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"11043:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11018:34:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78288,"nodeType":"ExpressionStatement","src":"11018:34:130"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78277,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78274,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78271,"src":"10980:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78275,"name":"owners","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78251,"src":"10984:6:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"10991:6:130","memberName":"length","nodeType":"MemberAccess","src":"10984:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"10980:17:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78290,"initializationExpression":{"assignments":[78271],"declarations":[{"constant":false,"id":78271,"mutability":"mutable","name":"i","nameLocation":"10973:1:130","nodeType":"VariableDeclaration","scope":78290,"src":"10965:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78270,"name":"uint256","nodeType":"ElementaryTypeName","src":"10965:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78273,"initialValue":{"hexValue":"30","id":78272,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"10977:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"10965:13:130"},"loopExpression":{"expression":{"id":78279,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"10999:3:130","subExpression":{"id":78278,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78271,"src":"10999:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78280,"nodeType":"ExpressionStatement","src":"10999:3:130"},"nodeType":"ForStatement","src":"10960:103:130"},{"expression":{"id":78301,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78291,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11073:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78296,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78292,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11093:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11113:6:130","memberName":"length","nodeType":"MemberAccess","src":"11093:26:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11122:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"11093:30:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11073:51:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78299,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77782,"src":"11135:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}],"id":78298,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11127:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78297,"name":"address","nodeType":"ElementaryTypeName","src":"11127:7:130","typeDescriptions":{}}},"id":78300,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11127:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11073:74:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78302,"nodeType":"ExpressionStatement","src":"11073:74:130"},{"expression":{"id":78313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78303,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11157:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78308,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78304,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11177:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78305,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11197:6:130","memberName":"length","nodeType":"MemberAccess","src":"11177:26:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"32","id":78306,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"11206:1:130","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"},"src":"11177:30:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"11157:51:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78311,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11219:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":78310,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11211:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78309,"name":"address","nodeType":"ElementaryTypeName","src":"11211:7:130","typeDescriptions":{}}},"id":78312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11211:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"11157:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78314,"nodeType":"ExpressionStatement","src":"11157:67:130"},{"expression":{"id":78329,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78315,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77755,"src":"11312:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"expression":{"id":78318,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"11359:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78319,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11366:6:130","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":78086,"src":"11359:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78320,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77789,"src":"11374:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":78321,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"11389:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78322,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11396:9:130","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":78093,"src":"11389:16:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[{"id":78325,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"11415:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":78324,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"11407:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78323,"name":"address","nodeType":"ElementaryTypeName","src":"11407:7:130","typeDescriptions":{}}},"id":78326,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11407:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78327,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11422:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":78316,"name":"registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77774,"src":"11336:8:130","typeDescriptions":{"typeIdentifier":"t_contract$_IRegistry_$2802","typeString":"contract IRegistry"}},"id":78317,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11345:13:130","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":2742,"src":"11336:22:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":78328,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11336:106:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"11312:130:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":78330,"nodeType":"ExpressionStatement","src":"11312:130:130"},{"expression":{"id":78333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78331,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77827,"src":"11453:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78332,"name":"pool_initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78260,"src":"11470:19:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"src":"11453:36:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":78334,"nodeType":"ExpressionStatement","src":"11453:36:130"},{"eventCall":{"arguments":[{"id":78336,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77755,"src":"11525:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":78337,"name":"communityName","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77789,"src":"11536:13:130","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},{"expression":{"id":78338,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78107,"src":"11551:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":78339,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"11558:9:130","memberName":"_metadata","nodeType":"MemberAccess","referencedDeclaration":78093,"src":"11551:16:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_string_storage","typeString":"string storage ref"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":78335,"name":"RegistryInitialized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77880,"src":"11505:19:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_bytes32_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (bytes32,string memory,struct Metadata memory)"}},"id":78340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11505:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78341,"nodeType":"EmitStatement","src":"11500:68:130"}]},"functionSelector":"96f0adec","implemented":true,"kind":"function","modifiers":[{"id":78110,"kind":"modifierInvocation","modifierName":{"id":78109,"name":"initializer","nameLocations":["9549:11:130"],"nodeType":"IdentifierPath","referencedDeclaration":53093,"src":"9549:11:130"},"nodeType":"ModifierInvocation","src":"9549:11:130"}],"name":"initialize","nameLocation":"9477:10:130","parameters":{"id":78108,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78107,"mutability":"mutable","name":"params","nameLocation":"9534:6:130","nodeType":"VariableDeclaration","scope":78343,"src":"9488:52:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams"},"typeName":{"id":78106,"nodeType":"UserDefinedTypeName","pathNode":{"id":78105,"name":"RegistryCommunityV0_0.InitializeParams","nameLocations":["9488:21:130","9510:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":78104,"src":"9488:38:130"},"referencedDeclaration":78104,"src":"9488:38:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_storage_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams"}},"visibility":"internal"}],"src":"9487:54:130"},"returnParameters":{"id":78111,"nodeType":"ParameterList","parameters":[],"src":"9561:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78375,"nodeType":"FunctionDefinition","src":"11581:341:130","nodes":[],"body":{"id":78374,"nodeType":"Block","src":"11762:160:130","nodes":[],"statements":[{"assignments":[78359],"declarations":[{"constant":false,"id":78359,"mutability":"mutable","name":"strategyClone","nameLocation":"11780:13:130","nodeType":"VariableDeclaration","scope":78374,"src":"11772:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78358,"name":"address","nodeType":"ElementaryTypeName","src":"11772:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78366,"initialValue":{"arguments":[{"id":78362,"name":"strategyTemplate","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77764,"src":"11814:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78364,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"11832:12:130","subExpression":{"id":78363,"name":"cloneNonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77767,"src":"11832:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78360,"name":"Clone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3002,"src":"11796:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Clone_$3002_$","typeString":"type(library Clone)"}},"id":78361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"11802:11:130","memberName":"createClone","nodeType":"MemberAccess","referencedDeclaration":3001,"src":"11796:17:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_address_$","typeString":"function (address,uint256) returns (address)"}},"id":78365,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11796:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"11772:73:130"},{"expression":{"arguments":[{"id":78368,"name":"strategyClone","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78359,"src":"11873:13:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78369,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78345,"src":"11888:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78370,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78348,"src":"11896:7:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}},{"id":78371,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78351,"src":"11905:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":78367,"name":"createPool","nodeType":"Identifier","overloadedDeclarations":[78375,78447],"referencedDeclaration":78447,"src":"11862:10:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_struct$_InitializeParams_$72883_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$returns$_t_uint256_$_t_address_$","typeString":"function (address,address,struct StrategyStruct.InitializeParams memory,struct Metadata memory) returns (uint256,address)"}},"id":78372,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"11862:53:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_uint256_$_t_address_$","typeString":"tuple(uint256,address)"}},"functionReturnParameters":78357,"id":78373,"nodeType":"Return","src":"11855:60:130"}]},"functionSelector":"9a72a86f","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"11590:10:130","parameters":{"id":78352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78345,"mutability":"mutable","name":"_token","nameLocation":"11609:6:130","nodeType":"VariableDeclaration","scope":78375,"src":"11601:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78344,"name":"address","nodeType":"ElementaryTypeName","src":"11601:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78348,"mutability":"mutable","name":"_params","nameLocation":"11656:7:130","nodeType":"VariableDeclaration","scope":78375,"src":"11617:46:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":78347,"nodeType":"UserDefinedTypeName","pathNode":{"id":78346,"name":"StrategyStruct.InitializeParams","nameLocations":["11617:14:130","11632:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"11617:31:130"},"referencedDeclaration":72883,"src":"11617:31:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":78351,"mutability":"mutable","name":"_metadata","nameLocation":"11681:9:130","nodeType":"VariableDeclaration","scope":78375,"src":"11665:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":78350,"nodeType":"UserDefinedTypeName","pathNode":{"id":78349,"name":"Metadata","nameLocations":["11665:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"11665:8:130"},"referencedDeclaration":3098,"src":"11665:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"11600:91:130"},"returnParameters":{"id":78357,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78354,"mutability":"mutable","name":"poolId","nameLocation":"11732:6:130","nodeType":"VariableDeclaration","scope":78375,"src":"11724:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78353,"name":"uint256","nodeType":"ElementaryTypeName","src":"11724:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78356,"mutability":"mutable","name":"strategy","nameLocation":"11748:8:130","nodeType":"VariableDeclaration","scope":78375,"src":"11740:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78355,"name":"address","nodeType":"ElementaryTypeName","src":"11740:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"11723:34:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78447,"nodeType":"FunctionDefinition","src":"11928:653:130","nodes":[],"body":{"id":78446,"nodeType":"Block","src":"12146:435:130","nodes":[],"statements":[{"assignments":[78393],"declarations":[{"constant":false,"id":78393,"mutability":"mutable","name":"token","nameLocation":"12164:5:130","nodeType":"VariableDeclaration","scope":78446,"src":"12156:13:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78392,"name":"address","nodeType":"ElementaryTypeName","src":"12156:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78395,"initialValue":{"id":78394,"name":"NATIVE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77731,"src":"12172:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"12156:22:130"},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78401,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78396,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78379,"src":"12192:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"arguments":[{"hexValue":"30","id":78399,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12210:1:130","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":78398,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12202:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78397,"name":"address","nodeType":"ElementaryTypeName","src":"12202:7:130","typeDescriptions":{}}},"id":78400,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12202:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12192:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78407,"nodeType":"IfStatement","src":"12188:65:130","trueBody":{"id":78406,"nodeType":"Block","src":"12214:39:130","statements":[{"expression":{"id":78404,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78402,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78393,"src":"12228:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78403,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78379,"src":"12236:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12228:14:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78405,"nodeType":"ExpressionStatement","src":"12228:14:130"}]}},{"expression":{"id":78410,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78408,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78390,"src":"12262:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78409,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78377,"src":"12273:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"12262:20:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78411,"nodeType":"ExpressionStatement","src":"12262:20:130"},{"assignments":[78416],"declarations":[{"constant":false,"id":78416,"mutability":"mutable","name":"_pool_managers","nameLocation":"12310:14:130","nodeType":"VariableDeclaration","scope":78446,"src":"12293:31:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78414,"name":"address","nodeType":"ElementaryTypeName","src":"12293:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78415,"nodeType":"ArrayTypeName","src":"12293:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":78418,"initialValue":{"id":78417,"name":"initialMembers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77827,"src":"12327:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12293:48:130"},{"expression":{"id":78433,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78419,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78388,"src":"12352:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78422,"name":"profileId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77755,"src":"12408:9:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":78423,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78390,"src":"12419:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78426,"name":"_params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78382,"src":"12440:7:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams memory"}],"expression":{"id":78424,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"12429:3:130","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":78425,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"12433:6:130","memberName":"encode","nodeType":"MemberAccess","src":"12429:10:130","typeDescriptions":{"typeIdentifier":"t_function_abiencode_pure$__$returns$_t_bytes_memory_ptr_$","typeString":"function () pure returns (bytes memory)"}},"id":78427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12429:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"id":78428,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78393,"src":"12450:5:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":78429,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"12457:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"id":78430,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78385,"src":"12460:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"id":78431,"name":"_pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78416,"src":"12471:14:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":78420,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77786,"src":"12361:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"id":78421,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"12366:28:130","memberName":"createPoolWithCustomStrategy","nodeType":"MemberAccess","referencedDeclaration":80209,"src":"12361:33:130","typeDescriptions":{"typeIdentifier":"t_function_external_payable$_t_bytes32_$_t_address_$_t_bytes_memory_ptr_$_t_address_$_t_uint256_$_t_struct$_Metadata_$3098_memory_ptr_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_uint256_$","typeString":"function (bytes32,address,bytes memory,address,uint256,struct Metadata memory,address[] memory) payable external returns (uint256)"}},"id":78432,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12361:134:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"12352:143:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78434,"nodeType":"ExpressionStatement","src":"12352:143:130"},{"eventCall":{"arguments":[{"id":78436,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78388,"src":"12523:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78437,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78390,"src":"12531:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78440,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"12549:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":78439,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"12541:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78438,"name":"address","nodeType":"ElementaryTypeName","src":"12541:7:130","typeDescriptions":{}}},"id":78441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12541:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78442,"name":"_token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78379,"src":"12556:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78443,"name":"_metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78385,"src":"12564:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}],"id":78435,"name":"PoolCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77931,"src":"12511:11:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$_t_address_$_t_address_$_t_address_$_t_struct$_Metadata_$3098_memory_ptr_$returns$__$","typeString":"function (uint256,address,address,address,struct Metadata memory)"}},"id":78444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12511:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78445,"nodeType":"EmitStatement","src":"12506:68:130"}]},"functionSelector":"c8a593e9","implemented":true,"kind":"function","modifiers":[],"name":"createPool","nameLocation":"11937:10:130","parameters":{"id":78386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78377,"mutability":"mutable","name":"_strategy","nameLocation":"11965:9:130","nodeType":"VariableDeclaration","scope":78447,"src":"11957:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78376,"name":"address","nodeType":"ElementaryTypeName","src":"11957:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78379,"mutability":"mutable","name":"_token","nameLocation":"11992:6:130","nodeType":"VariableDeclaration","scope":78447,"src":"11984:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78378,"name":"address","nodeType":"ElementaryTypeName","src":"11984:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78382,"mutability":"mutable","name":"_params","nameLocation":"12047:7:130","nodeType":"VariableDeclaration","scope":78447,"src":"12008:46:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_memory_ptr","typeString":"struct StrategyStruct.InitializeParams"},"typeName":{"id":78381,"nodeType":"UserDefinedTypeName","pathNode":{"id":78380,"name":"StrategyStruct.InitializeParams","nameLocations":["12008:14:130","12023:16:130"],"nodeType":"IdentifierPath","referencedDeclaration":72883,"src":"12008:31:130"},"referencedDeclaration":72883,"src":"12008:31:130","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$72883_storage_ptr","typeString":"struct StrategyStruct.InitializeParams"}},"visibility":"internal"},{"constant":false,"id":78385,"mutability":"mutable","name":"_metadata","nameLocation":"12080:9:130","nodeType":"VariableDeclaration","scope":78447,"src":"12064:25:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata"},"typeName":{"id":78384,"nodeType":"UserDefinedTypeName","pathNode":{"id":78383,"name":"Metadata","nameLocations":["12064:8:130"],"nodeType":"IdentifierPath","referencedDeclaration":3098,"src":"12064:8:130"},"referencedDeclaration":3098,"src":"12064:8:130","typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_storage_ptr","typeString":"struct Metadata"}},"visibility":"internal"}],"src":"11947:148:130"},"returnParameters":{"id":78391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78388,"mutability":"mutable","name":"poolId","nameLocation":"12120:6:130","nodeType":"VariableDeclaration","scope":78447,"src":"12112:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78387,"name":"uint256","nodeType":"ElementaryTypeName","src":"12112:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78390,"mutability":"mutable","name":"strategy","nameLocation":"12136:8:130","nodeType":"VariableDeclaration","scope":78447,"src":"12128:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78389,"name":"address","nodeType":"ElementaryTypeName","src":"12128:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12111:34:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78564,"nodeType":"FunctionDefinition","src":"12587:1179:130","nodes":[],"body":{"id":78563,"nodeType":"Block","src":"12664:1102:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":78455,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"12700:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78454,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77975,"src":"12674:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":78456,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12674:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78457,"nodeType":"ExpressionStatement","src":"12674:34:130"},{"expression":{"arguments":[{"id":78459,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"12738:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78458,"name":"onlyStrategyEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77990,"src":"12718:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":78460,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12718:30:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78461,"nodeType":"ExpressionStatement","src":"12718:30:130"},{"expression":{"arguments":[{"id":78463,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"12777:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78462,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"12758:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78464,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12758:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78465,"nodeType":"ExpressionStatement","src":"12758:29:130"},{"condition":{"baseExpression":{"baseExpression":{"id":78466,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77823,"src":"12802:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":78468,"indexExpression":{"id":78467,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"12830:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12802:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78470,"indexExpression":{"id":78469,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"12839:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12802:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78475,"nodeType":"IfStatement","src":"12798:107:130","trueBody":{"id":78474,"nodeType":"Block","src":"12851:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78471,"name":"UserAlreadyActivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78038,"src":"12872:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78472,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"12872:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78473,"nodeType":"RevertStatement","src":"12865:29:130"}]}},{"assignments":[78478],"declarations":[{"constant":false,"id":78478,"mutability":"mutable","name":"member","nameLocation":"12929:6:130","nodeType":"VariableDeclaration","scope":78563,"src":"12915:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member"},"typeName":{"id":78477,"nodeType":"UserDefinedTypeName","pathNode":{"id":78476,"name":"Member","nameLocations":["12915:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":78071,"src":"12915:6:130"},"referencedDeclaration":78071,"src":"12915:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"}},"visibility":"internal"}],"id":78482,"initialValue":{"baseExpression":{"id":78479,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"12938:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":78481,"indexExpression":{"id":78480,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"12958:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"12938:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"12915:51:130"},{"assignments":[78484],"declarations":[{"constant":false,"id":78484,"mutability":"mutable","name":"totalStakedAmount","nameLocation":"12985:17:130","nodeType":"VariableDeclaration","scope":78563,"src":"12977:25:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78483,"name":"uint256","nodeType":"ElementaryTypeName","src":"12977:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78487,"initialValue":{"expression":{"id":78485,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78478,"src":"13005:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member memory"}},"id":78486,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"13012:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"13005:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"12977:47:130"},{"assignments":[78489],"declarations":[{"constant":false,"id":78489,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"13042:16:130","nodeType":"VariableDeclaration","scope":78563,"src":"13034:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78488,"name":"uint256","nodeType":"ElementaryTypeName","src":"13034:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78491,"initialValue":{"id":78490,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"13061:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"13034:46:130"},{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":78500,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78493,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13110:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78492,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"13095:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":78494,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13095:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":78495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13121:14:130","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72792,"src":"13095:40:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72802_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":78496,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13095:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"expression":{"expression":{"id":78497,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13141:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":78498,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13156:11:130","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13141:26:130","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":78499,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13168:9:130","memberName":"Quadratic","nodeType":"MemberAccess","referencedDeclaration":72801,"src":"13141:36:130","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13095:82:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"condition":{"commonType":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"},"id":78520,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"id":78513,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13299:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78512,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"13284:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":78514,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13284:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":78515,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13310:14:130","memberName":"getPointSystem","nodeType":"MemberAccess","referencedDeclaration":72792,"src":"13284:40:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$__$returns$_t_enum$_PointSystem_$72802_$","typeString":"function () external returns (enum StrategyStruct.PointSystem)"}},"id":78516,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13284:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"expression":{"id":78517,"name":"StrategyStruct","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72884,"src":"13330:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_StrategyStruct_$72884_$","typeString":"type(library StrategyStruct)"}},"id":78518,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13345:11:130","memberName":"PointSystem","nodeType":"MemberAccess","referencedDeclaration":72802,"src":"13330:26:130","typeDescriptions":{"typeIdentifier":"t_type$_t_enum$_PointSystem_$72802_$","typeString":"type(enum StrategyStruct.PointSystem)"}},"id":78519,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"13357:5:130","memberName":"Fixed","nodeType":"MemberAccess","referencedDeclaration":72798,"src":"13330:32:130","typeDescriptions":{"typeIdentifier":"t_enum$_PointSystem_$72802","typeString":"enum StrategyStruct.PointSystem"}},"src":"13284:78:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78532,"nodeType":"IfStatement","src":"13280:195:130","trueBody":{"id":78531,"nodeType":"Block","src":"13364:111:130","statements":[{"expression":{"id":78529,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78521,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"13378:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78526,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"13437:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78527,"name":"totalStakedAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78484,"src":"13446:17:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":78523,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13412:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78522,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"13397:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":78524,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13397:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":78525,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13423:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"13397:39:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":78528,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13397:67:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13378:86:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78530,"nodeType":"ExpressionStatement","src":"13378:86:130"}]}},"id":78533,"nodeType":"IfStatement","src":"13091:384:130","trueBody":{"id":78511,"nodeType":"Block","src":"13179:95:130","statements":[{"expression":{"id":78509,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78501,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"13193:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78506,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"13252:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":78507,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"13261:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"arguments":[{"id":78503,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13227:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78502,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"13212:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":78504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13212:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":78505,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13238:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"13212:39:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":78508,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13212:51:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13193:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78510,"nodeType":"ExpressionStatement","src":"13193:70:130"}]}},{"expression":{"id":78540,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":78534,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"13485:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78537,"indexExpression":{"id":78535,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"13507:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13485:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78538,"indexExpression":{"id":78536,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13516:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13485:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78539,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"13529:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"13485:60:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78541,"nodeType":"ExpressionStatement","src":"13485:60:130"},{"expression":{"id":78548,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":78542,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77823,"src":"13574:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":78545,"indexExpression":{"id":78543,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"13602:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13574:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78546,"indexExpression":{"id":78544,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13611:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"13574:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78547,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"13624:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"13574:54:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78549,"nodeType":"ExpressionStatement","src":"13574:54:130"},{"expression":{"arguments":[{"id":78554,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13672:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"baseExpression":{"id":78550,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"13639:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":78552,"indexExpression":{"id":78551,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"13658:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"13639:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"id":78553,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13667:4:130","memberName":"push","nodeType":"MemberAccess","src":"13639:32:130","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":78555,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13639:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78556,"nodeType":"ExpressionStatement","src":"13639:43:130"},{"eventCall":{"arguments":[{"id":78558,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78449,"src":"13722:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78559,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78451,"src":"13731:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78560,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78489,"src":"13742:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78557,"name":"MemberActivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77896,"src":"13698:23:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":78561,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13698:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78562,"nodeType":"EmitStatement","src":"13693:66:130"}]},"functionSelector":"0d4a8b49","implemented":true,"kind":"function","modifiers":[],"name":"activateMemberInStrategy","nameLocation":"12596:24:130","parameters":{"id":78452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78449,"mutability":"mutable","name":"_member","nameLocation":"12629:7:130","nodeType":"VariableDeclaration","scope":78564,"src":"12621:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78448,"name":"address","nodeType":"ElementaryTypeName","src":"12621:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78451,"mutability":"mutable","name":"_strategy","nameLocation":"12646:9:130","nodeType":"VariableDeclaration","scope":78564,"src":"12638:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78450,"name":"address","nodeType":"ElementaryTypeName","src":"12638:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"12620:36:130"},"returnParameters":{"id":78453,"nodeType":"ParameterList","parameters":[],"src":"12664:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78623,"nodeType":"FunctionDefinition","src":"13772:691:130","nodes":[],"body":{"id":78622,"nodeType":"Block","src":"13851:612:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":78572,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78566,"src":"13887:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78571,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77975,"src":"13861:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":78573,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13861:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78574,"nodeType":"ExpressionStatement","src":"13861:34:130"},{"expression":{"arguments":[{"id":78576,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"13924:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78575,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"13905:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78577,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13905:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78578,"nodeType":"ExpressionStatement","src":"13905:29:130"},{"expression":{"arguments":[{"expression":{"id":78580,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"13964:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78581,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"13968:6:130","memberName":"sender","nodeType":"MemberAccess","src":"13964:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78582,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"13976:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":78579,"name":"onlyStrategyAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78006,"src":"13944:19:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$_t_address_$returns$__$","typeString":"function (address,address) pure"}},"id":78583,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"13944:42:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78584,"nodeType":"ExpressionStatement","src":"13944:42:130"},{"condition":{"id":78590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"14001:48:130","subExpression":{"baseExpression":{"baseExpression":{"id":78585,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77823,"src":"14002:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":78587,"indexExpression":{"id":78586,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78566,"src":"14030:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14002:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78589,"indexExpression":{"id":78588,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"14039:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14002:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78595,"nodeType":"IfStatement","src":"13997:110:130","trueBody":{"id":78594,"nodeType":"Block","src":"14051:56:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78591,"name":"UserAlreadyDeactivated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78040,"src":"14072:22:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78592,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14072:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78593,"nodeType":"RevertStatement","src":"14065:31:130"}]}},{"expression":{"id":78602,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":78596,"name":"memberActivatedInStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77823,"src":"14117:27:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_bool_$_$","typeString":"mapping(address => mapping(address => bool))"}},"id":78599,"indexExpression":{"id":78597,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78566,"src":"14145:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14117:36:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":78600,"indexExpression":{"id":78598,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"14154:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14117:47:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":78601,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"14167:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"14117:55:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78603,"nodeType":"ExpressionStatement","src":"14117:55:130"},{"expression":{"id":78610,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":78604,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"14182:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78607,"indexExpression":{"id":78605,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78566,"src":"14204:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14182:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78608,"indexExpression":{"id":78606,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"14213:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14182:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":78609,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14226:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"14182:45:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78611,"nodeType":"ExpressionStatement","src":"14182:45:130"},{"expression":{"arguments":[{"id":78613,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78566,"src":"14262:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78614,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"14271:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":78612,"name":"removeStrategyFromMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78676,"src":"14237:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":78615,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14237:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78616,"nodeType":"ExpressionStatement","src":"14237:44:130"},{"eventCall":{"arguments":[{"id":78618,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78566,"src":"14437:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78619,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78568,"src":"14446:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"id":78617,"name":"MemberDeactivatedStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77902,"src":"14411:25:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":78620,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14411:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78621,"nodeType":"EmitStatement","src":"14406:50:130"}]},"functionSelector":"22bcf999","implemented":true,"kind":"function","modifiers":[],"name":"deactivateMemberInStrategy","nameLocation":"13781:26:130","parameters":{"id":78569,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78566,"mutability":"mutable","name":"_member","nameLocation":"13816:7:130","nodeType":"VariableDeclaration","scope":78623,"src":"13808:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78565,"name":"address","nodeType":"ElementaryTypeName","src":"13808:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78568,"mutability":"mutable","name":"_strategy","nameLocation":"13833:9:130","nodeType":"VariableDeclaration","scope":78623,"src":"13825:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78567,"name":"address","nodeType":"ElementaryTypeName","src":"13825:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"13807:36:130"},"returnParameters":{"id":78570,"nodeType":"ParameterList","parameters":[],"src":"13851:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78676,"nodeType":"FunctionDefinition","src":"14469:425:130","nodes":[],"body":{"id":78675,"nodeType":"Block","src":"14548:346:130","nodes":[],"statements":[{"assignments":[78634],"declarations":[{"constant":false,"id":78634,"mutability":"mutable","name":"memberStrategies","nameLocation":"14576:16:130","nodeType":"VariableDeclaration","scope":78675,"src":"14558:34:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78632,"name":"address","nodeType":"ElementaryTypeName","src":"14558:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78633,"nodeType":"ArrayTypeName","src":"14558:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":78638,"initialValue":{"baseExpression":{"id":78635,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"14595:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":78637,"indexExpression":{"id":78636,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78625,"src":"14614:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14595:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"14558:64:130"},{"body":{"id":78673,"nodeType":"Block","src":"14686:202:130","statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":78654,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"baseExpression":{"id":78650,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"14704:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78652,"indexExpression":{"id":78651,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"14721:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14704:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"id":78653,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78627,"src":"14727:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14704:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78672,"nodeType":"IfStatement","src":"14700:178:130","trueBody":{"id":78671,"nodeType":"Block","src":"14738:140:130","statements":[{"expression":{"id":78664,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78655,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"14756:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78657,"indexExpression":{"id":78656,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"14773:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"14756:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":78658,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"14778:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78663,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78662,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78659,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"14795:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78660,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14812:6:130","memberName":"length","nodeType":"MemberAccess","src":"14795:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78661,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14821:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"14795:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"14778:45:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"14756:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78665,"nodeType":"ExpressionStatement","src":"14756:67:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78666,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"14841:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78668,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14858:3:130","memberName":"pop","nodeType":"MemberAccess","src":"14841:20:130","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":78669,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14841:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78670,"nodeType":"ExpressionStatement","src":"14841:22:130"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78646,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78643,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"14652:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78644,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78634,"src":"14656:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78645,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"14673:6:130","memberName":"length","nodeType":"MemberAccess","src":"14656:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"14652:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78674,"initializationExpression":{"assignments":[78640],"declarations":[{"constant":false,"id":78640,"mutability":"mutable","name":"i","nameLocation":"14645:1:130","nodeType":"VariableDeclaration","scope":78674,"src":"14637:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78639,"name":"uint256","nodeType":"ElementaryTypeName","src":"14637:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78642,"initialValue":{"hexValue":"30","id":78641,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"14649:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"14637:13:130"},"loopExpression":{"expression":{"id":78648,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"14681:3:130","subExpression":{"id":78647,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78640,"src":"14681:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78649,"nodeType":"ExpressionStatement","src":"14681:3:130"},"nodeType":"ForStatement","src":"14632:256:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyFromMember","nameLocation":"14478:24:130","parameters":{"id":78628,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78625,"mutability":"mutable","name":"_member","nameLocation":"14511:7:130","nodeType":"VariableDeclaration","scope":78676,"src":"14503:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78624,"name":"address","nodeType":"ElementaryTypeName","src":"14503:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78627,"mutability":"mutable","name":"_strategy","nameLocation":"14528:9:130","nodeType":"VariableDeclaration","scope":78676,"src":"14520:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78626,"name":"address","nodeType":"ElementaryTypeName","src":"14520:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"14502:36:130"},"returnParameters":{"id":78629,"nodeType":"ParameterList","parameters":[],"src":"14548:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78780,"nodeType":"FunctionDefinition","src":"14900:998:130","nodes":[],"body":{"id":78779,"nodeType":"Block","src":"14966:932:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78683,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"14976:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":78684,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"14976:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78685,"nodeType":"ExpressionStatement","src":"14976:26:130"},{"assignments":[78687],"declarations":[{"constant":false,"id":78687,"mutability":"mutable","name":"member","nameLocation":"15020:6:130","nodeType":"VariableDeclaration","scope":78779,"src":"15012:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78686,"name":"address","nodeType":"ElementaryTypeName","src":"15012:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78690,"initialValue":{"expression":{"id":78688,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"15029:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78689,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15033:6:130","memberName":"sender","nodeType":"MemberAccess","src":"15029:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"15012:27:130"},{"assignments":[78695],"declarations":[{"constant":false,"id":78695,"mutability":"mutable","name":"memberStrategies","nameLocation":"15066:16:130","nodeType":"VariableDeclaration","scope":78779,"src":"15049:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78693,"name":"address","nodeType":"ElementaryTypeName","src":"15049:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78694,"nodeType":"ArrayTypeName","src":"15049:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":78699,"initialValue":{"baseExpression":{"id":78696,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"15085:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":78698,"indexExpression":{"id":78697,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15104:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15085:26:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"15049:62:130"},{"assignments":[78701],"declarations":[{"constant":false,"id":78701,"mutability":"mutable","name":"pointsToIncrease","nameLocation":"15130:16:130","nodeType":"VariableDeclaration","scope":78779,"src":"15122:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78700,"name":"uint256","nodeType":"ElementaryTypeName","src":"15122:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78702,"nodeType":"VariableDeclarationStatement","src":"15122:24:130"},{"body":{"id":78754,"nodeType":"Block","src":"15211:479:130","statements":[{"expression":{"id":78724,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78714,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78701,"src":"15330:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78721,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15399:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78722,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"15407:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"baseExpression":{"id":78716,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78695,"src":"15364:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78718,"indexExpression":{"id":78717,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78704,"src":"15381:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15364:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78715,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"15349:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":78719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15349:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":78720,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15385:13:130","memberName":"increasePower","nodeType":"MemberAccess","referencedDeclaration":72777,"src":"15349:49:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":78723,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15349:72:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15330:91:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78725,"nodeType":"ExpressionStatement","src":"15330:91:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78728,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78726,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78701,"src":"15439:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"hexValue":"30","id":78727,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15459:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"15439:21:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78753,"nodeType":"IfStatement","src":"15435:229:130","trueBody":{"id":78752,"nodeType":"Block","src":"15462:202:130","statements":[{"expression":{"id":78737,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":78729,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"15480:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78734,"indexExpression":{"id":78730,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15502:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15480:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78735,"indexExpression":{"baseExpression":{"id":78731,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78695,"src":"15510:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78733,"indexExpression":{"id":78732,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78704,"src":"15527:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15510:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"15480:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":78736,"name":"pointsToIncrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78701,"src":"15534:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15480:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78738,"nodeType":"ExpressionStatement","src":"15480:70:130"},{"expression":{"arguments":[{"hexValue":"537472617465677920706f776572","id":78742,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"15580:16:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},"value":"Strategy power"},{"baseExpression":{"baseExpression":{"id":78743,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"15598:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78745,"indexExpression":{"id":78744,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15620:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15598:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78749,"indexExpression":{"baseExpression":{"id":78746,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78695,"src":"15628:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78748,"indexExpression":{"id":78747,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78704,"src":"15645:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15628:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15598:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_703ee8b122626afba084dc6507d90f45e4b99d124abdcce4d7ee9c70af76c3ee","typeString":"literal_string \"Strategy power\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78739,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"15568:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":78741,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15576:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"15568:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":78750,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15568:81:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78751,"nodeType":"ExpressionStatement","src":"15568:81:130"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78710,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78707,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78704,"src":"15177:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78708,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78695,"src":"15181:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":78709,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15198:6:130","memberName":"length","nodeType":"MemberAccess","src":"15181:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15177:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78755,"initializationExpression":{"assignments":[78704],"declarations":[{"constant":false,"id":78704,"mutability":"mutable","name":"i","nameLocation":"15170:1:130","nodeType":"VariableDeclaration","scope":78755,"src":"15162:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78703,"name":"uint256","nodeType":"ElementaryTypeName","src":"15162:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78706,"initialValue":{"hexValue":"30","id":78705,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"15174:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"15162:13:130"},"loopExpression":{"expression":{"id":78712,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"15206:3:130","subExpression":{"id":78711,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78704,"src":"15206:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78713,"nodeType":"ExpressionStatement","src":"15206:3:130"},"nodeType":"ForStatement","src":"15157:533:130"},{"expression":{"arguments":[{"id":78759,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15729:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":78762,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"15745:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":78761,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"15737:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78760,"name":"address","nodeType":"ElementaryTypeName","src":"15737:7:130","typeDescriptions":{}}},"id":78763,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15737:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78764,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"15752:13:130","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":78756,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"15700:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":78758,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"15712:16:130","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"15700:28:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":78765,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15700:66:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78766,"nodeType":"ExpressionStatement","src":"15700:66:130"},{"expression":{"id":78772,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78767,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"15776:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":78769,"indexExpression":{"id":78768,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15796:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"15776:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"id":78770,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"15804:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"15776:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"id":78771,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"15820:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"15776:57:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78773,"nodeType":"ExpressionStatement","src":"15776:57:130"},{"eventCall":{"arguments":[{"id":78775,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78687,"src":"15869:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78776,"name":"_amountStaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78678,"src":"15877:13:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78774,"name":"MemberPowerIncreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77912,"src":"15848:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":78777,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"15848:43:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78778,"nodeType":"EmitStatement","src":"15843:48:130"}]},"functionSelector":"559de05d","implemented":true,"kind":"function","modifiers":[{"id":78681,"kind":"modifierInvocation","modifierName":{"id":78680,"name":"nonReentrant","nameLocations":["14953:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"14953:12:130"},"nodeType":"ModifierInvocation","src":"14953:12:130"}],"name":"increasePower","nameLocation":"14909:13:130","parameters":{"id":78679,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78678,"mutability":"mutable","name":"_amountStaked","nameLocation":"14931:13:130","nodeType":"VariableDeclaration","scope":78780,"src":"14923:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78677,"name":"uint256","nodeType":"ElementaryTypeName","src":"14923:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"14922:23:130"},"returnParameters":{"id":78682,"nodeType":"ParameterList","parameters":[],"src":"14966:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78930,"nodeType":"FunctionDefinition","src":"16038:1554:130","nodes":[],"body":{"id":78929,"nodeType":"Block","src":"16106:1486:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78787,"name":"onlyRegistryMemberSender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77960,"src":"16116:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":78788,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16116:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78789,"nodeType":"ExpressionStatement","src":"16116:26:130"},{"assignments":[78791],"declarations":[{"constant":false,"id":78791,"mutability":"mutable","name":"member","nameLocation":"16160:6:130","nodeType":"VariableDeclaration","scope":78929,"src":"16152:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78790,"name":"address","nodeType":"ElementaryTypeName","src":"16152:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78794,"initialValue":{"expression":{"id":78792,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"16169:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":78793,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16173:6:130","memberName":"sender","nodeType":"MemberAccess","src":"16169:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16152:27:130"},{"assignments":[78799],"declarations":[{"constant":false,"id":78799,"mutability":"mutable","name":"memberStrategies","nameLocation":"16207:16:130","nodeType":"VariableDeclaration","scope":78929,"src":"16189:34:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":78797,"name":"address","nodeType":"ElementaryTypeName","src":"16189:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78798,"nodeType":"ArrayTypeName","src":"16189:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":78803,"initialValue":{"baseExpression":{"id":78800,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"16226:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":78802,"indexExpression":{"id":78801,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"16245:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16226:26:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"16189:63:130"},{"assignments":[78805],"declarations":[{"constant":false,"id":78805,"mutability":"mutable","name":"pointsToDecrease","nameLocation":"16271:16:130","nodeType":"VariableDeclaration","scope":78929,"src":"16263:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78804,"name":"uint256","nodeType":"ElementaryTypeName","src":"16263:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78806,"nodeType":"VariableDeclarationStatement","src":"16263:24:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78814,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78812,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"baseExpression":{"id":78807,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"16302:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":78809,"indexExpression":{"id":78808,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"16322:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16302:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"id":78810,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"16330:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"16302:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":78811,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78782,"src":"16345:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16302:58:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":78813,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"16363:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16302:80:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78819,"nodeType":"IfStatement","src":"16298:140:130","trueBody":{"id":78818,"nodeType":"Block","src":"16384:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":78815,"name":"DecreaseUnderMinimum","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78058,"src":"16405:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":78816,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16405:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78817,"nodeType":"RevertStatement","src":"16398:29:130"}]}},{"expression":{"arguments":[{"id":78823,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"16472:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78824,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78782,"src":"16480:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78820,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"16447:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":78822,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16459:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"16447:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":78825,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16447:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78826,"nodeType":"ExpressionStatement","src":"16447:49:130"},{"body":{"id":78915,"nodeType":"Block","src":"16560:897:130","statements":[{"assignments":[78839],"declarations":[{"constant":false,"id":78839,"mutability":"mutable","name":"strategy","nameLocation":"16582:8:130","nodeType":"VariableDeclaration","scope":78915,"src":"16574:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78838,"name":"address","nodeType":"ElementaryTypeName","src":"16574:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78843,"initialValue":{"baseExpression":{"id":78840,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"16593:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78842,"indexExpression":{"id":78841,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78828,"src":"16610:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16593:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"16574:38:130"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":78847,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"16662:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":78846,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"16657:4:130","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":78848,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16657:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":78849,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"16678:11:130","memberName":"interfaceId","nodeType":"MemberAccess","src":"16657:32:130","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78844,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78839,"src":"16630:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78845,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16639:17:130","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58147,"src":"16630:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":78850,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16630:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78913,"nodeType":"Block","src":"17180:250:130","statements":[{"expression":{"id":78902,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":78893,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"17265:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78895,"indexExpression":{"id":78894,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78828,"src":"17282:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17265:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"baseExpression":{"id":78896,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"17287:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78901,"indexExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78900,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":78897,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"17304:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78898,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17321:6:130","memberName":"length","nodeType":"MemberAccess","src":"17304:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"hexValue":"31","id":78899,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"17330:1:130","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"17304:27:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17287:45:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"17265:67:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78903,"nodeType":"ExpressionStatement","src":"17265:67:130"},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":78904,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"17350:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78906,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"17367:3:130","memberName":"pop","nodeType":"MemberAccess","src":"17350:20:130","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":78907,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17350:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78908,"nodeType":"ExpressionStatement","src":"17350:22:130"},{"expression":{"arguments":[{"id":78910,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78839,"src":"17406:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78909,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79097,"src":"17390:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78911,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17390:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78912,"nodeType":"ExpressionStatement","src":"17390:25:130"}]},"id":78914,"nodeType":"IfStatement","src":"16626:804:130","trueBody":{"id":78892,"nodeType":"Block","src":"16692:482:130","statements":[{"expression":{"id":78859,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78851,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78805,"src":"16710:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78856,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"16768:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78857,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78782,"src":"16776:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"arguments":[{"id":78853,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78839,"src":"16744:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78852,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"16729:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":78854,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:24:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":78855,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16754:13:130","memberName":"decreasePower","nodeType":"MemberAccess","referencedDeclaration":72786,"src":"16729:38:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_uint256_$","typeString":"function (address,uint256) external returns (uint256)"}},"id":78858,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16729:63:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16710:82:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78860,"nodeType":"ExpressionStatement","src":"16710:82:130"},{"assignments":[78862],"declarations":[{"constant":false,"id":78862,"mutability":"mutable","name":"currentPower","nameLocation":"16818:12:130","nodeType":"VariableDeclaration","scope":78892,"src":"16810:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78861,"name":"uint256","nodeType":"ElementaryTypeName","src":"16810:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78870,"initialValue":{"baseExpression":{"baseExpression":{"id":78863,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"16833:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78865,"indexExpression":{"id":78864,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"16855:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16833:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78869,"indexExpression":{"baseExpression":{"id":78866,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"16863:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78868,"indexExpression":{"id":78867,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78828,"src":"16880:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16863:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"16833:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"16810:73:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78873,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78871,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78805,"src":"16905:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":78872,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78862,"src":"16924:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16905:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"falseBody":{"id":78890,"nodeType":"Block","src":"17049:111:130","statements":[{"expression":{"id":78888,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"baseExpression":{"id":78880,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"17071:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78885,"indexExpression":{"id":78881,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"17093:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17071:29:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78886,"indexExpression":{"baseExpression":{"id":78882,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"17101:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78884,"indexExpression":{"id":78883,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78828,"src":"17118:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17101:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"17071:50:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":78887,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78805,"src":"17125:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17071:70:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78889,"nodeType":"ExpressionStatement","src":"17071:70:130"}]},"id":78891,"nodeType":"IfStatement","src":"16901:259:130","trueBody":{"id":78879,"nodeType":"Block","src":"16938:105:130","statements":[{"errorCall":{"arguments":[{"id":78875,"name":"pointsToDecrease","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78805,"src":"16993:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":78876,"name":"currentPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78862,"src":"17011:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78874,"name":"CantDecreaseMoreThanPower","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78064,"src":"16967:25:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_uint256_$_t_uint256_$returns$__$","typeString":"function (uint256,uint256) pure"}},"id":78877,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"16967:57:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78878,"nodeType":"RevertStatement","src":"16960:64:130"}]}}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":78834,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":78831,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78828,"src":"16526:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":78832,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78799,"src":"16530:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[] storage pointer"}},"id":78833,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"16547:6:130","memberName":"length","nodeType":"MemberAccess","src":"16530:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"16526:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78916,"initializationExpression":{"assignments":[78828],"declarations":[{"constant":false,"id":78828,"mutability":"mutable","name":"i","nameLocation":"16519:1:130","nodeType":"VariableDeclaration","scope":78916,"src":"16511:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78827,"name":"uint256","nodeType":"ElementaryTypeName","src":"16511:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":78830,"initialValue":{"hexValue":"30","id":78829,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"16523:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"16511:13:130"},"loopExpression":{"expression":{"id":78836,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"16555:3:130","subExpression":{"id":78835,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78828,"src":"16555:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78837,"nodeType":"ExpressionStatement","src":"16555:3:130"},"nodeType":"ForStatement","src":"16506:951:130"},{"expression":{"id":78922,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78917,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"17466:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":78919,"indexExpression":{"id":78918,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"17486:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17466:27:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"id":78920,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"17494:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"17466:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"-=","rightHandSide":{"id":78921,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78782,"src":"17510:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"17466:59:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78923,"nodeType":"ExpressionStatement","src":"17466:59:130"},{"eventCall":{"arguments":[{"id":78925,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78791,"src":"17561:6:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78926,"name":"_amountUnstaked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78782,"src":"17569:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78924,"name":"MemberPowerDecreased","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77918,"src":"17540:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":78927,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"17540:45:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78928,"nodeType":"EmitStatement","src":"17535:50:130"}]},"functionSelector":"5ecf71c5","implemented":true,"kind":"function","modifiers":[{"id":78785,"kind":"modifierInvocation","modifierName":{"id":78784,"name":"nonReentrant","nameLocations":["16093:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"16093:12:130"},"nodeType":"ModifierInvocation","src":"16093:12:130"}],"name":"decreasePower","nameLocation":"16047:13:130","parameters":{"id":78783,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78782,"mutability":"mutable","name":"_amountUnstaked","nameLocation":"16069:15:130","nodeType":"VariableDeclaration","scope":78930,"src":"16061:23:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78781,"name":"uint256","nodeType":"ElementaryTypeName","src":"16061:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"16060:25:130"},"returnParameters":{"id":78786,"nodeType":"ParameterList","parameters":[],"src":"16106:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":78946,"nodeType":"FunctionDefinition","src":"17598:165:130","nodes":[],"body":{"id":78945,"nodeType":"Block","src":"17698:65:130","nodes":[],"statements":[{"expression":{"baseExpression":{"baseExpression":{"id":78939,"name":"memberPowerInStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77804,"src":"17715:21:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_mapping$_t_address_$_t_uint256_$_$","typeString":"mapping(address => mapping(address => uint256))"}},"id":78941,"indexExpression":{"id":78940,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78932,"src":"17737:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17715:30:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_uint256_$","typeString":"mapping(address => uint256)"}},"id":78943,"indexExpression":{"id":78942,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78934,"src":"17746:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17715:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78938,"id":78944,"nodeType":"Return","src":"17708:48:130"}]},"functionSelector":"7817ee4f","implemented":true,"kind":"function","modifiers":[],"name":"getMemberPowerInStrategy","nameLocation":"17607:24:130","parameters":{"id":78935,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78932,"mutability":"mutable","name":"_member","nameLocation":"17640:7:130","nodeType":"VariableDeclaration","scope":78946,"src":"17632:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78931,"name":"address","nodeType":"ElementaryTypeName","src":"17632:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78934,"mutability":"mutable","name":"_strategy","nameLocation":"17657:9:130","nodeType":"VariableDeclaration","scope":78946,"src":"17649:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78933,"name":"address","nodeType":"ElementaryTypeName","src":"17649:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17631:36:130"},"returnParameters":{"id":78938,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78937,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78946,"src":"17689:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78936,"name":"uint256","nodeType":"ElementaryTypeName","src":"17689:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17688:9:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78959,"nodeType":"FunctionDefinition","src":"17769:143:130","nodes":[],"body":{"id":78958,"nodeType":"Block","src":"17847:65:130","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":78953,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"17864:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":78955,"indexExpression":{"id":78954,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78948,"src":"17884:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"17864:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"id":78956,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"17893:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"17864:41:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78952,"id":78957,"nodeType":"Return","src":"17857:48:130"}]},"functionSelector":"2c611c4a","implemented":true,"kind":"function","modifiers":[],"name":"getMemberStakedAmount","nameLocation":"17778:21:130","parameters":{"id":78949,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78948,"mutability":"mutable","name":"_member","nameLocation":"17808:7:130","nodeType":"VariableDeclaration","scope":78959,"src":"17800:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78947,"name":"address","nodeType":"ElementaryTypeName","src":"17800:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"17799:17:130"},"returnParameters":{"id":78952,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78951,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78959,"src":"17838:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78950,"name":"uint256","nodeType":"ElementaryTypeName","src":"17838:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"17837:9:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":78996,"nodeType":"FunctionDefinition","src":"18041:313:130","nodes":[],"body":{"id":78995,"nodeType":"Block","src":"18093:261:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78964,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"18103:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":78965,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18103:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78966,"nodeType":"ExpressionStatement","src":"18103:17:130"},{"assignments":[78968],"declarations":[{"constant":false,"id":78968,"mutability":"mutable","name":"strategy","nameLocation":"18138:8:130","nodeType":"VariableDeclaration","scope":78995,"src":"18130:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78967,"name":"address","nodeType":"ElementaryTypeName","src":"18130:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":78977,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":78973,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78961,"src":"18170:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":78971,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77786,"src":"18157:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"id":78972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18162:7:130","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":80222,"src":"18157:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":78974,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18157:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":78975,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"18178:8:130","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"18157:29:130","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":78970,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18149:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78969,"name":"address","nodeType":"ElementaryTypeName","src":"18149:7:130","typeDescriptions":{}}},"id":78976,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18149:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18130:57:130"},{"expression":{"arguments":[{"id":78979,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78968,"src":"18216:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78978,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"18197:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78980,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18197:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78981,"nodeType":"ExpressionStatement","src":"18197:28:130"},{"condition":{"arguments":[{"expression":{"arguments":[{"id":78985,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"18271:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}],"id":78984,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"18266:4:130","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":78986,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18266:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_IPointStrategy_$72793","typeString":"type(contract IPointStrategy)"}},"id":78987,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"18287:11:130","memberName":"interfaceId","nodeType":"MemberAccess","src":"18266:32:130","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":78982,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78968,"src":"18239:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78983,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18248:17:130","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":58147,"src":"18239:26:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$_t_bytes4_$returns$_t_bool_$attached_to$_t_address_$","typeString":"function (address,bytes4) view returns (bool)"}},"id":78988,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18239:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78994,"nodeType":"IfStatement","src":"18235:113:130","trueBody":{"id":78993,"nodeType":"Block","src":"18301:47:130","statements":[{"expression":{"arguments":[{"id":78990,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78968,"src":"18328:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78989,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79033,"src":"18315:12:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18315:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78992,"nodeType":"ExpressionStatement","src":"18315:22:130"}]}}]},"functionSelector":"82d6a1e7","implemented":true,"kind":"function","modifiers":[],"name":"addStrategyByPoolId","nameLocation":"18050:19:130","parameters":{"id":78962,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78961,"mutability":"mutable","name":"poolId","nameLocation":"18078:6:130","nodeType":"VariableDeclaration","scope":78996,"src":"18070:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78960,"name":"uint256","nodeType":"ElementaryTypeName","src":"18070:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18069:16:130"},"returnParameters":{"id":78963,"nodeType":"ParameterList","parameters":[],"src":"18093:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79009,"nodeType":"FunctionDefinition","src":"18360:120:130","nodes":[],"body":{"id":79008,"nodeType":"Block","src":"18410:70:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79001,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"18420:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79002,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18420:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79003,"nodeType":"ExpressionStatement","src":"18420:17:130"},{"expression":{"arguments":[{"id":79005,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78998,"src":"18460:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79004,"name":"_addStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79033,"src":"18447:12:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18447:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79007,"nodeType":"ExpressionStatement","src":"18447:26:130"}]},"functionSelector":"223e5479","implemented":true,"kind":"function","modifiers":[],"name":"addStrategy","nameLocation":"18369:11:130","parameters":{"id":78999,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78998,"mutability":"mutable","name":"_newStrategy","nameLocation":"18389:12:130","nodeType":"VariableDeclaration","scope":79009,"src":"18381:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78997,"name":"address","nodeType":"ElementaryTypeName","src":"18381:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18380:22:130"},"returnParameters":{"id":79000,"nodeType":"ParameterList","parameters":[],"src":"18410:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79033,"nodeType":"FunctionDefinition","src":"18486:244:130","nodes":[],"body":{"id":79032,"nodeType":"Block","src":"18539:191:130","nodes":[],"statements":[{"condition":{"baseExpression":{"id":79014,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77797,"src":"18553:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":79016,"indexExpression":{"id":79015,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79011,"src":"18571:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"18553:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79021,"nodeType":"IfStatement","src":"18549:85:130","trueBody":{"id":79020,"nodeType":"Block","src":"18586:48:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79017,"name":"StrategyExists","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78042,"src":"18607:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18607:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79019,"nodeType":"RevertStatement","src":"18600:23:130"}]}},{"expression":{"id":79026,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79022,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77797,"src":"18643:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":79024,"indexExpression":{"id":79023,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79011,"src":"18661:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"18643:31:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":79025,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"18677:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"18643:38:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79027,"nodeType":"ExpressionStatement","src":"18643:38:130"},{"eventCall":{"arguments":[{"id":79029,"name":"_newStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79011,"src":"18710:12:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79028,"name":"StrategyAdded","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77884,"src":"18696:13:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79030,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18696:27:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79031,"nodeType":"EmitStatement","src":"18691:32:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_addStrategy","nameLocation":"18495:12:130","parameters":{"id":79012,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79011,"mutability":"mutable","name":"_newStrategy","nameLocation":"18516:12:130","nodeType":"VariableDeclaration","scope":79033,"src":"18508:20:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79010,"name":"address","nodeType":"ElementaryTypeName","src":"18508:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18507:22:130"},"returnParameters":{"id":79013,"nodeType":"ParameterList","parameters":[],"src":"18539:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79049,"nodeType":"FunctionDefinition","src":"18736:133:130","nodes":[],"body":{"id":79048,"nodeType":"Block","src":"18796:73:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79038,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79035,"src":"18810:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79041,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"18830:1:130","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":79040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18822:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79039,"name":"address","nodeType":"ElementaryTypeName","src":"18822:7:130","typeDescriptions":{}}},"id":79042,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18822:10:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"18810:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79047,"nodeType":"IfStatement","src":"18806:56:130","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79044,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78026,"src":"18841:19:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79045,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18841:21:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79046,"nodeType":"RevertStatement","src":"18834:28:130"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"18745:18:130","parameters":{"id":79036,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79035,"mutability":"mutable","name":"_address","nameLocation":"18772:8:130","nodeType":"VariableDeclaration","scope":79049,"src":"18764:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79034,"name":"address","nodeType":"ElementaryTypeName","src":"18764:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"18763:18:130"},"returnParameters":{"id":79037,"nodeType":"ParameterList","parameters":[],"src":"18796:0:130"},"scope":79618,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":79077,"nodeType":"FunctionDefinition","src":"18875:229:130","nodes":[],"body":{"id":79076,"nodeType":"Block","src":"18930:174:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79054,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"18940:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79055,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18940:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79056,"nodeType":"ExpressionStatement","src":"18940:17:130"},{"assignments":[79058],"declarations":[{"constant":false,"id":79058,"mutability":"mutable","name":"strategy","nameLocation":"18975:8:130","nodeType":"VariableDeclaration","scope":79076,"src":"18967:16:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79057,"name":"address","nodeType":"ElementaryTypeName","src":"18967:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79067,"initialValue":{"arguments":[{"expression":{"arguments":[{"id":79063,"name":"poolId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79051,"src":"19007:6:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79061,"name":"allo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77786,"src":"18994:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_FAllo_$80223","typeString":"contract FAllo"}},"id":79062,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"18999:7:130","memberName":"getPool","nodeType":"MemberAccess","referencedDeclaration":80222,"src":"18994:12:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_uint256_$returns$_t_struct$_Pool_$2319_memory_ptr_$","typeString":"function (uint256) view external returns (struct IAllo.Pool memory)"}},"id":79064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18994:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Pool_$2319_memory_ptr","typeString":"struct IAllo.Pool memory"}},"id":79065,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"19015:8:130","memberName":"strategy","nodeType":"MemberAccess","referencedDeclaration":2309,"src":"18994:29:130","typeDescriptions":{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IStrategy_$2969","typeString":"contract IStrategy"}],"id":79060,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"18986:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79059,"name":"address","nodeType":"ElementaryTypeName","src":"18986:7:130","typeDescriptions":{}}},"id":79066,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"18986:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"18967:57:130"},{"expression":{"arguments":[{"id":79069,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79058,"src":"19053:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79068,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"19034:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79070,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19034:28:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79071,"nodeType":"ExpressionStatement","src":"19034:28:130"},{"expression":{"arguments":[{"id":79073,"name":"strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79058,"src":"19088:8:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79072,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79097,"src":"19072:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19072:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79075,"nodeType":"ExpressionStatement","src":"19072:25:130"}]},"functionSelector":"73265c37","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategyByPoolId","nameLocation":"18884:22:130","parameters":{"id":79052,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79051,"mutability":"mutable","name":"poolId","nameLocation":"18915:6:130","nodeType":"VariableDeclaration","scope":79077,"src":"18907:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79050,"name":"uint256","nodeType":"ElementaryTypeName","src":"18907:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"18906:16:130"},"returnParameters":{"id":79053,"nodeType":"ParameterList","parameters":[],"src":"18930:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79097,"nodeType":"FunctionDefinition","src":"19110:186:130","nodes":[],"body":{"id":79096,"nodeType":"Block","src":"19163:133:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":79083,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79079,"src":"19192:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79082,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"19173:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79084,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19173:29:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79085,"nodeType":"ExpressionStatement","src":"19173:29:130"},{"expression":{"id":79090,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":79086,"name":"enabledStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77797,"src":"19212:17:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_bool_$","typeString":"mapping(address => bool)"}},"id":79088,"indexExpression":{"id":79087,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79079,"src":"19230:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"19212:28:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"66616c7365","id":79089,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"19243:5:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"false"},"src":"19212:36:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79091,"nodeType":"ExpressionStatement","src":"19212:36:130"},{"eventCall":{"arguments":[{"id":79093,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79079,"src":"19279:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79092,"name":"StrategyRemoved","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77888,"src":"19263:15:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79094,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19263:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79095,"nodeType":"EmitStatement","src":"19258:31:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_removeStrategy","nameLocation":"19119:15:130","parameters":{"id":79080,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79079,"mutability":"mutable","name":"_strategy","nameLocation":"19143:9:130","nodeType":"VariableDeclaration","scope":79097,"src":"19135:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79078,"name":"address","nodeType":"ElementaryTypeName","src":"19135:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19134:19:130"},"returnParameters":{"id":79081,"nodeType":"ParameterList","parameters":[],"src":"19163:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79110,"nodeType":"FunctionDefinition","src":"19302:120:130","nodes":[],"body":{"id":79109,"nodeType":"Block","src":"19352:70:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79102,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"19362:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79103,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19362:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79104,"nodeType":"ExpressionStatement","src":"19362:17:130"},{"expression":{"arguments":[{"id":79106,"name":"_strategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79099,"src":"19405:9:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79105,"name":"_removeStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79097,"src":"19389:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79107,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19389:26:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79108,"nodeType":"ExpressionStatement","src":"19389:26:130"}]},"functionSelector":"175188e8","implemented":true,"kind":"function","modifiers":[],"name":"removeStrategy","nameLocation":"19311:14:130","parameters":{"id":79100,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79099,"mutability":"mutable","name":"_strategy","nameLocation":"19334:9:130","nodeType":"VariableDeclaration","scope":79110,"src":"19326:17:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79098,"name":"address","nodeType":"ElementaryTypeName","src":"19326:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"19325:19:130"},"returnParameters":{"id":79101,"nodeType":"ParameterList","parameters":[],"src":"19352:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79135,"nodeType":"FunctionDefinition","src":"19428:240:130","nodes":[],"body":{"id":79134,"nodeType":"Block","src":"19482:186:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79115,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"19492:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79116,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19492:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79117,"nodeType":"ExpressionStatement","src":"19492:17:130"},{"expression":{"arguments":[{"id":79119,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79112,"src":"19538:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":79118,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79049,"src":"19519:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19519:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79121,"nodeType":"ExpressionStatement","src":"19519:25:130"},{"expression":{"id":79124,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79122,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77770,"src":"19554:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79123,"name":"_safe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79112,"src":"19575:5:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"19554:26:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"id":79125,"nodeType":"ExpressionStatement","src":"19554:26:130"},{"eventCall":{"arguments":[{"arguments":[{"id":79129,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77782,"src":"19628:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}],"id":79128,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"19620:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79127,"name":"address","nodeType":"ElementaryTypeName","src":"19620:7:130","typeDescriptions":{}}},"id":79130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19620:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79131,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77770,"src":"19642:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":79126,"name":"CouncilSafeChangeStarted","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77847,"src":"19595:24:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$returns$__$","typeString":"function (address,address)"}},"id":79132,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19595:66:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79133,"nodeType":"EmitStatement","src":"19590:71:130"}]},"functionSelector":"397e2543","implemented":true,"kind":"function","modifiers":[],"name":"setCouncilSafe","nameLocation":"19437:14:130","parameters":{"id":79113,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79112,"mutability":"mutable","name":"_safe","nameLocation":"19468:5:130","nodeType":"VariableDeclaration","scope":79135,"src":"19452:21:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"},"typeName":{"id":79111,"name":"address","nodeType":"ElementaryTypeName","src":"19452:15:130","stateMutability":"payable","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"visibility":"internal"}],"src":"19451:23:130"},"returnParameters":{"id":79114,"nodeType":"ParameterList","parameters":[],"src":"19482:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79152,"nodeType":"FunctionDefinition","src":"19674:179:130","nodes":[],"body":{"id":79151,"nodeType":"Block","src":"19713:140:130","nodes":[],"statements":[{"expression":{"id":79142,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79138,"name":"councilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77782,"src":"19723:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79140,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77770,"src":"19743:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":79139,"name":"ISafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80232,"src":"19737:5:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ISafe_$80232_$","typeString":"type(contract ISafe)"}},"id":79141,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19737:25:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"src":"19723:39:130","typeDescriptions":{"typeIdentifier":"t_contract$_ISafe_$80232","typeString":"contract ISafe"}},"id":79143,"nodeType":"ExpressionStatement","src":"19723:39:130"},{"expression":{"id":79145,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"19772:25:130","subExpression":{"id":79144,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77770,"src":"19779:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79146,"nodeType":"ExpressionStatement","src":"19772:25:130"},{"eventCall":{"arguments":[{"id":79148,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77770,"src":"19827:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":79147,"name":"CouncilSafeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77841,"src":"19812:14:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79149,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19812:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79150,"nodeType":"EmitStatement","src":"19807:39:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_changeCouncilSafe","nameLocation":"19683:18:130","parameters":{"id":79136,"nodeType":"ParameterList","parameters":[],"src":"19701:2:130"},"returnParameters":{"id":79137,"nodeType":"ParameterList","parameters":[],"src":"19713:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79168,"nodeType":"FunctionDefinition","src":"19859:171:130","nodes":[],"body":{"id":79167,"nodeType":"Block","src":"19895:135:130","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79158,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":79155,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"19909:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79156,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"19913:6:130","memberName":"sender","nodeType":"MemberAccess","src":"19909:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"id":79157,"name":"pendingCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77770,"src":"19923:18:130","typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}},"src":"19909:32:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79163,"nodeType":"IfStatement","src":"19905:89:130","trueBody":{"id":79162,"nodeType":"Block","src":"19943:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79159,"name":"SenderNotNewOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78046,"src":"19964:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79160,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"19964:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79161,"nodeType":"RevertStatement","src":"19957:26:130"}]}},{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79164,"name":"_changeCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79152,"src":"20003:18:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79165,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20003:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79166,"nodeType":"ExpressionStatement","src":"20003:20:130"}]},"functionSelector":"b5058c50","implemented":true,"kind":"function","modifiers":[],"name":"acceptCouncilSafe","nameLocation":"19868:17:130","parameters":{"id":79153,"nodeType":"ParameterList","parameters":[],"src":"19885:2:130"},"returnParameters":{"id":79154,"nodeType":"ParameterList","parameters":[],"src":"19895:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79186,"nodeType":"FunctionDefinition","src":"20036:182:130","nodes":[],"body":{"id":79185,"nodeType":"Block","src":"20108:110:130","nodes":[],"statements":[{"assignments":[79177],"declarations":[{"constant":false,"id":79177,"mutability":"mutable","name":"newMember","nameLocation":"20132:9:130","nodeType":"VariableDeclaration","scope":79185,"src":"20118:23:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member"},"typeName":{"id":79176,"nodeType":"UserDefinedTypeName","pathNode":{"id":79175,"name":"Member","nameLocations":["20118:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":78071,"src":"20118:6:130"},"referencedDeclaration":78071,"src":"20118:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"}},"visibility":"internal"}],"id":79181,"initialValue":{"baseExpression":{"id":79178,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"20144:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":79180,"indexExpression":{"id":79179,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79170,"src":"20164:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20144:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20118:54:130"},{"expression":{"expression":{"id":79182,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79177,"src":"20189:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member memory"}},"id":79183,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"20199:12:130","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":78070,"src":"20189:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79174,"id":79184,"nodeType":"Return","src":"20182:29:130"}]},"functionSelector":"a230c524","implemented":true,"kind":"function","modifiers":[],"name":"isMember","nameLocation":"20045:8:130","parameters":{"id":79171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79170,"mutability":"mutable","name":"_member","nameLocation":"20062:7:130","nodeType":"VariableDeclaration","scope":79186,"src":"20054:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79169,"name":"address","nodeType":"ElementaryTypeName","src":"20054:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"20053:17:130"},"returnParameters":{"id":79174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79173,"mutability":"mutable","name":"_isMember","nameLocation":"20097:9:130","nodeType":"VariableDeclaration","scope":79186,"src":"20092:14:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79172,"name":"bool","nodeType":"ElementaryTypeName","src":"20092:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"20091:16:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79345,"nodeType":"FunctionDefinition","src":"20224:1907:130","nodes":[],"body":{"id":79344,"nodeType":"Block","src":"20278:1853:130","nodes":[],"statements":[{"assignments":[79192],"declarations":[{"constant":false,"id":79192,"mutability":"mutable","name":"_member","nameLocation":"20296:7:130","nodeType":"VariableDeclaration","scope":79344,"src":"20288:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79191,"name":"address","nodeType":"ElementaryTypeName","src":"20288:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79195,"initialValue":{"expression":{"id":79193,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"20306:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79194,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20310:6:130","memberName":"sender","nodeType":"MemberAccess","src":"20306:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"20288:28:130"},{"assignments":[79198],"declarations":[{"constant":false,"id":79198,"mutability":"mutable","name":"newMember","nameLocation":"20341:9:130","nodeType":"VariableDeclaration","scope":79344,"src":"20326:24:130","stateVariable":false,"storageLocation":"storage","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"},"typeName":{"id":79197,"nodeType":"UserDefinedTypeName","pathNode":{"id":79196,"name":"Member","nameLocations":["20326:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":78071,"src":"20326:6:130"},"referencedDeclaration":78071,"src":"20326:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"}},"visibility":"internal"}],"id":79202,"initialValue":{"baseExpression":{"id":79199,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"20353:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":79201,"indexExpression":{"id":79200,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79192,"src":"20373:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"20353:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"20326:55:130"},{"assignments":[79205],"declarations":[{"constant":false,"id":79205,"mutability":"mutable","name":"gardensFactory","nameLocation":"20407:14:130","nodeType":"VariableDeclaration","scope":79344,"src":"20391:30:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"},"typeName":{"id":79204,"nodeType":"UserDefinedTypeName","pathNode":{"id":79203,"name":"RegistryFactory","nameLocations":["20391:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":79854,"src":"20391:15:130"},"referencedDeclaration":79854,"src":"20391:15:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":79209,"initialValue":{"arguments":[{"id":79207,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77761,"src":"20440:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79206,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"20424:15:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$79854_$","typeString":"type(contract RegistryFactory)"}},"id":79208,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20424:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"20391:65:130"},{"assignments":[79211],"declarations":[{"constant":false,"id":79211,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"20474:18:130","nodeType":"VariableDeclaration","scope":79344,"src":"20466:26:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79210,"name":"uint256","nodeType":"ElementaryTypeName","src":"20466:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79221,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79214,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79212,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"20496:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79213,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77752,"src":"20518:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20496:34:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79215,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20495:36:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79218,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":79216,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20535:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79217,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77737,"src":"20541:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20535:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79219,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20534:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20495:62:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20466:91:130"},{"assignments":[79223],"declarations":[{"constant":false,"id":79223,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"20575:16:130","nodeType":"VariableDeclaration","scope":79344,"src":"20567:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79222,"name":"uint256","nodeType":"ElementaryTypeName","src":"20567:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79239,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79238,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79232,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79224,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"20607:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":79229,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"20667:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":79228,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20659:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79227,"name":"address","nodeType":"ElementaryTypeName","src":"20659:7:130","typeDescriptions":{}}},"id":79230,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20659:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79225,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79205,"src":"20629:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":79226,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20644:14:130","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":79853,"src":"20629:29:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":79231,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20629:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20607:66:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79233,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"20606:68:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79236,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":79234,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"20678:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79235,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77737,"src":"20684:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20678:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79237,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"20677:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20606:94:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"20567:133:130"},{"condition":{"id":79243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"20714:18:130","subExpression":{"arguments":[{"id":79241,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79192,"src":"20724:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79240,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79186,"src":"20715:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":79242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20715:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79343,"nodeType":"IfStatement","src":"20710:1415:130","trueBody":{"id":79342,"nodeType":"Block","src":"20734:1391:130","statements":[{"expression":{"id":79248,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79244,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79198,"src":"20748:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member storage pointer"}},"id":79246,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20758:12:130","memberName":"isRegistered","nodeType":"MemberAccess","referencedDeclaration":78070,"src":"20748:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":79247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"20773:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"20748:29:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79249,"nodeType":"ExpressionStatement","src":"20748:29:130"},{"expression":{"id":79254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79250,"name":"newMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79198,"src":"20792:9:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member storage pointer"}},"id":79252,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"20802:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"20792:22:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79253,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"20817:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"20792:44:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79255,"nodeType":"ExpressionStatement","src":"20792:44:130"},{"expression":{"arguments":[{"hexValue":"67617264656e546f6b656e","id":79259,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"20934:13:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},"value":"gardenToken"},{"arguments":[{"id":79262,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"20957:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":79261,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"20949:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79260,"name":"address","nodeType":"ElementaryTypeName","src":"20949:7:130","typeDescriptions":{}}},"id":79263,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20949:20:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_b6b24c50b8ec3de451e1d7969209d38d6bc12dc5d1266588ab0e293c9a1b753a","typeString":"literal_string \"gardenToken\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79256,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"20922:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":79258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20930:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"20922:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":79264,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20922:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79265,"nodeType":"ExpressionStatement","src":"20922:48:130"},{"expression":{"arguments":[{"id":79269,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79192,"src":"21031:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":79272,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"21048:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":79271,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"21040:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79270,"name":"address","nodeType":"ElementaryTypeName","src":"21040:7:130","typeDescriptions":{}}},"id":79273,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21040:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79278,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79276,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79274,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"21055:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79275,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79211,"src":"21077:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21055:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79277,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79223,"src":"21098:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"21055:59:130","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":79266,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"20985:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":79268,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"20997:16:130","memberName":"safeTransferFrom","nodeType":"MemberAccess","referencedDeclaration":57021,"src":"20985:28:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,address,uint256)"}},"id":79279,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"20985:143:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79280,"nodeType":"ExpressionStatement","src":"20985:143:130"},{"expression":{"arguments":[{"hexValue":"636f6d6d756e697479466565416d6f756e74","id":79284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21491:20:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},"value":"communityFeeAmount"},{"id":79285,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79211,"src":"21513:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_415492b98adc161fabebd8057944f6684f9fd452571affd947805630e42af66a","typeString":"literal_string \"communityFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79281,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"21479:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":79283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21487:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"21479:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":79286,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21479:53:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79287,"nodeType":"ExpressionStatement","src":"21479:53:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79290,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79288,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79211,"src":"21550:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79289,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21571:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21550:22:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79306,"nodeType":"IfStatement","src":"21546:175:130","trueBody":{"id":79305,"nodeType":"Block","src":"21574:147:130","statements":[{"expression":{"arguments":[{"hexValue":"6665655265636569766572","id":79294,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21604:13:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},"value":"feeReceiver"},{"id":79295,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77758,"src":"21619:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_389e7cbf003e878980985f1a72c90dbe5b79c41a44fb160ac26b4fef395d0916","typeString":"literal_string \"feeReceiver\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79291,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"21592:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":79293,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21600:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"21592:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":79296,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21592:39:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79297,"nodeType":"ExpressionStatement","src":"21592:39:130"},{"expression":{"arguments":[{"id":79301,"name":"feeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77758,"src":"21674:11:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79302,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79211,"src":"21687:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79298,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"21649:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":79300,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21661:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"21649:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":79303,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21649:57:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79304,"nodeType":"ExpressionStatement","src":"21649:57:130"}]}},{"expression":{"arguments":[{"hexValue":"67617264656e73466565416d6f756e74","id":79310,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21746:18:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},"value":"gardensFeeAmount"},{"id":79311,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79223,"src":"21766:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_da8763bbba0536c18d8861cb49d3bb999157cbcc3d98d4bc78b4c3f620189681","typeString":"literal_string \"gardensFeeAmount\""},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79307,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"21734:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":79309,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21742:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22193,"src":"21734:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_uint256_$returns$__$","typeString":"function (string memory,uint256) view"}},"id":79312,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21734:49:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79313,"nodeType":"ExpressionStatement","src":"21734:49:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79314,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79223,"src":"21801:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"hexValue":"30","id":79315,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"21820:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"21801:20:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79336,"nodeType":"IfStatement","src":"21797:252:130","trueBody":{"id":79335,"nodeType":"Block","src":"21823:226:130","statements":[{"expression":{"arguments":[{"hexValue":"67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829","id":79320,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"21853:40:130","typeDescriptions":{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},"value":"gardensFactory.getGardensFeeReceiver()"},{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79321,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79205,"src":"21895:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":79322,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21910:21:130","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":79772,"src":"21895:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79323,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21895:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_52073e8ed84f6dfe673a411cc23bb08f06da5bbdad4d391c0e8d90fc482c379a","typeString":"literal_string \"gardensFactory.getGardensFeeReceiver()\""},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79317,"name":"console","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":29549,"src":"21841:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_console_$29549_$","typeString":"type(library console)"}},"id":79319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21849:3:130","memberName":"log","nodeType":"MemberAccess","referencedDeclaration":22244,"src":"21841:11:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_string_memory_ptr_$_t_address_$returns$__$","typeString":"function (string memory,address) view"}},"id":79324,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21841:93:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79325,"nodeType":"ExpressionStatement","src":"21841:93:130"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"expression":{"id":79329,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79205,"src":"21977:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":79330,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21992:21:130","memberName":"getGardensFeeReceiver","nodeType":"MemberAccess","referencedDeclaration":79772,"src":"21977:36:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_address_$","typeString":"function () view external returns (address)"}},"id":79331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21977:38:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79332,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79223,"src":"22017:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79326,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"21952:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":79328,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"21964:12:130","memberName":"safeTransfer","nodeType":"MemberAccess","referencedDeclaration":56994,"src":"21952:24:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_address_$_t_uint256_$returns$__$attached_to$_t_contract$_IERC20_$56900_$","typeString":"function (contract IERC20,address,uint256)"}},"id":79333,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"21952:82:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79334,"nodeType":"ExpressionStatement","src":"21952:82:130"}]}},{"eventCall":{"arguments":[{"id":79338,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79192,"src":"22085:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79339,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"22094:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79337,"name":"MemberRegistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77853,"src":"22068:16:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":79340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22068:46:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79341,"nodeType":"EmitStatement","src":"22063:51:130"}]}}]},"functionSelector":"3517aa7d","implemented":true,"kind":"function","modifiers":[{"id":79189,"kind":"modifierInvocation","modifierName":{"id":79188,"name":"nonReentrant","nameLocations":["20265:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"20265:12:130"},"nodeType":"ModifierInvocation","src":"20265:12:130"}],"name":"stakeAndRegisterMember","nameLocation":"20233:22:130","parameters":{"id":79187,"nodeType":"ParameterList","parameters":[],"src":"20255:2:130"},"returnParameters":{"id":79190,"nodeType":"ParameterList","parameters":[],"src":"20278:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79394,"nodeType":"FunctionDefinition","src":"22137:467:130","nodes":[],"body":{"id":79393,"nodeType":"Block","src":"22201:403:130","nodes":[],"statements":[{"assignments":[79352],"declarations":[{"constant":false,"id":79352,"mutability":"mutable","name":"gardensFactory","nameLocation":"22227:14:130","nodeType":"VariableDeclaration","scope":79393,"src":"22211:30:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"},"typeName":{"id":79351,"nodeType":"UserDefinedTypeName","pathNode":{"id":79350,"name":"RegistryFactory","nameLocations":["22211:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":79854,"src":"22211:15:130"},"referencedDeclaration":79854,"src":"22211:15:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"visibility":"internal"}],"id":79356,"initialValue":{"arguments":[{"id":79354,"name":"registryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77761,"src":"22260:15:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79353,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"22244:15:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryFactory_$79854_$","typeString":"type(contract RegistryFactory)"}},"id":79355,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22244:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"nodeType":"VariableDeclarationStatement","src":"22211:65:130"},{"assignments":[79358],"declarations":[{"constant":false,"id":79358,"mutability":"mutable","name":"communityFeeAmount","nameLocation":"22294:18:130","nodeType":"VariableDeclaration","scope":79393,"src":"22286:26:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79357,"name":"uint256","nodeType":"ElementaryTypeName","src":"22286:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79368,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79367,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79361,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79359,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"22316:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79360,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77752,"src":"22338:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22316:34:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79362,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22315:36:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79365,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":79363,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22355:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79364,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77737,"src":"22361:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22355:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79366,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22354:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22315:62:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22286:91:130"},{"assignments":[79370],"declarations":[{"constant":false,"id":79370,"mutability":"mutable","name":"gardensFeeAmount","nameLocation":"22395:16:130","nodeType":"VariableDeclaration","scope":79393,"src":"22387:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79369,"name":"uint256","nodeType":"ElementaryTypeName","src":"22387:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79386,"initialValue":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79385,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79379,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79371,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"22427:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"arguments":[{"arguments":[{"id":79376,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"22487:4:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":79375,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"22479:7:130","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79374,"name":"address","nodeType":"ElementaryTypeName","src":"22479:7:130","typeDescriptions":{}}},"id":79377,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22479:13:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":79372,"name":"gardensFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79352,"src":"22449:14:130","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}},"id":79373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"22464:14:130","memberName":"getProtocolFee","nodeType":"MemberAccess","referencedDeclaration":79853,"src":"22449:29:130","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":79378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22449:44:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22427:66:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79380,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"22426:68:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"/","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79383,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"leftExpression":{"hexValue":"313030","id":79381,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"22498:3:130","typeDescriptions":{"typeIdentifier":"t_rational_100_by_1","typeString":"int_const 100"},"value":"100"},"nodeType":"BinaryOperation","operator":"*","rightExpression":{"id":79382,"name":"PRECISION_SCALE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77737,"src":"22504:15:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22498:21:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":79384,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"22497:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22426:94:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"22387:133:130"},{"expression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79391,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79389,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79387,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"22538:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79388,"name":"communityFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79358,"src":"22560:18:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22538:40:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":79390,"name":"gardensFeeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79370,"src":"22581:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22538:59:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79349,"id":79392,"nodeType":"Return","src":"22531:66:130"}]},"functionSelector":"28c309e9","implemented":true,"kind":"function","modifiers":[],"name":"getStakeAmountWithFees","nameLocation":"22146:22:130","parameters":{"id":79346,"nodeType":"ParameterList","parameters":[],"src":"22168:2:130"},"returnParameters":{"id":79349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79348,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79394,"src":"22192:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79347,"name":"uint256","nodeType":"ElementaryTypeName","src":"22192:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22191:9:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79402,"nodeType":"FunctionDefinition","src":"22610:107:130","nodes":[],"body":{"id":79401,"nodeType":"Block","src":"22674:43:130","nodes":[],"statements":[{"expression":{"id":79399,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"22691:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79398,"id":79400,"nodeType":"Return","src":"22684:26:130"}]},"functionSelector":"0331383c","implemented":true,"kind":"function","modifiers":[],"name":"getBasisStakedAmount","nameLocation":"22619:20:130","parameters":{"id":79395,"nodeType":"ParameterList","parameters":[],"src":"22639:2:130"},"returnParameters":{"id":79398,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79397,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79402,"src":"22665:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79396,"name":"uint256","nodeType":"ElementaryTypeName","src":"22665:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22664:9:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79419,"nodeType":"FunctionDefinition","src":"22723:182:130","nodes":[],"body":{"id":79418,"nodeType":"Block","src":"22782:123:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79407,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"22792:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79408,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22792:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79409,"nodeType":"ExpressionStatement","src":"22792:17:130"},{"expression":{"id":79412,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79410,"name":"registerStakeAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77749,"src":"22819:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79411,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79404,"src":"22841:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"22819:32:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79413,"nodeType":"ExpressionStatement","src":"22819:32:130"},{"eventCall":{"arguments":[{"id":79415,"name":"_newAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79404,"src":"22887:10:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79414,"name":"BasisStakedAmountSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77906,"src":"22866:20:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":79416,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22866:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79417,"nodeType":"EmitStatement","src":"22861:37:130"}]},"functionSelector":"31f61bca","implemented":true,"kind":"function","modifiers":[],"name":"setBasisStakedAmount","nameLocation":"22732:20:130","parameters":{"id":79405,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79404,"mutability":"mutable","name":"_newAmount","nameLocation":"22761:10:130","nodeType":"VariableDeclaration","scope":79419,"src":"22753:18:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79403,"name":"uint256","nodeType":"ElementaryTypeName","src":"22753:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22752:20:130"},"returnParameters":{"id":79406,"nodeType":"ParameterList","parameters":[],"src":"22782:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":79444,"nodeType":"FunctionDefinition","src":"22911:280:130","nodes":[],"body":{"id":79443,"nodeType":"Block","src":"22969:222:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79424,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"22979:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79425,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"22979:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79426,"nodeType":"ExpressionStatement","src":"22979:17:130"},{"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79429,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79427,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79421,"src":"23010:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">","rightExpression":{"id":79428,"name":"MAX_FEE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77743,"src":"23029:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23010:26:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79434,"nodeType":"IfStatement","src":"23006:86:130","trueBody":{"id":79433,"nodeType":"Block","src":"23038:54:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79430,"name":"NewFeeGreaterThanMax","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78052,"src":"23059:20:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79431,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23059:22:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79432,"nodeType":"RevertStatement","src":"23052:29:130"}]}},{"expression":{"id":79437,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79435,"name":"communityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77752,"src":"23101:12:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79436,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79421,"src":"23116:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"23101:31:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79438,"nodeType":"ExpressionStatement","src":"23101:31:130"},{"eventCall":{"arguments":[{"id":79440,"name":"_newCommunityFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79421,"src":"23167:16:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79439,"name":"CommunityFeeUpdated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77871,"src":"23147:19:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_uint256_$returns$__$","typeString":"function (uint256)"}},"id":79441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23147:37:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79442,"nodeType":"EmitStatement","src":"23142:42:130"}]},"functionSelector":"0d12bbdb","implemented":true,"kind":"function","modifiers":[],"name":"setCommunityFee","nameLocation":"22920:15:130","parameters":{"id":79422,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79421,"mutability":"mutable","name":"_newCommunityFee","nameLocation":"22944:16:130","nodeType":"VariableDeclaration","scope":79444,"src":"22936:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79420,"name":"uint256","nodeType":"ElementaryTypeName","src":"22936:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"22935:26:130"},"returnParameters":{"id":79423,"nodeType":"ParameterList","parameters":[],"src":"22969:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79457,"nodeType":"FunctionDefinition","src":"23233:125:130","nodes":[],"body":{"id":79456,"nodeType":"Block","src":"23302:56:130","nodes":[],"statements":[{"expression":{"arguments":[{"id":79452,"name":"COUNCIL_MEMBER","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77833,"src":"23327:14:130","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":79453,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79446,"src":"23343:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":79451,"name":"hasRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52495,"src":"23319:7:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) view returns (bool)"}},"id":79454,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23319:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79450,"id":79455,"nodeType":"Return","src":"23312:39:130"}]},"functionSelector":"ebd7dc52","implemented":true,"kind":"function","modifiers":[],"name":"isCouncilMember","nameLocation":"23242:15:130","parameters":{"id":79447,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79446,"mutability":"mutable","name":"_member","nameLocation":"23266:7:130","nodeType":"VariableDeclaration","scope":79457,"src":"23258:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79445,"name":"address","nodeType":"ElementaryTypeName","src":"23258:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23257:17:130"},"returnParameters":{"id":79450,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79449,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79457,"src":"23296:4:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79448,"name":"bool","nodeType":"ElementaryTypeName","src":"23296:4:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"23295:6:130"},"scope":79618,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":79507,"nodeType":"FunctionDefinition","src":"23364:453:130","nodes":[],"body":{"id":79506,"nodeType":"Block","src":"23412:405:130","nodes":[],"statements":[{"assignments":[79463],"declarations":[{"constant":false,"id":79463,"mutability":"mutable","name":"_member","nameLocation":"23430:7:130","nodeType":"VariableDeclaration","scope":79506,"src":"23422:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79462,"name":"address","nodeType":"ElementaryTypeName","src":"23422:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"id":79466,"initialValue":{"expression":{"id":79464,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"23440:3:130","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":79465,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23444:6:130","memberName":"sender","nodeType":"MemberAccess","src":"23440:10:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"VariableDeclarationStatement","src":"23422:28:130"},{"expression":{"arguments":[{"id":79468,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23486:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79467,"name":"onlyRegistryMemberAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77975,"src":"23460:25:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$__$","typeString":"function (address) view"}},"id":79469,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23460:34:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79470,"nodeType":"ExpressionStatement","src":"23460:34:130"},{"expression":{"arguments":[{"id":79472,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23528:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79471,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79544,"src":"23504:23:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79473,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23504:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79474,"nodeType":"ExpressionStatement","src":"23504:32:130"},{"assignments":[79477],"declarations":[{"constant":false,"id":79477,"mutability":"mutable","name":"member","nameLocation":"23560:6:130","nodeType":"VariableDeclaration","scope":79506,"src":"23546:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member"},"typeName":{"id":79476,"nodeType":"UserDefinedTypeName","pathNode":{"id":79475,"name":"Member","nameLocations":["23546:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":78071,"src":"23546:6:130"},"referencedDeclaration":78071,"src":"23546:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"}},"visibility":"internal"}],"id":79481,"initialValue":{"baseExpression":{"id":79478,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"23569:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":79480,"indexExpression":{"id":79479,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23589:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23569:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23546:51:130"},{"expression":{"id":79485,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"23607:35:130","subExpression":{"baseExpression":{"id":79482,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"23614:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":79484,"indexExpression":{"id":79483,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23634:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23614:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79486,"nodeType":"ExpressionStatement","src":"23607:35:130"},{"expression":{"id":79490,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"23652:34:130","subExpression":{"baseExpression":{"id":79487,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"23659:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":79489,"indexExpression":{"id":79488,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23678:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"23659:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79491,"nodeType":"ExpressionStatement","src":"23652:34:130"},{"expression":{"arguments":[{"id":79495,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23718:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79496,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79477,"src":"23727:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member memory"}},"id":79497,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23734:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"23727:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79492,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"23697:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":79494,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"23709:8:130","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"23697:20:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":79498,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23697:50:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79499,"nodeType":"ExpressionStatement","src":"23697:50:130"},{"eventCall":{"arguments":[{"id":79501,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79463,"src":"23781:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79502,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79477,"src":"23790:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member memory"}},"id":79503,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"23797:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"23790:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79500,"name":"MemberUnregistered","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77859,"src":"23762:18:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":79504,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"23762:48:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79505,"nodeType":"EmitStatement","src":"23757:53:130"}]},"functionSelector":"b99b4370","implemented":true,"kind":"function","modifiers":[{"id":79460,"kind":"modifierInvocation","modifierName":{"id":79459,"name":"nonReentrant","nameLocations":["23399:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"23399:12:130"},"nodeType":"ModifierInvocation","src":"23399:12:130"}],"name":"unregisterMember","nameLocation":"23373:16:130","parameters":{"id":79458,"nodeType":"ParameterList","parameters":[],"src":"23389:2:130"},"returnParameters":{"id":79461,"nodeType":"ParameterList","parameters":[],"src":"23412:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79544,"nodeType":"FunctionDefinition","src":"23823:466:130","nodes":[],"body":{"id":79543,"nodeType":"Block","src":"23882:407:130","nodes":[],"statements":[{"assignments":[79516],"declarations":[{"constant":false,"id":79516,"mutability":"mutable","name":"memberStrategies","nameLocation":"23909:16:130","nodeType":"VariableDeclaration","scope":79543,"src":"23892:33:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":79514,"name":"address","nodeType":"ElementaryTypeName","src":"23892:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79515,"nodeType":"ArrayTypeName","src":"23892:9:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"}],"id":79520,"initialValue":{"baseExpression":{"id":79517,"name":"strategiesByMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77816,"src":"23928:18:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_array$_t_address_$dyn_storage_$","typeString":"mapping(address => address[] storage ref)"}},"id":79519,"indexExpression":{"id":79518,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79509,"src":"23947:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"23928:27:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage","typeString":"address[] storage ref"}},"nodeType":"VariableDeclarationStatement","src":"23892:63:130"},{"body":{"id":79541,"nodeType":"Block","src":"24085:198:130","statements":[{"expression":{"arguments":[{"id":79538,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79509,"src":"24264:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"arguments":[{"baseExpression":{"id":79533,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79516,"src":"24226:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79535,"indexExpression":{"id":79534,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"24243:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24226:19:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79532,"name":"IPointStrategy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":72793,"src":"24211:14:130","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_IPointStrategy_$72793_$","typeString":"type(contract IPointStrategy)"}},"id":79536,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24211:35:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_IPointStrategy_$72793","typeString":"contract IPointStrategy"}},"id":79537,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24247:16:130","memberName":"deactivatePoints","nodeType":"MemberAccess","referencedDeclaration":72768,"src":"24211:52:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":79539,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24211:61:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79540,"nodeType":"ExpressionStatement","src":"24211:61:130"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":79528,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79525,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"24051:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":79526,"name":"memberStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79516,"src":"24055:16:130","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":79527,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24072:6:130","memberName":"length","nodeType":"MemberAccess","src":"24055:23:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"24051:27:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79542,"initializationExpression":{"assignments":[79522],"declarations":[{"constant":false,"id":79522,"mutability":"mutable","name":"i","nameLocation":"24044:1:130","nodeType":"VariableDeclaration","scope":79542,"src":"24036:9:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79521,"name":"uint256","nodeType":"ElementaryTypeName","src":"24036:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":79524,"initialValue":{"hexValue":"30","id":79523,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24048:1:130","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"nodeType":"VariableDeclarationStatement","src":"24036:13:130"},"loopExpression":{"expression":{"id":79530,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"24080:3:130","subExpression":{"id":79529,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79522,"src":"24080:1:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79531,"nodeType":"ExpressionStatement","src":"24080:3:130"},"nodeType":"ForStatement","src":"24031:252:130"}]},"implemented":true,"kind":"function","modifiers":[],"name":"deactivateAllStrategies","nameLocation":"23832:23:130","parameters":{"id":79510,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79509,"mutability":"mutable","name":"_member","nameLocation":"23864:7:130","nodeType":"VariableDeclaration","scope":79544,"src":"23856:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79508,"name":"address","nodeType":"ElementaryTypeName","src":"23856:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"23855:17:130"},"returnParameters":{"id":79511,"nodeType":"ParameterList","parameters":[],"src":"23882:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79604,"nodeType":"FunctionDefinition","src":"24295:571:130","nodes":[],"body":{"id":79603,"nodeType":"Block","src":"24378:488:130","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79553,"name":"onlyCouncilSafe","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77946,"src":"24388:15:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$__$returns$__$","typeString":"function () view"}},"id":79554,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24388:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79555,"nodeType":"ExpressionStatement","src":"24388:17:130"},{"condition":{"id":79557,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24419:14:130","subExpression":{"id":79556,"name":"isKickEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77746,"src":"24420:13:130","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79562,"nodeType":"IfStatement","src":"24415:68:130","trueBody":{"id":79561,"nodeType":"Block","src":"24435:48:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79558,"name":"KickNotEnabled","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78054,"src":"24456:14:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79559,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24456:16:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79560,"nodeType":"RevertStatement","src":"24449:23:130"}]}},{"condition":{"id":79566,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"24496:18:130","subExpression":{"arguments":[{"id":79564,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"24506:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79563,"name":"isMember","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79186,"src":"24497:8:130","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":79565,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24497:17:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79571,"nodeType":"IfStatement","src":"24492:75:130","trueBody":{"id":79570,"nodeType":"Block","src":"24516:51:130","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79567,"name":"UserNotInRegistry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"24537:17:130","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79568,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24537:19:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79569,"nodeType":"RevertStatement","src":"24530:26:130"}]}},{"assignments":[79574],"declarations":[{"constant":false,"id":79574,"mutability":"mutable","name":"member","nameLocation":"24590:6:130","nodeType":"VariableDeclaration","scope":79603,"src":"24576:20:130","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member"},"typeName":{"id":79573,"nodeType":"UserDefinedTypeName","pathNode":{"id":79572,"name":"Member","nameLocations":["24576:6:130"],"nodeType":"IdentifierPath","referencedDeclaration":78071,"src":"24576:6:130"},"referencedDeclaration":78071,"src":"24576:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage_ptr","typeString":"struct RegistryCommunityV0_0.Member"}},"visibility":"internal"}],"id":79578,"initialValue":{"baseExpression":{"id":79575,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"24599:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":79577,"indexExpression":{"id":79576,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"24619:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"24599:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"nodeType":"VariableDeclarationStatement","src":"24576:51:130"},{"expression":{"arguments":[{"id":79580,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"24661:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79579,"name":"deactivateAllStrategies","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79544,"src":"24637:23:130","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79581,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24637:32:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79582,"nodeType":"ExpressionStatement","src":"24637:32:130"},{"expression":{"id":79586,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"delete","prefix":true,"src":"24679:35:130","subExpression":{"baseExpression":{"id":79583,"name":"addressToMemberInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77810,"src":"24686:19:130","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_Member_$78071_storage_$","typeString":"mapping(address => struct RegistryCommunityV0_0.Member storage ref)"}},"id":79585,"indexExpression":{"id":79584,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"24706:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"24686:28:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_storage","typeString":"struct RegistryCommunityV0_0.Member storage ref"}},"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79587,"nodeType":"ExpressionStatement","src":"24679:35:130"},{"expression":{"arguments":[{"id":79591,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79548,"src":"24746:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79592,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79574,"src":"24764:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member memory"}},"id":79593,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24771:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"24764:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":79588,"name":"gardenToken","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77778,"src":"24725:11:130","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":79590,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"24737:8:130","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"24725:20:130","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":79594,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24725:59:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79595,"nodeType":"ExpressionStatement","src":"24725:59:130"},{"eventCall":{"arguments":[{"id":79597,"name":"_member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79546,"src":"24812:7:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79598,"name":"_transferAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79548,"src":"24821:16:130","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"expression":{"id":79599,"name":"member","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79574,"src":"24839:6:130","typeDescriptions":{"typeIdentifier":"t_struct$_Member_$78071_memory_ptr","typeString":"struct RegistryCommunityV0_0.Member memory"}},"id":79600,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"24846:12:130","memberName":"stakedAmount","nodeType":"MemberAccess","referencedDeclaration":78068,"src":"24839:19:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79596,"name":"MemberKicked","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77867,"src":"24799:12:130","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":79601,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"24799:60:130","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79602,"nodeType":"EmitStatement","src":"24794:65:130"}]},"functionSelector":"6871eb4d","implemented":true,"kind":"function","modifiers":[{"id":79551,"kind":"modifierInvocation","modifierName":{"id":79550,"name":"nonReentrant","nameLocations":["24365:12:130"],"nodeType":"IdentifierPath","referencedDeclaration":53236,"src":"24365:12:130"},"nodeType":"ModifierInvocation","src":"24365:12:130"}],"name":"kickMember","nameLocation":"24304:10:130","parameters":{"id":79549,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79546,"mutability":"mutable","name":"_member","nameLocation":"24323:7:130","nodeType":"VariableDeclaration","scope":79604,"src":"24315:15:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79545,"name":"address","nodeType":"ElementaryTypeName","src":"24315:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79548,"mutability":"mutable","name":"_transferAddress","nameLocation":"24340:16:130","nodeType":"VariableDeclaration","scope":79604,"src":"24332:24:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79547,"name":"address","nodeType":"ElementaryTypeName","src":"24332:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24314:43:130"},"returnParameters":{"id":79552,"nodeType":"ParameterList","parameters":[],"src":"24378:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79613,"nodeType":"FunctionDefinition","src":"24872:66:130","nodes":[],"body":{"id":79612,"nodeType":"Block","src":"24936:2:130","nodes":[],"statements":[]},"baseFunctions":[56043],"implemented":true,"kind":"function","modifiers":[{"id":79610,"kind":"modifierInvocation","modifierName":{"id":79609,"name":"onlyOwner","nameLocations":["24926:9:130"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"24926:9:130"},"nodeType":"ModifierInvocation","src":"24926:9:130"}],"name":"_authorizeUpgrade","nameLocation":"24881:17:130","overrides":{"id":79608,"nodeType":"OverrideSpecifier","overrides":[],"src":"24917:8:130"},"parameters":{"id":79607,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79606,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79613,"src":"24899:7:130","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79605,"name":"address","nodeType":"ElementaryTypeName","src":"24899:7:130","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"24898:9:130"},"returnParameters":{"id":79611,"nodeType":"ParameterList","parameters":[],"src":"24936:0:130"},"scope":79618,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":79617,"nodeType":"VariableDeclaration","src":"24944:25:130","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"24964:5:130","scope":79618,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":79614,"name":"uint256","nodeType":"ElementaryTypeName","src":"24944:7:130","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79616,"length":{"hexValue":"3530","id":79615,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"24952:2:130","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"24944:11:130","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":77710,"name":"OwnableUpgradeable","nameLocations":["1291:18:130"],"nodeType":"IdentifierPath","referencedDeclaration":52942,"src":"1291:18:130"},"id":77711,"nodeType":"InheritanceSpecifier","src":"1291:18:130"},{"baseName":{"id":77712,"name":"UUPSUpgradeable","nameLocations":["1315:15:130"],"nodeType":"IdentifierPath","referencedDeclaration":56044,"src":"1315:15:130"},"id":77713,"nodeType":"InheritanceSpecifier","src":"1315:15:130"},{"baseName":{"id":77714,"name":"ReentrancyGuardUpgradeable","nameLocations":["1336:26:130"],"nodeType":"IdentifierPath","referencedDeclaration":53276,"src":"1336:26:130"},"id":77715,"nodeType":"InheritanceSpecifier","src":"1336:26:130"},{"baseName":{"id":77716,"name":"AccessControlUpgradeable","nameLocations":["1368:24:130"],"nodeType":"IdentifierPath","referencedDeclaration":52736,"src":"1368:24:130"},"id":77717,"nodeType":"InheritanceSpecifier","src":"1368:24:130"}],"canonicalName":"RegistryCommunityV0_0","contractDependencies":[],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79618,52736,54009,54021,52809,53276,56044,55866,55515,55525,52942,53735,53191],"name":"RegistryCommunityV0_0","nameLocation":"1262:21:130","scope":79619,"usedErrors":[78026,78028,78030,78032,78034,78036,78038,78040,78042,78044,78046,78048,78050,78052,78054,78056,78058,78064]}],"license":"AGPL-3.0-only"},"id":130} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json b/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json index 0a61ff64a..8201f5f5d 100644 --- a/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json +++ b/pkg/contracts/out/RegistryFactory.sol/RegistryFactory.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052600060015534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61531e806100836000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106a3565b6101fa565b6040519081526020015b60405180910390f35b61011261010d3660046106d7565b61027b565b005b6101126102e7565b61011261012a3660046106a3565b6102fb565b61014261013d366004610848565b61036d565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b61011261019336600461099e565b61048e565b600354610142906001600160a01b031681565b6101126101b93660046106a3565b6104ea565b6101ea6101cc3660046106a3565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081205460ff1661025c576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090206001015490565b61028361057a565b6001600160a01b038216600081815260026020908152604091829020805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102ef61057a565b6102f960006105d4565b565b61030361057a565b61030c81610631565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161037c90610671565b604051809103906000f080158015610398573d6000803e3d6000fd5b506001805491925060006103ab836109ca565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906103ff908690600401610a5e565b600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050506001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b61049661057a565b6001600160a01b038216600081815260026020908152604091829020600101849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102db565b6104f261057a565b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610253565b610577816105d4565b50565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610253565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610b9e83390190565b6001600160a01b038116811461057757600080fd5b803561069e8161067e565b919050565b6000602082840312156106b557600080fd5b81356106c08161067e565b9392505050565b8035801515811461069e57600080fd5b600080604083850312156106ea57600080fd5b82356106f58161067e565b9150610703602084016106c7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156107465761074661070c565b60405290565b600082601f83011261075d57600080fd5b813567ffffffffffffffff808211156107785761077861070c565b604051601f8301601f19908116603f011681019082821181831017156107a0576107a061070c565b816040528381528660208588010111156107b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107eb57600080fd5b6040516040810167ffffffffffffffff828210818311171561080f5761080f61070c565b8160405282935084358352602085013591508082111561082e57600080fd5b5061083b8582860161074c565b6020830152505092915050565b60006020828403121561085a57600080fd5b813567ffffffffffffffff8082111561087257600080fd5b908301906101a0828603121561088757600080fd5b61088f610722565b61089883610693565b81526108a660208401610693565b60208201526040830135604082015260608301356060820152608083013560808201526108d560a08401610693565b60a08201526108e660c08401610693565b60c082015260e0830135828111156108fd57600080fd5b610909878286016107d9565b60e08301525061010061091d818501610693565b90820152610120838101358381111561093557600080fd5b6109418882870161074c565b8284015250506101406109558185016106c7565b90820152610160838101358381111561096d57600080fd5b6109798882870161074c565b828401525050610180915061098f828401610693565b91810191909152949350505050565b600080604083850312156109b157600080fd5b82356109bc8161067e565b946020939093013593505050565b6000600182016109ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a17576020818501810151868301820152016109fb565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5660408501826109f1565b949350505050565b60208152610a786020820183516001600160a01b03169052565b60006020830151610a9460408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610acd60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b016101c0860184610a37565b90860151909250610120610b1f868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b3f85846109f1565b945080880151925050610160610b588188018415159052565b80880151925050610180818786030181880152610b7585846109f1565b94508088015192505050610b93828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033a26469706673582212201deb57be081802969f39e930378ad92a781f87d62615c375720c636b840bd75364736f6c63430008130033","sourceMap":"202:2981:131:-:0;;;267:1;244:24;;202:2981;;;;;;;;;-1:-1:-1;936:32:60;734:10:80;936:18:60;:32::i;:::-;202:2981:131;;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;;;;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;202:2981:131:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106a3565b6101fa565b6040519081526020015b60405180910390f35b61011261010d3660046106d7565b61027b565b005b6101126102e7565b61011261012a3660046106a3565b6102fb565b61014261013d366004610848565b61036d565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b61011261019336600461099e565b61048e565b600354610142906001600160a01b031681565b6101126101b93660046106a3565b6104ea565b6101ea6101cc3660046106a3565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081205460ff1661025c576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090206001015490565b61028361057a565b6001600160a01b038216600081815260026020908152604091829020805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102ef61057a565b6102f960006105d4565b565b61030361057a565b61030c81610631565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161037c90610671565b604051809103906000f080158015610398573d6000803e3d6000fd5b506001805491925060006103ab836109ca565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906103ff908690600401610a5e565b600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050506001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b61049661057a565b6001600160a01b038216600081815260026020908152604091829020600101849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102db565b6104f261057a565b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610253565b610577816105d4565b50565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610253565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610b9e83390190565b6001600160a01b038116811461057757600080fd5b803561069e8161067e565b919050565b6000602082840312156106b557600080fd5b81356106c08161067e565b9392505050565b8035801515811461069e57600080fd5b600080604083850312156106ea57600080fd5b82356106f58161067e565b9150610703602084016106c7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156107465761074661070c565b60405290565b600082601f83011261075d57600080fd5b813567ffffffffffffffff808211156107785761077861070c565b604051601f8301601f19908116603f011681019082821181831017156107a0576107a061070c565b816040528381528660208588010111156107b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107eb57600080fd5b6040516040810167ffffffffffffffff828210818311171561080f5761080f61070c565b8160405282935084358352602085013591508082111561082e57600080fd5b5061083b8582860161074c565b6020830152505092915050565b60006020828403121561085a57600080fd5b813567ffffffffffffffff8082111561087257600080fd5b908301906101a0828603121561088757600080fd5b61088f610722565b61089883610693565b81526108a660208401610693565b60208201526040830135604082015260608301356060820152608083013560808201526108d560a08401610693565b60a08201526108e660c08401610693565b60c082015260e0830135828111156108fd57600080fd5b610909878286016107d9565b60e08301525061010061091d818501610693565b90820152610120838101358381111561093557600080fd5b6109418882870161074c565b8284015250506101406109558185016106c7565b90820152610160838101358381111561096d57600080fd5b6109798882870161074c565b828401525050610180915061098f828401610693565b91810191909152949350505050565b600080604083850312156109b157600080fd5b82356109bc8161067e565b946020939093013593505050565b6000600182016109ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a17576020818501810151868301820152016109fb565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5660408501826109f1565b949350505050565b60208152610a786020820183516001600160a01b03169052565b60006020830151610a9460408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610acd60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b016101c0860184610a37565b90860151909250610120610b1f868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b3f85846109f1565b945080880151925050610160610b588188018415159052565b80880151925050610180818786030181880152610b7585846109f1565b94508088015192505050610b93828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033a26469706673582212201deb57be081802969f39e930378ad92a781f87d62615c375720c636b840bd75364736f6c63430008130033","sourceMap":"202:2981:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:241;;;;;;:::i;:::-;;:::i;:::-;;;710:25:143;;;698:2;683:18;2940:241:131;;;;;;;;2592:200;;;;;;:::i;:::-;;:::i;:::-;;1824:101:60;;;:::i;2043:214:131:-;;;;;;:::i;:::-;;:::i;1519:518::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5023:55:143;;;5005:74;;4993:2;4978:18;1519:518:131;4859:226:143;1201:85:60;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;1201:85;;2263:107:131;2345:18;;-1:-1:-1;;;;;2345:18:131;2263:107;;244:24;;;;;;2376:210;;;;;;:::i;:::-;;:::i;515:33::-;;;;;-1:-1:-1;;;;;515:33:131;;;2074:198:60;;;;;;:::i;:::-;;:::i;2798:136:131:-;;;;;;:::i;:::-;-1:-1:-1;;;;;2894:27:131;2871:4;2894:27;;;:15;:27;;;;;:33;;;;2798:136;;;;5671:14:143;;5664:22;5646:41;;5634:2;5619:18;2798:136:131;5506:187:143;2940:241:131;-1:-1:-1;;;;;3031:27:131;;3007:7;3031:27;;;:15;:27;;;;;:33;;;3026:100;;3087:28;;;;;-1:-1:-1;;;;;5023:55:143;;3087:28:131;;;5005:74:143;4978:18;;3087:28:131;;;;;;;;3026:100;-1:-1:-1;;;;;;3143:27:131;;;;;:15;:27;;;;;:31;;;;2940:241::o;2592:200::-;1094:13:60;:11;:13::i;:::-;-1:-1:-1;;;;;2684:27:131;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:44;;-1:-1:-1;;2684:44:131::1;::::0;::::1;;::::0;;::::1;::::0;;;2743:42;;5866:74:143;;;5956:18;;;5949:50;2743:42:131::1;::::0;5839:18:143;2743:42:131::1;;;;;;;;2592:200:::0;;:::o;1824:101:60:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2043:214:131:-;1094:13:60;:11;:13::i;:::-;2123:35:131::1;2142:15;2123:18;:35::i;:::-;2168:18;:36:::0;;-1:-1:-1;;2168:36:131::1;-1:-1:-1::0;;;;;2168:36:131;::::1;::::0;;::::1;::::0;;;2219:31:::1;::::0;5005:74:143;;;2219:31:131::1;::::0;4993:2:143;4978:18;2219:31:131::1;;;;;;;2043:214:::0;:::o;1519:518::-;1625:31;1672:35;1710:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1759:5:131;:7;;1672:61;;-1:-1:-1;1759:5:131;:7;;;:::i;:::-;;;;-1:-1:-1;1743:13:131;;;:23;1810:4;1776:23;;;:39;1826:36;;;;;-1:-1:-1;;;;;1826:28:131;;;;;:36;;1743:6;;1826:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;1872:43:131;;;;;;:15;:43;;;;;;;;;:56;;-1:-1:-1;;1872:56:131;1924:4;1872:56;;;1943:44;;5005:74:143;;;1943:44:131;;4978:18:143;1943:44:131;;;;;;;2012:17;1519:518;-1:-1:-1;;1519:518:131:o;2376:210::-;1094:13:60;:11;:13::i;:::-;-1:-1:-1;;;;;2472:27:131;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:31:::1;;:49:::0;;;2536:43;;9044:74:143;;;9134:18;;9127:34;;;2536:43:131::1;::::0;9017:18:143;2536:43:131::1;8870:297:143::0;2074:198:60;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:60;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:60;;9374:2:143;2154:73:60::1;::::0;::::1;9356:21:143::0;9413:2;9393:18;;;9386:30;9452:34;9432:18;;;9425:62;9523:8;9503:18;;;9496:36;9549:19;;2154:73:60::1;9172:402:143::0;2154:73:60::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;734:10:80;1422:23:60;1414:68;;;;-1:-1:-1;;;1414:68:60;;9781:2:143;1414:68:60;;;9763:21:143;;;9800:18;;;9793:30;9859:34;9839:18;;;9832:62;9911:18;;1414:68:60;9579:356:143;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;1380:133:131:-;-1:-1:-1;;;;;1454:22:131;;1450:56;;1485:21;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;14:154:143:-;-1:-1:-1;;;;;93:5:143;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;:::-;548:5;312:247;-1:-1:-1;;;312:247:143:o;746:160::-;811:20;;867:13;;860:21;850:32;;840:60;;896:1;893;886:12;911:315;976:6;984;1037:2;1025:9;1016:7;1012:23;1008:32;1005:52;;;1053:1;1050;1043:12;1005:52;1092:9;1079:23;1111:31;1136:5;1111:31;:::i;:::-;1161:5;-1:-1:-1;1185:35:143;1216:2;1201:18;;1185:35;:::i;:::-;1175:45;;911:315;;;;;:::o;1231:184::-;-1:-1:-1;;;1280:1:143;1273:88;1380:4;1377:1;1370:15;1404:4;1401:1;1394:15;1420:250;1487:2;1481:9;1529:6;1517:19;;1566:18;1551:34;;1587:22;;;1548:62;1545:88;;;1613:18;;:::i;:::-;1649:2;1642:22;1420:250;:::o;1675:719::-;1718:5;1771:3;1764:4;1756:6;1752:17;1748:27;1738:55;;1789:1;1786;1779:12;1738:55;1825:6;1812:20;1851:18;1888:2;1884;1881:10;1878:36;;;1894:18;;:::i;:::-;1969:2;1963:9;1937:2;2023:13;;-1:-1:-1;;2019:22:143;;;2043:2;2015:31;2011:40;1999:53;;;2067:18;;;2087:22;;;2064:46;2061:72;;;2113:18;;:::i;:::-;2153:10;2149:2;2142:22;2188:2;2180:6;2173:18;2234:3;2227:4;2222:2;2214:6;2210:15;2206:26;2203:35;2200:55;;;2251:1;2248;2241:12;2200:55;2315:2;2308:4;2300:6;2296:17;2289:4;2281:6;2277:17;2264:54;2362:1;2355:4;2350:2;2342:6;2338:15;2334:26;2327:37;2382:6;2373:15;;;;;;1675:719;;;;:::o;2399:610::-;2454:5;2502:4;2490:9;2485:3;2481:19;2477:30;2474:50;;;2520:1;2517;2510:12;2474:50;2553:4;2547:11;2597:4;2589:6;2585:17;2621:18;2689:6;2677:10;2674:22;2669:2;2657:10;2654:18;2651:46;2648:72;;;2700:18;;:::i;:::-;2742:10;2736:4;2729:24;2771:6;2762:15;;2814:9;2801:23;2793:6;2786:39;2876:2;2865:9;2861:18;2848:32;2834:46;;2903:2;2895:6;2892:14;2889:34;;;2919:1;2916;2909:12;2889:34;;2956:46;2998:3;2989:6;2978:9;2974:22;2956:46;:::i;:::-;2951:2;2943:6;2939:15;2932:71;;;2399:610;;;;:::o;3014:1708::-;3108:6;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3217:9;3204:23;3246:18;3287:2;3279:6;3276:14;3273:34;;;3303:1;3300;3293:12;3273:34;3326:22;;;;3382:6;3364:16;;;3360:29;3357:49;;;3402:1;3399;3392:12;3357:49;3428:17;;:::i;:::-;3468:22;3487:2;3468:22;:::i;:::-;3461:5;3454:37;3523:31;3550:2;3546;3542:11;3523:31;:::i;:::-;3518:2;3511:5;3507:14;3500:55;3608:2;3604;3600:11;3587:25;3582:2;3575:5;3571:14;3564:49;3666:2;3662;3658:11;3645:25;3640:2;3633:5;3629:14;3622:49;3725:3;3721:2;3717:12;3704:26;3698:3;3691:5;3687:15;3680:51;3764:32;3791:3;3787:2;3783:12;3764:32;:::i;:::-;3758:3;3751:5;3747:15;3740:57;3830:32;3857:3;3853:2;3849:12;3830:32;:::i;:::-;3824:3;3817:5;3813:15;3806:57;3909:3;3905:2;3901:12;3888:26;3939:2;3929:8;3926:16;3923:36;;;3955:1;3952;3945:12;3923:36;3992:54;4038:7;4027:8;4023:2;4019:17;3992:54;:::i;:::-;3986:3;3979:5;3975:15;3968:79;;4066:3;4101:31;4128:2;4124;4120:11;4101:31;:::i;:::-;4085:14;;;4078:55;4152:3;4193:11;;;4180:25;4217:16;;;4214:36;;;4246:1;4243;4236:12;4214:36;4282:45;4319:7;4308:8;4304:2;4300:17;4282:45;:::i;:::-;4277:2;4270:5;4266:14;4259:69;;;4347:3;4382:28;4406:2;4402;4398:11;4382:28;:::i;:::-;4366:14;;;4359:52;4430:3;4471:11;;;4458:25;4495:16;;;4492:36;;;4524:1;4521;4514:12;4492:36;4560:45;4597:7;4586:8;4582:2;4578:17;4560:45;:::i;:::-;4555:2;4548:5;4544:14;4537:69;;;4625:3;4615:13;;4660:31;4687:2;4683;4679:11;4660:31;:::i;:::-;4644:14;;;4637:55;;;;4648:5;3014:1708;-1:-1:-1;;;;3014:1708:143:o;5090:315::-;5158:6;5166;5219:2;5207:9;5198:7;5194:23;5190:32;5187:52;;;5235:1;5232;5225:12;5187:52;5274:9;5261:23;5293:31;5318:5;5293:31;:::i;:::-;5343:5;5395:2;5380:18;;;;5367:32;;-1:-1:-1;;;5090:315:143:o;6010:289::-;6049:3;6070:17;;;6067:197;;-1:-1:-1;;;6117:1:143;6110:88;6221:4;6218:1;6211:15;6249:4;6246:1;6239:15;6067:197;-1:-1:-1;6291:1:143;6280:13;;6010:289::o;6304:423::-;6346:3;6384:5;6378:12;6411:6;6406:3;6399:19;6436:1;6446:162;6460:6;6457:1;6454:13;6446:162;;;6522:4;6578:13;;;6574:22;;6568:29;6550:11;;;6546:20;;6539:59;6475:12;6446:162;;;6450:3;6653:1;6646:4;6637:6;6632:3;6628:16;6624:27;6617:38;6716:4;6709:2;6705:7;6700:2;6692:6;6688:15;6684:29;6679:3;6675:39;6671:50;6664:57;;;6304:423;;;;:::o;6732:252::-;6819:5;6813:12;6808:3;6801:25;6783:3;6872:4;6865:5;6861:16;6855:23;6910:4;6903;6898:3;6894:14;6887:28;6931:47;6972:4;6967:3;6963:14;6949:12;6931:47;:::i;:::-;6924:54;6732:252;-1:-1:-1;;;;6732:252:143:o;6989:1876::-;7188:2;7177:9;7170:21;7200:53;7249:2;7238:9;7234:18;7225:6;7219:13;-1:-1:-1;;;;;4793:54:143;4781:67;;4727:127;7200:53;7151:4;7300:2;7292:6;7288:15;7282:22;7313:52;7361:2;7350:9;7346:18;7332:12;-1:-1:-1;;;;;4793:54:143;4781:67;;4727:127;7313:52;;7419:2;7411:6;7407:15;7401:22;7396:2;7385:9;7381:18;7374:50;7479:2;7471:6;7467:15;7461:22;7455:3;7444:9;7440:19;7433:51;7539:3;7531:6;7527:16;7521:23;7515:3;7504:9;7500:19;7493:52;7594:3;7586:6;7582:16;7576:23;7608:55;7658:3;7647:9;7643:19;7627:14;-1:-1:-1;;;;;4793:54:143;4781:67;;4727:127;7608:55;-1:-1:-1;7712:3:143;7700:16;;7694:23;-1:-1:-1;;;;;4793:54:143;;7776:3;7761:19;;4781:67;7726:55;7830:3;7822:6;7818:16;7812:23;7854:6;7879:3;7918:2;7913;7902:9;7898:18;7891:30;7944:63;8002:3;7991:9;7987:19;7971:14;7944:63;:::i;:::-;8044:15;;;8038:22;7930:77;;-1:-1:-1;8079:3:143;8091:54;8126:18;;;8038:22;-1:-1:-1;;;;;4793:54:143;4781:67;;4727:127;8091:54;8194:2;8186:6;8182:15;8176:22;8154:44;;;8221:2;8217:7;8243:3;8310:2;8298:9;8290:6;8286:22;8282:31;8277:2;8266:9;8262:18;8255:59;8337:41;8371:6;8355:14;8337:41;:::i;:::-;8323:55;;8427:2;8419:6;8415:15;8409:22;8387:44;;;8450:3;8462:51;8509:2;8498:9;8494:18;8478:14;5480:13;5473:21;5461:34;;5410:91;8462:51;8562:2;8554:6;8550:15;8544:22;8522:44;;;8585:3;8652:2;8640:9;8632:6;8628:22;8624:31;8619:2;8608:9;8604:18;8597:59;8679:41;8713:6;8697:14;8679:41;:::i;:::-;8665:55;;8769:2;8761:6;8757:15;8751:22;8729:44;;;;8782:54;8832:2;8821:9;8817:18;8801:14;-1:-1:-1;;;;;4793:54:143;4781:67;;4727:127;8782:54;-1:-1:-1;8853:6:143;;6989:1876;-1:-1:-1;;;;6989:1876:143:o","linkReferences":{}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","nonce()":"affed0e0","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactory.sol\":\"RegistryFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactory.sol":"RegistryFactory"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":55389,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":77703,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":77713,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"communityToInfo","offset":0,"slot":"2","type":"t_mapping(t_address,t_struct(CommunityInfo)77708_storage)"},{"astId":77715,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"gardensFeeReceiver","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)77708_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryFactory.CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)77708_storage"},"t_struct(CommunityInfo)77708_storage":{"encoding":"inplace","label":"struct RegistryFactory.CommunityInfo","numberOfBytes":"64","members":[{"astId":77705,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"valid","offset":0,"slot":"0","type":"t_bool"},{"astId":77707,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"fee","offset":0,"slot":"1","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactory.sol","id":77929,"exportedSymbols":{"Ownable":[55494],"RegistryCommunity":[77692],"RegistryFactory":[77928]},"nodeType":"SourceUnit","src":"42:3142:131","nodes":[{"id":77694,"nodeType":"PragmaDirective","src":"42:24:131","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":77696,"nodeType":"ImportDirective","src":"68:63:131","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":77929,"sourceUnit":77693,"symbolAliases":[{"foreign":{"id":77695,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"76:17:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77698,"nodeType":"ImportDirective","src":"133:67:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":77929,"sourceUnit":55495,"symbolAliases":[{"foreign":{"id":77697,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55494,"src":"141:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77928,"nodeType":"ContractDefinition","src":"202:2981:131","nodes":[{"id":77703,"nodeType":"VariableDeclaration","src":"244:24:131","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"259:5:131","scope":77928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77701,"name":"uint256","nodeType":"ElementaryTypeName","src":"244:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":77702,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":77708,"nodeType":"StructDefinition","src":"351:69:131","nodes":[],"canonicalName":"RegistryFactory.CommunityInfo","members":[{"constant":false,"id":77705,"mutability":"mutable","name":"valid","nameLocation":"387:5:131","nodeType":"VariableDeclaration","scope":77708,"src":"382:10:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77704,"name":"bool","nodeType":"ElementaryTypeName","src":"382:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":77707,"mutability":"mutable","name":"fee","nameLocation":"410:3:131","nodeType":"VariableDeclaration","scope":77708,"src":"402:11:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77706,"name":"uint256","nodeType":"ElementaryTypeName","src":"402:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"358:13:131","scope":77928,"visibility":"public"},{"id":77713,"nodeType":"VariableDeclaration","src":"426:49:131","nodes":[],"constant":false,"mutability":"mutable","name":"communityToInfo","nameLocation":"460:15:131","scope":77928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo)"},"typeName":{"id":77712,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":77709,"name":"address","nodeType":"ElementaryTypeName","src":"434:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"426:33:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":77711,"nodeType":"UserDefinedTypeName","pathNode":{"id":77710,"name":"CommunityInfo","nameLocations":["445:13:131"],"nodeType":"IdentifierPath","referencedDeclaration":77708,"src":"445:13:131"},"referencedDeclaration":77708,"src":"445:13:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage_ptr","typeString":"struct RegistryFactory.CommunityInfo"}}},"visibility":"internal"},{"id":77715,"nodeType":"VariableDeclaration","src":"515:33:131","nodes":[],"constant":false,"functionSelector":"b8bed901","mutability":"mutable","name":"gardensFeeReceiver","nameLocation":"530:18:131","scope":77928,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77714,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77719,"nodeType":"EventDefinition","src":"721:46:131","nodes":[],"anonymous":false,"eventSelector":"bdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d","name":"FeeReceiverSet","nameLocation":"727:14:131","parameters":{"id":77718,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77717,"indexed":false,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"750:15:131","nodeType":"VariableDeclaration","scope":77719,"src":"742:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77716,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"741:25:131"}},{"id":77725,"nodeType":"EventDefinition","src":"772:66:131","nodes":[],"anonymous":false,"eventSelector":"a1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c","name":"ProtocolFeeSet","nameLocation":"778:14:131","parameters":{"id":77724,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77721,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"801:10:131","nodeType":"VariableDeclaration","scope":77725,"src":"793:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77720,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77723,"indexed":false,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"821:15:131","nodeType":"VariableDeclaration","scope":77725,"src":"813:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77722,"name":"uint256","nodeType":"ElementaryTypeName","src":"813:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:45:131"}},{"id":77729,"nodeType":"EventDefinition","src":"843:51:131","nodes":[],"anonymous":false,"eventSelector":"b4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29","name":"CommunityCreated","nameLocation":"849:16:131","parameters":{"id":77728,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77727,"indexed":false,"mutability":"mutable","name":"_registryCommunity","nameLocation":"874:18:131","nodeType":"VariableDeclaration","scope":77729,"src":"866:26:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77726,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"865:28:131"}},{"id":77735,"nodeType":"EventDefinition","src":"899:62:131","nodes":[],"anonymous":false,"eventSelector":"ecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f62","name":"CommunityValiditySet","nameLocation":"905:20:131","parameters":{"id":77734,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77731,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"934:10:131","nodeType":"VariableDeclaration","scope":77735,"src":"926:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77730,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77733,"indexed":false,"mutability":"mutable","name":"_isValid","nameLocation":"951:8:131","nodeType":"VariableDeclaration","scope":77735,"src":"946:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77732,"name":"bool","nodeType":"ElementaryTypeName","src":"946:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"925:35:131"}},{"id":77739,"nodeType":"ErrorDefinition","src":"1133:43:131","nodes":[],"errorSelector":"f5a6943d","name":"CommunityInvalid","nameLocation":"1139:16:131","parameters":{"id":77738,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77737,"mutability":"mutable","name":"_community","nameLocation":"1164:10:131","nodeType":"VariableDeclaration","scope":77739,"src":"1156:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77736,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1155:20:131"}},{"id":77741,"nodeType":"ErrorDefinition","src":"1181:28:131","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"1187:19:131","parameters":{"id":77740,"nodeType":"ParameterList","parameters":[],"src":"1206:2:131"}},{"id":77757,"nodeType":"FunctionDefinition","src":"1380:133:131","nodes":[],"body":{"id":77756,"nodeType":"Block","src":"1440:73:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77751,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77746,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77743,"src":"1454:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77749,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1474:1:131","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":77748,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1466:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77747,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:131","typeDescriptions":{}}},"id":77750,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1466:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1454:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77755,"nodeType":"IfStatement","src":"1450:56:131","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77752,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77741,"src":"1485:19:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1485:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77754,"nodeType":"RevertStatement","src":"1478:28:131"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"1389:18:131","parameters":{"id":77744,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77743,"mutability":"mutable","name":"_address","nameLocation":"1416:8:131","nodeType":"VariableDeclaration","scope":77757,"src":"1408:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77742,"name":"address","nodeType":"ElementaryTypeName","src":"1408:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1407:18:131"},"returnParameters":{"id":77745,"nodeType":"ParameterList","parameters":[],"src":"1440:0:131"},"scope":77928,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":77818,"nodeType":"FunctionDefinition","src":"1519:518:131","nodes":[],"body":{"id":77817,"nodeType":"Block","src":"1662:375:131","nodes":[],"statements":[{"assignments":[77767],"declarations":[{"constant":false,"id":77767,"mutability":"mutable","name":"registryCommunity","nameLocation":"1690:17:131","nodeType":"VariableDeclaration","scope":77817,"src":"1672:35:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"},"typeName":{"id":77766,"nodeType":"UserDefinedTypeName","pathNode":{"id":77765,"name":"RegistryCommunity","nameLocations":["1672:17:131"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"1672:17:131"},"referencedDeclaration":77692,"src":"1672:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"visibility":"internal"}],"id":77772,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":77770,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1710:21:131","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegistryCommunity_$77692_$","typeString":"function () returns (contract RegistryCommunity)"},"typeName":{"id":77769,"nodeType":"UserDefinedTypeName","pathNode":{"id":77768,"name":"RegistryCommunity","nameLocations":["1714:17:131"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"1714:17:131"},"referencedDeclaration":77692,"src":"1714:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}},"id":77771,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:23:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"VariableDeclarationStatement","src":"1672:61:131"},{"expression":{"id":77778,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77773,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77760,"src":"1743:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":77775,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1750:6:131","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"1743:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77777,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1759:7:131","subExpression":{"id":77776,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77703,"src":"1759:5:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1743:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77779,"nodeType":"ExpressionStatement","src":"1743:23:131"},{"expression":{"id":77787,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":77780,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77760,"src":"1776:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":77782,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1783:16:131","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76109,"src":"1776:23:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":77785,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1810:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryFactory_$77928","typeString":"contract RegistryFactory"}],"id":77784,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1802:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77783,"name":"address","nodeType":"ElementaryTypeName","src":"1802:7:131","typeDescriptions":{}}},"id":77786,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1776:39:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77788,"nodeType":"ExpressionStatement","src":"1776:39:131"},{"expression":{"arguments":[{"id":77792,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77760,"src":"1855:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}],"expression":{"id":77789,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77767,"src":"1826:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":77791,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1844:10:131","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76430,"src":"1826:28:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_InitializeParams_$76125_memory_ptr_$returns$__$","typeString":"function (struct RegistryCommunity.InitializeParams memory) external"}},"id":77793,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:36:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77794,"nodeType":"ExpressionStatement","src":"1826:36:131"},{"expression":{"id":77803,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77795,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"1872:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":77800,"indexExpression":{"arguments":[{"id":77798,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77767,"src":"1896:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77797,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1888:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77796,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:131","typeDescriptions":{}}},"id":77799,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1872:43:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":77801,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1916:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77705,"src":"1872:49:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":77802,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1924:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1872:56:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77804,"nodeType":"ExpressionStatement","src":"1872:56:131"},{"eventCall":{"arguments":[{"arguments":[{"id":77808,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77767,"src":"1968:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77807,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77806,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:131","typeDescriptions":{}}},"id":77809,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77805,"name":"CommunityCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77729,"src":"1943:16:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77810,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1943:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77811,"nodeType":"EmitStatement","src":"1938:49:131"},{"expression":{"arguments":[{"id":77814,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77767,"src":"2012:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":77813,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2004:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77812,"name":"address","nodeType":"ElementaryTypeName","src":"2004:7:131","typeDescriptions":{}}},"id":77815,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2004:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":77764,"id":77816,"nodeType":"Return","src":"1997:33:131"}]},"functionSelector":"8a16135f","implemented":true,"kind":"function","modifiers":[],"name":"createRegistry","nameLocation":"1528:14:131","parameters":{"id":77761,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77760,"mutability":"mutable","name":"params","nameLocation":"1585:6:131","nodeType":"VariableDeclaration","scope":77818,"src":"1543:48:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":77759,"nodeType":"UserDefinedTypeName","pathNode":{"id":77758,"name":"RegistryCommunity.InitializeParams","nameLocations":["1543:17:131","1561:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":76125,"src":"1543:34:131"},"referencedDeclaration":76125,"src":"1543:34:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"1542:50:131"},"returnParameters":{"id":77764,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77763,"mutability":"mutable","name":"_createdRegistryAddress","nameLocation":"1633:23:131","nodeType":"VariableDeclaration","scope":77818,"src":"1625:31:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77762,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1624:33:131"},"scope":77928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77838,"nodeType":"FunctionDefinition","src":"2043:214:131","nodes":[],"body":{"id":77837,"nodeType":"Block","src":"2113:144:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":77826,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77820,"src":"2142:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77825,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77757,"src":"2123:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77827,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:35:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77828,"nodeType":"ExpressionStatement","src":"2123:35:131"},{"expression":{"id":77831,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":77829,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77715,"src":"2168:18:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77830,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77820,"src":"2189:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2168:36:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":77832,"nodeType":"ExpressionStatement","src":"2168:36:131"},{"eventCall":{"arguments":[{"id":77834,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77820,"src":"2234:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77833,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77719,"src":"2219:14:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":77835,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:31:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77836,"nodeType":"EmitStatement","src":"2214:36:131"}]},"functionSelector":"8279c7db","implemented":true,"kind":"function","modifiers":[{"id":77823,"kind":"modifierInvocation","modifierName":{"id":77822,"name":"onlyOwner","nameLocations":["2103:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"2103:9:131"},"nodeType":"ModifierInvocation","src":"2103:9:131"}],"name":"setReceiverAddress","nameLocation":"2052:18:131","parameters":{"id":77821,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77820,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"2079:15:131","nodeType":"VariableDeclaration","scope":77838,"src":"2071:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77819,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2070:25:131"},"returnParameters":{"id":77824,"nodeType":"ParameterList","parameters":[],"src":"2113:0:131"},"scope":77928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77846,"nodeType":"FunctionDefinition","src":"2263:107:131","nodes":[],"body":{"id":77845,"nodeType":"Block","src":"2328:42:131","nodes":[],"statements":[{"expression":{"id":77843,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77715,"src":"2345:18:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":77842,"id":77844,"nodeType":"Return","src":"2338:25:131"}]},"functionSelector":"987435be","implemented":true,"kind":"function","modifiers":[],"name":"getGardensFeeReceiver","nameLocation":"2272:21:131","parameters":{"id":77839,"nodeType":"ParameterList","parameters":[],"src":"2293:2:131"},"returnParameters":{"id":77842,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77841,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77846,"src":"2319:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77840,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:9:131"},"scope":77928,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77868,"nodeType":"FunctionDefinition","src":"2376:210:131","nodes":[],"body":{"id":77867,"nodeType":"Block","src":"2462:124:131","nodes":[],"statements":[{"expression":{"id":77860,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77855,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"2472:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":77857,"indexExpression":{"id":77856,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77848,"src":"2488:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2472:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":77858,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2500:3:131","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":77707,"src":"2472:31:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77859,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77850,"src":"2506:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2472:49:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":77861,"nodeType":"ExpressionStatement","src":"2472:49:131"},{"eventCall":{"arguments":[{"id":77863,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77848,"src":"2551:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77864,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77850,"src":"2563:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":77862,"name":"ProtocolFeeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77725,"src":"2536:14:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":77865,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77866,"nodeType":"EmitStatement","src":"2531:48:131"}]},"functionSelector":"b5b3ca2c","implemented":true,"kind":"function","modifiers":[{"id":77853,"kind":"modifierInvocation","modifierName":{"id":77852,"name":"onlyOwner","nameLocations":["2452:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"2452:9:131"},"nodeType":"ModifierInvocation","src":"2452:9:131"}],"name":"setProtocolFee","nameLocation":"2385:14:131","parameters":{"id":77851,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77848,"mutability":"mutable","name":"_community","nameLocation":"2408:10:131","nodeType":"VariableDeclaration","scope":77868,"src":"2400:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77847,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77850,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"2428:15:131","nodeType":"VariableDeclaration","scope":77868,"src":"2420:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77849,"name":"uint256","nodeType":"ElementaryTypeName","src":"2420:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2399:45:131"},"returnParameters":{"id":77854,"nodeType":"ParameterList","parameters":[],"src":"2462:0:131"},"scope":77928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77890,"nodeType":"FunctionDefinition","src":"2592:200:131","nodes":[],"body":{"id":77889,"nodeType":"Block","src":"2674:118:131","nodes":[],"statements":[{"expression":{"id":77882,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":77877,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"2684:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":77879,"indexExpression":{"id":77878,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77870,"src":"2700:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":77880,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2712:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77705,"src":"2684:33:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":77881,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77872,"src":"2720:8:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2684:44:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77883,"nodeType":"ExpressionStatement","src":"2684:44:131"},{"eventCall":{"arguments":[{"id":77885,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77870,"src":"2764:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":77886,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77872,"src":"2776:8:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":77884,"name":"CommunityValiditySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77735,"src":"2743:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":77887,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77888,"nodeType":"EmitStatement","src":"2738:47:131"}]},"functionSelector":"5a2c8ace","implemented":true,"kind":"function","modifiers":[{"id":77875,"kind":"modifierInvocation","modifierName":{"id":77874,"name":"onlyOwner","nameLocations":["2664:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"2664:9:131"},"nodeType":"ModifierInvocation","src":"2664:9:131"}],"name":"setCommunityValidity","nameLocation":"2601:20:131","parameters":{"id":77873,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77870,"mutability":"mutable","name":"_community","nameLocation":"2630:10:131","nodeType":"VariableDeclaration","scope":77890,"src":"2622:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77869,"name":"address","nodeType":"ElementaryTypeName","src":"2622:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77872,"mutability":"mutable","name":"_isValid","nameLocation":"2647:8:131","nodeType":"VariableDeclaration","scope":77890,"src":"2642:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77871,"name":"bool","nodeType":"ElementaryTypeName","src":"2642:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2621:35:131"},"returnParameters":{"id":77876,"nodeType":"ParameterList","parameters":[],"src":"2674:0:131"},"scope":77928,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":77903,"nodeType":"FunctionDefinition","src":"2798:136:131","nodes":[],"body":{"id":77902,"nodeType":"Block","src":"2877:57:131","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":77897,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"2894:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":77899,"indexExpression":{"id":77898,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77892,"src":"2910:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2894:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":77900,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2922:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77705,"src":"2894:33:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":77896,"id":77901,"nodeType":"Return","src":"2887:40:131"}]},"functionSelector":"f5016b5e","implemented":true,"kind":"function","modifiers":[],"name":"getCommunityValidity","nameLocation":"2807:20:131","parameters":{"id":77893,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77892,"mutability":"mutable","name":"_community","nameLocation":"2836:10:131","nodeType":"VariableDeclaration","scope":77903,"src":"2828:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77891,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2827:20:131"},"returnParameters":{"id":77896,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77895,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77903,"src":"2871:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77894,"name":"bool","nodeType":"ElementaryTypeName","src":"2871:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2870:6:131"},"scope":77928,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":77927,"nodeType":"FunctionDefinition","src":"2940:241:131","nodes":[],"body":{"id":77926,"nodeType":"Block","src":"3016:165:131","nodes":[],"statements":[{"condition":{"id":77914,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3030:34:131","subExpression":{"expression":{"baseExpression":{"id":77910,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"3031:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":77912,"indexExpression":{"id":77911,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"3047:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3031:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":77913,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3059:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77705,"src":"3031:33:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77920,"nodeType":"IfStatement","src":"3026:100:131","trueBody":{"id":77919,"nodeType":"Block","src":"3066:60:131","statements":[{"errorCall":{"arguments":[{"id":77916,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"3104:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":77915,"name":"CommunityInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77739,"src":"3087:16:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":77917,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77918,"nodeType":"RevertStatement","src":"3080:35:131"}]}},{"expression":{"expression":{"baseExpression":{"id":77921,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77713,"src":"3143:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77708_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":77923,"indexExpression":{"id":77922,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77905,"src":"3159:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3143:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77708_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":77924,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3171:3:131","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":77707,"src":"3143:31:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":77909,"id":77925,"nodeType":"Return","src":"3136:38:131"}]},"functionSelector":"0a992e0c","implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"2949:14:131","parameters":{"id":77906,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77905,"mutability":"mutable","name":"_community","nameLocation":"2972:10:131","nodeType":"VariableDeclaration","scope":77927,"src":"2964:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77904,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2963:20:131"},"returnParameters":{"id":77909,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77908,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":77927,"src":"3007:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77907,"name":"uint256","nodeType":"ElementaryTypeName","src":"3007:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3006:9:131"},"scope":77928,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":77699,"name":"Ownable","nameLocations":["230:7:131"],"nodeType":"IdentifierPath","referencedDeclaration":55494,"src":"230:7:131"},"id":77700,"nodeType":"InheritanceSpecifier","src":"230:7:131"}],"canonicalName":"RegistryFactory","contractDependencies":[77692],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[77928,55494,57742],"name":"RegistryFactory","nameLocation":"211:15:131","scope":77929,"usedErrors":[77739,77741]}],"license":"AGPL-3.0-only"},"id":131} \ No newline at end of file +{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x6080604052600060015534801561001557600080fd5b5061001f33610024565b610074565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b61531e806100836000396000f3fe608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106a3565b6101fa565b6040519081526020015b60405180910390f35b61011261010d3660046106d7565b61027b565b005b6101126102e7565b61011261012a3660046106a3565b6102fb565b61014261013d366004610848565b61036d565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b61011261019336600461099e565b61048e565b600354610142906001600160a01b031681565b6101126101b93660046106a3565b6104ea565b6101ea6101cc3660046106a3565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081205460ff1661025c576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090206001015490565b61028361057a565b6001600160a01b038216600081815260026020908152604091829020805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102ef61057a565b6102f960006105d4565b565b61030361057a565b61030c81610631565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161037c90610671565b604051809103906000f080158015610398573d6000803e3d6000fd5b506001805491925060006103ab836109ca565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906103ff908690600401610a5e565b600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050506001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b61049661057a565b6001600160a01b038216600081815260026020908152604091829020600101849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102db565b6104f261057a565b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610253565b610577816105d4565b50565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610253565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610b9e83390190565b6001600160a01b038116811461057757600080fd5b803561069e8161067e565b919050565b6000602082840312156106b557600080fd5b81356106c08161067e565b9392505050565b8035801515811461069e57600080fd5b600080604083850312156106ea57600080fd5b82356106f58161067e565b9150610703602084016106c7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156107465761074661070c565b60405290565b600082601f83011261075d57600080fd5b813567ffffffffffffffff808211156107785761077861070c565b604051601f8301601f19908116603f011681019082821181831017156107a0576107a061070c565b816040528381528660208588010111156107b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107eb57600080fd5b6040516040810167ffffffffffffffff828210818311171561080f5761080f61070c565b8160405282935084358352602085013591508082111561082e57600080fd5b5061083b8582860161074c565b6020830152505092915050565b60006020828403121561085a57600080fd5b813567ffffffffffffffff8082111561087257600080fd5b908301906101a0828603121561088757600080fd5b61088f610722565b61089883610693565b81526108a660208401610693565b60208201526040830135604082015260608301356060820152608083013560808201526108d560a08401610693565b60a08201526108e660c08401610693565b60c082015260e0830135828111156108fd57600080fd5b610909878286016107d9565b60e08301525061010061091d818501610693565b90820152610120838101358381111561093557600080fd5b6109418882870161074c565b8284015250506101406109558185016106c7565b90820152610160838101358381111561096d57600080fd5b6109798882870161074c565b828401525050610180915061098f828401610693565b91810191909152949350505050565b600080604083850312156109b157600080fd5b82356109bc8161067e565b946020939093013593505050565b6000600182016109ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a17576020818501810151868301820152016109fb565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5660408501826109f1565b949350505050565b60208152610a786020820183516001600160a01b03169052565b60006020830151610a9460408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610acd60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b016101c0860184610a37565b90860151909250610120610b1f868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b3f85846109f1565b945080880151925050610160610b588188018415159052565b80880151925050610180818786030181880152610b7585846109f1565b94508088015192505050610b93828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212203c4ff9afac5dd82a85680e0f646b9a25ff724a8be36ccb90c81d1dcad98c794864736f6c63430008130033a264697066735822122061eb81949665e94b9970e702ad63e2c3947444ef338000346a7272434394394864736f6c63430008130033","sourceMap":"202:2981:131:-:0;;;267:1;244:24;;202:2981;;;;;;;;;-1:-1:-1;936:32:60;719:10:80;936:18:60;:32::i;:::-;202:2981:131;;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;;;;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;202:2981:131:-;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106100d45760003560e01c8063987435be11610081578063b8bed9011161005b578063b8bed90114610198578063f2fde38b146101ab578063f5016b5e146101be57600080fd5b8063987435be1461016b578063affed0e01461017c578063b5b3ca2c1461018557600080fd5b80638279c7db116100b25780638279c7db1461011c5780638a16135f1461012f5780638da5cb5b1461015a57600080fd5b80630a992e0c146100d95780635a2c8ace146100ff578063715018a614610114575b600080fd5b6100ec6100e73660046106a3565b6101fa565b6040519081526020015b60405180910390f35b61011261010d3660046106d7565b61027b565b005b6101126102e7565b61011261012a3660046106a3565b6102fb565b61014261013d366004610848565b61036d565b6040516001600160a01b0390911681526020016100f6565b6000546001600160a01b0316610142565b6003546001600160a01b0316610142565b6100ec60015481565b61011261019336600461099e565b61048e565b600354610142906001600160a01b031681565b6101126101b93660046106a3565b6104ea565b6101ea6101cc3660046106a3565b6001600160a01b031660009081526002602052604090205460ff1690565b60405190151581526020016100f6565b6001600160a01b03811660009081526002602052604081205460ff1661025c576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526002602052604090206001015490565b61028361057a565b6001600160a01b038216600081815260026020908152604091829020805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6102ef61057a565b6102f960006105d4565b565b61030361057a565b61030c81610631565b6003805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b60008060405161037c90610671565b604051809103906000f080158015610398573d6000803e3d6000fd5b506001805491925060006103ab836109ca565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906103ff908690600401610a5e565b600060405180830381600087803b15801561041957600080fd5b505af115801561042d573d6000803e3d6000fd5b505050506001600160a01b038116600081815260026020908152604091829020805460ff1916600117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b61049661057a565b6001600160a01b038216600081815260026020908152604091829020600101849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016102db565b6104f261057a565b6001600160a01b03811661056e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610253565b610577816105d4565b50565b6000546001600160a01b031633146102f95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610253565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116610577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61474b80610b9e83390190565b6001600160a01b038116811461057757600080fd5b803561069e8161067e565b919050565b6000602082840312156106b557600080fd5b81356106c08161067e565b9392505050565b8035801515811461069e57600080fd5b600080604083850312156106ea57600080fd5b82356106f58161067e565b9150610703602084016106c7565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156107465761074661070c565b60405290565b600082601f83011261075d57600080fd5b813567ffffffffffffffff808211156107785761077861070c565b604051601f8301601f19908116603f011681019082821181831017156107a0576107a061070c565b816040528381528660208588010111156107b957600080fd5b836020870160208301376000602085830101528094505050505092915050565b6000604082840312156107eb57600080fd5b6040516040810167ffffffffffffffff828210818311171561080f5761080f61070c565b8160405282935084358352602085013591508082111561082e57600080fd5b5061083b8582860161074c565b6020830152505092915050565b60006020828403121561085a57600080fd5b813567ffffffffffffffff8082111561087257600080fd5b908301906101a0828603121561088757600080fd5b61088f610722565b61089883610693565b81526108a660208401610693565b60208201526040830135604082015260608301356060820152608083013560808201526108d560a08401610693565b60a08201526108e660c08401610693565b60c082015260e0830135828111156108fd57600080fd5b610909878286016107d9565b60e08301525061010061091d818501610693565b90820152610120838101358381111561093557600080fd5b6109418882870161074c565b8284015250506101406109558185016106c7565b90820152610160838101358381111561096d57600080fd5b6109798882870161074c565b828401525050610180915061098f828401610693565b91810191909152949350505050565b600080604083850312156109b157600080fd5b82356109bc8161067e565b946020939093013593505050565b6000600182016109ea57634e487b7160e01b600052601160045260246000fd5b5060010190565b6000815180845260005b81811015610a17576020818501810151868301820152016109fb565b506000602082860101526020601f19601f83011685010191505092915050565b805182526000602082015160406020850152610a5660408501826109f1565b949350505050565b60208152610a786020820183516001600160a01b03169052565b60006020830151610a9460408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a0830151610acd60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152610b016101c0860184610a37565b90860151909250610120610b1f868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152610b3f85846109f1565b945080880151925050610160610b588188018415159052565b80880151925050610180818786030181880152610b7585846109f1565b94508088015192505050610b93828601826001600160a01b03169052565b509094935050505056fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212203c4ff9afac5dd82a85680e0f646b9a25ff724a8be36ccb90c81d1dcad98c794864736f6c63430008130033a264697066735822122061eb81949665e94b9970e702ad63e2c3947444ef338000346a7272434394394864736f6c63430008130033","sourceMap":"202:2981:131:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2940:241;;;;;;:::i;:::-;;:::i;:::-;;;710:25:145;;;698:2;683:18;2940:241:131;;;;;;;;2592:200;;;;;;:::i;:::-;;:::i;:::-;;1824:101:60;;;:::i;2043:214:131:-;;;;;;:::i;:::-;;:::i;1519:518::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5023:55:145;;;5005:74;;4993:2;4978:18;1519:518:131;4859:226:145;1201:85:60;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;1201:85;;2263:107:131;2345:18;;-1:-1:-1;;;;;2345:18:131;2263:107;;244:24;;;;;;2376:210;;;;;;:::i;:::-;;:::i;515:33::-;;;;;-1:-1:-1;;;;;515:33:131;;;2074:198:60;;;;;;:::i;:::-;;:::i;2798:136:131:-;;;;;;:::i;:::-;-1:-1:-1;;;;;2894:27:131;2871:4;2894:27;;;:15;:27;;;;;:33;;;;2798:136;;;;5671:14:145;;5664:22;5646:41;;5634:2;5619:18;2798:136:131;5506:187:145;2940:241:131;-1:-1:-1;;;;;3031:27:131;;3007:7;3031:27;;;:15;:27;;;;;:33;;;3026:100;;3087:28;;;;;-1:-1:-1;;;;;5023:55:145;;3087:28:131;;;5005:74:145;4978:18;;3087:28:131;;;;;;;;3026:100;-1:-1:-1;;;;;;3143:27:131;;;;;:15;:27;;;;;:31;;;;2940:241::o;2592:200::-;1094:13:60;:11;:13::i;:::-;-1:-1:-1;;;;;2684:27:131;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:44;;-1:-1:-1;;2684:44:131::1;::::0;::::1;;::::0;;::::1;::::0;;;2743:42;;5866:74:145;;;5956:18;;;5949:50;2743:42:131::1;::::0;5839:18:145;2743:42:131::1;;;;;;;;2592:200:::0;;:::o;1824:101:60:-;1094:13;:11;:13::i;:::-;1888:30:::1;1915:1;1888:18;:30::i;:::-;1824:101::o:0;2043:214:131:-;1094:13:60;:11;:13::i;:::-;2123:35:131::1;2142:15;2123:18;:35::i;:::-;2168:18;:36:::0;;-1:-1:-1;;2168:36:131::1;-1:-1:-1::0;;;;;2168:36:131;::::1;::::0;;::::1;::::0;;;2219:31:::1;::::0;5005:74:145;;;2219:31:131::1;::::0;4993:2:145;4978:18;2219:31:131::1;;;;;;;2043:214:::0;:::o;1519:518::-;1625:31;1672:35;1710:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1759:5:131;:7;;1672:61;;-1:-1:-1;1759:5:131;:7;;;:::i;:::-;;;;-1:-1:-1;1743:13:131;;;:23;1810:4;1776:23;;;:39;1826:36;;;;;-1:-1:-1;;;;;1826:28:131;;;;;:36;;1743:6;;1826:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;1872:43:131;;;;;;:15;:43;;;;;;;;;:56;;-1:-1:-1;;1872:56:131;1924:4;1872:56;;;1943:44;;5005:74:145;;;1943:44:131;;4978:18:145;1943:44:131;;;;;;;2012:17;1519:518;-1:-1:-1;;1519:518:131:o;2376:210::-;1094:13:60;:11;:13::i;:::-;-1:-1:-1;;;;;2472:27:131;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:31:::1;;:49:::0;;;2536:43;;9044:74:145;;;9134:18;;9127:34;;;2536:43:131::1;::::0;9017:18:145;2536:43:131::1;8870:297:145::0;2074:198:60;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2162:22:60;::::1;2154:73;;;::::0;-1:-1:-1;;;2154:73:60;;9374:2:145;2154:73:60::1;::::0;::::1;9356:21:145::0;9413:2;9393:18;;;9386:30;9452:34;9432:18;;;9425:62;9523:8;9503:18;;;9496:36;9549:19;;2154:73:60::1;9172:402:145::0;2154:73:60::1;2237:28;2256:8;2237:18;:28::i;:::-;2074:198:::0;:::o;1359:130::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:60;719:10:80;1422:23:60;1414:68;;;;-1:-1:-1;;;1414:68:60;;9781:2:145;1414:68:60;;;9763:21:145;;;9800:18;;;9793:30;9859:34;9839:18;;;9832:62;9911:18;;1414:68:60;9579:356:145;2426:187:60;2499:16;2518:6;;-1:-1:-1;;;;;2534:17:60;;;-1:-1:-1;;2534:17:60;;;;;;2566:40;;2518:6;;;;;;;2566:40;;2499:16;2566:40;2489:124;2426:187;:::o;1380:133:131:-;-1:-1:-1;;;;;1454:22:131;;1450:56;;1485:21;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;:::o;14:154:145:-;-1:-1:-1;;;;;93:5:145;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;:::-;548:5;312:247;-1:-1:-1;;;312:247:145:o;746:160::-;811:20;;867:13;;860:21;850:32;;840:60;;896:1;893;886:12;911:315;976:6;984;1037:2;1025:9;1016:7;1012:23;1008:32;1005:52;;;1053:1;1050;1043:12;1005:52;1092:9;1079:23;1111:31;1136:5;1111:31;:::i;:::-;1161:5;-1:-1:-1;1185:35:145;1216:2;1201:18;;1185:35;:::i;:::-;1175:45;;911:315;;;;;:::o;1231:184::-;-1:-1:-1;;;1280:1:145;1273:88;1380:4;1377:1;1370:15;1404:4;1401:1;1394:15;1420:250;1487:2;1481:9;1529:6;1517:19;;1566:18;1551:34;;1587:22;;;1548:62;1545:88;;;1613:18;;:::i;:::-;1649:2;1642:22;1420:250;:::o;1675:719::-;1718:5;1771:3;1764:4;1756:6;1752:17;1748:27;1738:55;;1789:1;1786;1779:12;1738:55;1825:6;1812:20;1851:18;1888:2;1884;1881:10;1878:36;;;1894:18;;:::i;:::-;1969:2;1963:9;1937:2;2023:13;;-1:-1:-1;;2019:22:145;;;2043:2;2015:31;2011:40;1999:53;;;2067:18;;;2087:22;;;2064:46;2061:72;;;2113:18;;:::i;:::-;2153:10;2149:2;2142:22;2188:2;2180:6;2173:18;2234:3;2227:4;2222:2;2214:6;2210:15;2206:26;2203:35;2200:55;;;2251:1;2248;2241:12;2200:55;2315:2;2308:4;2300:6;2296:17;2289:4;2281:6;2277:17;2264:54;2362:1;2355:4;2350:2;2342:6;2338:15;2334:26;2327:37;2382:6;2373:15;;;;;;1675:719;;;;:::o;2399:610::-;2454:5;2502:4;2490:9;2485:3;2481:19;2477:30;2474:50;;;2520:1;2517;2510:12;2474:50;2553:4;2547:11;2597:4;2589:6;2585:17;2621:18;2689:6;2677:10;2674:22;2669:2;2657:10;2654:18;2651:46;2648:72;;;2700:18;;:::i;:::-;2742:10;2736:4;2729:24;2771:6;2762:15;;2814:9;2801:23;2793:6;2786:39;2876:2;2865:9;2861:18;2848:32;2834:46;;2903:2;2895:6;2892:14;2889:34;;;2919:1;2916;2909:12;2889:34;;2956:46;2998:3;2989:6;2978:9;2974:22;2956:46;:::i;:::-;2951:2;2943:6;2939:15;2932:71;;;2399:610;;;;:::o;3014:1708::-;3108:6;3161:2;3149:9;3140:7;3136:23;3132:32;3129:52;;;3177:1;3174;3167:12;3129:52;3217:9;3204:23;3246:18;3287:2;3279:6;3276:14;3273:34;;;3303:1;3300;3293:12;3273:34;3326:22;;;;3382:6;3364:16;;;3360:29;3357:49;;;3402:1;3399;3392:12;3357:49;3428:17;;:::i;:::-;3468:22;3487:2;3468:22;:::i;:::-;3461:5;3454:37;3523:31;3550:2;3546;3542:11;3523:31;:::i;:::-;3518:2;3511:5;3507:14;3500:55;3608:2;3604;3600:11;3587:25;3582:2;3575:5;3571:14;3564:49;3666:2;3662;3658:11;3645:25;3640:2;3633:5;3629:14;3622:49;3725:3;3721:2;3717:12;3704:26;3698:3;3691:5;3687:15;3680:51;3764:32;3791:3;3787:2;3783:12;3764:32;:::i;:::-;3758:3;3751:5;3747:15;3740:57;3830:32;3857:3;3853:2;3849:12;3830:32;:::i;:::-;3824:3;3817:5;3813:15;3806:57;3909:3;3905:2;3901:12;3888:26;3939:2;3929:8;3926:16;3923:36;;;3955:1;3952;3945:12;3923:36;3992:54;4038:7;4027:8;4023:2;4019:17;3992:54;:::i;:::-;3986:3;3979:5;3975:15;3968:79;;4066:3;4101:31;4128:2;4124;4120:11;4101:31;:::i;:::-;4085:14;;;4078:55;4152:3;4193:11;;;4180:25;4217:16;;;4214:36;;;4246:1;4243;4236:12;4214:36;4282:45;4319:7;4308:8;4304:2;4300:17;4282:45;:::i;:::-;4277:2;4270:5;4266:14;4259:69;;;4347:3;4382:28;4406:2;4402;4398:11;4382:28;:::i;:::-;4366:14;;;4359:52;4430:3;4471:11;;;4458:25;4495:16;;;4492:36;;;4524:1;4521;4514:12;4492:36;4560:45;4597:7;4586:8;4582:2;4578:17;4560:45;:::i;:::-;4555:2;4548:5;4544:14;4537:69;;;4625:3;4615:13;;4660:31;4687:2;4683;4679:11;4660:31;:::i;:::-;4644:14;;;4637:55;;;;4648:5;3014:1708;-1:-1:-1;;;;3014:1708:145:o;5090:315::-;5158:6;5166;5219:2;5207:9;5198:7;5194:23;5190:32;5187:52;;;5235:1;5232;5225:12;5187:52;5274:9;5261:23;5293:31;5318:5;5293:31;:::i;:::-;5343:5;5395:2;5380:18;;;;5367:32;;-1:-1:-1;;;5090:315:145:o;6010:289::-;6049:3;6070:17;;;6067:197;;-1:-1:-1;;;6117:1:145;6110:88;6221:4;6218:1;6211:15;6249:4;6246:1;6239:15;6067:197;-1:-1:-1;6291:1:145;6280:13;;6010:289::o;6304:423::-;6346:3;6384:5;6378:12;6411:6;6406:3;6399:19;6436:1;6446:162;6460:6;6457:1;6454:13;6446:162;;;6522:4;6578:13;;;6574:22;;6568:29;6550:11;;;6546:20;;6539:59;6475:12;6446:162;;;6450:3;6653:1;6646:4;6637:6;6632:3;6628:16;6624:27;6617:38;6716:4;6709:2;6705:7;6700:2;6692:6;6688:15;6684:29;6679:3;6675:39;6671:50;6664:57;;;6304:423;;;;:::o;6732:252::-;6819:5;6813:12;6808:3;6801:25;6783:3;6872:4;6865:5;6861:16;6855:23;6910:4;6903;6898:3;6894:14;6887:28;6931:47;6972:4;6967:3;6963:14;6949:12;6931:47;:::i;:::-;6924:54;6732:252;-1:-1:-1;;;;6732:252:145:o;6989:1876::-;7188:2;7177:9;7170:21;7200:53;7249:2;7238:9;7234:18;7225:6;7219:13;-1:-1:-1;;;;;4793:54:145;4781:67;;4727:127;7200:53;7151:4;7300:2;7292:6;7288:15;7282:22;7313:52;7361:2;7350:9;7346:18;7332:12;-1:-1:-1;;;;;4793:54:145;4781:67;;4727:127;7313:52;;7419:2;7411:6;7407:15;7401:22;7396:2;7385:9;7381:18;7374:50;7479:2;7471:6;7467:15;7461:22;7455:3;7444:9;7440:19;7433:51;7539:3;7531:6;7527:16;7521:23;7515:3;7504:9;7500:19;7493:52;7594:3;7586:6;7582:16;7576:23;7608:55;7658:3;7647:9;7643:19;7627:14;-1:-1:-1;;;;;4793:54:145;4781:67;;4727:127;7608:55;-1:-1:-1;7712:3:145;7700:16;;7694:23;-1:-1:-1;;;;;4793:54:145;;7776:3;7761:19;;4781:67;7726:55;7830:3;7822:6;7818:16;7812:23;7854:6;7879:3;7918:2;7913;7902:9;7898:18;7891:30;7944:63;8002:3;7991:9;7987:19;7971:14;7944:63;:::i;:::-;8044:15;;;8038:22;7930:77;;-1:-1:-1;8079:3:145;8091:54;8126:18;;;8038:22;-1:-1:-1;;;;;4793:54:145;4781:67;;4727:127;8091:54;8194:2;8186:6;8182:15;8176:22;8154:44;;;8221:2;8217:7;8243:3;8310:2;8298:9;8290:6;8286:22;8282:31;8277:2;8266:9;8262:18;8255:59;8337:41;8371:6;8355:14;8337:41;:::i;:::-;8323:55;;8427:2;8419:6;8415:15;8409:22;8387:44;;;8450:3;8462:51;8509:2;8498:9;8494:18;8478:14;5480:13;5473:21;5461:34;;5410:91;8462:51;8562:2;8554:6;8550:15;8544:22;8522:44;;;8585:3;8652:2;8640:9;8632:6;8628:22;8624:31;8619:2;8608:9;8604:18;8597:59;8679:41;8713:6;8697:14;8679:41;:::i;:::-;8665:55;;8769:2;8761:6;8757:15;8751:22;8729:44;;;;8782:54;8832:2;8821:9;8817:18;8801:14;-1:-1:-1;;;;;4793:54:145;4781:67;;4727:127;8782:54;-1:-1:-1;8853:6:145;;6989:1876;-1:-1:-1;;;;6989:1876:145:o","linkReferences":{}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","nonce()":"affed0e0","owner()":"8da5cb5b","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactory.sol\":\"RegistryFactory\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactory.sol":"RegistryFactory"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":55389,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"_owner","offset":0,"slot":"0","type":"t_address"},{"astId":79629,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"nonce","offset":0,"slot":"1","type":"t_uint256"},{"astId":79639,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"communityToInfo","offset":0,"slot":"2","type":"t_mapping(t_address,t_struct(CommunityInfo)79634_storage)"},{"astId":79641,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"gardensFeeReceiver","offset":0,"slot":"3","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)79634_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct RegistryFactory.CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)79634_storage"},"t_struct(CommunityInfo)79634_storage":{"encoding":"inplace","label":"struct RegistryFactory.CommunityInfo","numberOfBytes":"64","members":[{"astId":79631,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"valid","offset":0,"slot":"0","type":"t_bool"},{"astId":79633,"contract":"pkg/contracts/src/RegistryFactory.sol:RegistryFactory","label":"fee","offset":0,"slot":"1","type":"t_uint256"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactory.sol","id":79855,"exportedSymbols":{"Ownable":[55494],"RegistryCommunity":[77675],"RegistryFactory":[79854]},"nodeType":"SourceUnit","src":"42:3142:131","nodes":[{"id":79620,"nodeType":"PragmaDirective","src":"42:24:131","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":79622,"nodeType":"ImportDirective","src":"68:63:131","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":79855,"sourceUnit":77676,"symbolAliases":[{"foreign":{"id":79621,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"76:17:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79624,"nodeType":"ImportDirective","src":"133:67:131","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/access/Ownable.sol","file":"@openzeppelin/contracts/access/Ownable.sol","nameLocation":"-1:-1:-1","scope":79855,"sourceUnit":55495,"symbolAliases":[{"foreign":{"id":79623,"name":"Ownable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55494,"src":"141:7:131","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79854,"nodeType":"ContractDefinition","src":"202:2981:131","nodes":[{"id":79629,"nodeType":"VariableDeclaration","src":"244:24:131","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"259:5:131","scope":79854,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79627,"name":"uint256","nodeType":"ElementaryTypeName","src":"244:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"value":{"hexValue":"30","id":79628,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"267:1:131","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"visibility":"public"},{"id":79634,"nodeType":"StructDefinition","src":"351:69:131","nodes":[],"canonicalName":"RegistryFactory.CommunityInfo","members":[{"constant":false,"id":79631,"mutability":"mutable","name":"valid","nameLocation":"387:5:131","nodeType":"VariableDeclaration","scope":79634,"src":"382:10:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79630,"name":"bool","nodeType":"ElementaryTypeName","src":"382:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":79633,"mutability":"mutable","name":"fee","nameLocation":"410:3:131","nodeType":"VariableDeclaration","scope":79634,"src":"402:11:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79632,"name":"uint256","nodeType":"ElementaryTypeName","src":"402:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"358:13:131","scope":79854,"visibility":"public"},{"id":79639,"nodeType":"VariableDeclaration","src":"426:49:131","nodes":[],"constant":false,"mutability":"mutable","name":"communityToInfo","nameLocation":"460:15:131","scope":79854,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo)"},"typeName":{"id":79638,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":79635,"name":"address","nodeType":"ElementaryTypeName","src":"434:7:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"426:33:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":79637,"nodeType":"UserDefinedTypeName","pathNode":{"id":79636,"name":"CommunityInfo","nameLocations":["445:13:131"],"nodeType":"IdentifierPath","referencedDeclaration":79634,"src":"445:13:131"},"referencedDeclaration":79634,"src":"445:13:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage_ptr","typeString":"struct RegistryFactory.CommunityInfo"}}},"visibility":"internal"},{"id":79641,"nodeType":"VariableDeclaration","src":"515:33:131","nodes":[],"constant":false,"functionSelector":"b8bed901","mutability":"mutable","name":"gardensFeeReceiver","nameLocation":"530:18:131","scope":79854,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79640,"name":"address","nodeType":"ElementaryTypeName","src":"515:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":79645,"nodeType":"EventDefinition","src":"721:46:131","nodes":[],"anonymous":false,"eventSelector":"bdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d","name":"FeeReceiverSet","nameLocation":"727:14:131","parameters":{"id":79644,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79643,"indexed":false,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"750:15:131","nodeType":"VariableDeclaration","scope":79645,"src":"742:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79642,"name":"address","nodeType":"ElementaryTypeName","src":"742:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"741:25:131"}},{"id":79651,"nodeType":"EventDefinition","src":"772:66:131","nodes":[],"anonymous":false,"eventSelector":"a1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c","name":"ProtocolFeeSet","nameLocation":"778:14:131","parameters":{"id":79650,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79647,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"801:10:131","nodeType":"VariableDeclaration","scope":79651,"src":"793:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79646,"name":"address","nodeType":"ElementaryTypeName","src":"793:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79649,"indexed":false,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"821:15:131","nodeType":"VariableDeclaration","scope":79651,"src":"813:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79648,"name":"uint256","nodeType":"ElementaryTypeName","src":"813:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"792:45:131"}},{"id":79655,"nodeType":"EventDefinition","src":"843:51:131","nodes":[],"anonymous":false,"eventSelector":"b4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29","name":"CommunityCreated","nameLocation":"849:16:131","parameters":{"id":79654,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79653,"indexed":false,"mutability":"mutable","name":"_registryCommunity","nameLocation":"874:18:131","nodeType":"VariableDeclaration","scope":79655,"src":"866:26:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79652,"name":"address","nodeType":"ElementaryTypeName","src":"866:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"865:28:131"}},{"id":79661,"nodeType":"EventDefinition","src":"899:62:131","nodes":[],"anonymous":false,"eventSelector":"ecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f62","name":"CommunityValiditySet","nameLocation":"905:20:131","parameters":{"id":79660,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79657,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"934:10:131","nodeType":"VariableDeclaration","scope":79661,"src":"926:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79656,"name":"address","nodeType":"ElementaryTypeName","src":"926:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79659,"indexed":false,"mutability":"mutable","name":"_isValid","nameLocation":"951:8:131","nodeType":"VariableDeclaration","scope":79661,"src":"946:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79658,"name":"bool","nodeType":"ElementaryTypeName","src":"946:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"925:35:131"}},{"id":79665,"nodeType":"ErrorDefinition","src":"1133:43:131","nodes":[],"errorSelector":"f5a6943d","name":"CommunityInvalid","nameLocation":"1139:16:131","parameters":{"id":79664,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79663,"mutability":"mutable","name":"_community","nameLocation":"1164:10:131","nodeType":"VariableDeclaration","scope":79665,"src":"1156:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79662,"name":"address","nodeType":"ElementaryTypeName","src":"1156:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1155:20:131"}},{"id":79667,"nodeType":"ErrorDefinition","src":"1181:28:131","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"1187:19:131","parameters":{"id":79666,"nodeType":"ParameterList","parameters":[],"src":"1206:2:131"}},{"id":79683,"nodeType":"FunctionDefinition","src":"1380:133:131","nodes":[],"body":{"id":79682,"nodeType":"Block","src":"1440:73:131","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79677,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79672,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79669,"src":"1454:8:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79675,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1474:1:131","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":79674,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1466:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79673,"name":"address","nodeType":"ElementaryTypeName","src":"1466:7:131","typeDescriptions":{}}},"id":79676,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1466:10:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1454:22:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79681,"nodeType":"IfStatement","src":"1450:56:131","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79678,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79667,"src":"1485:19:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79679,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1485:21:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79680,"nodeType":"RevertStatement","src":"1478:28:131"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"1389:18:131","parameters":{"id":79670,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79669,"mutability":"mutable","name":"_address","nameLocation":"1416:8:131","nodeType":"VariableDeclaration","scope":79683,"src":"1408:16:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79668,"name":"address","nodeType":"ElementaryTypeName","src":"1408:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1407:18:131"},"returnParameters":{"id":79671,"nodeType":"ParameterList","parameters":[],"src":"1440:0:131"},"scope":79854,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":79744,"nodeType":"FunctionDefinition","src":"1519:518:131","nodes":[],"body":{"id":79743,"nodeType":"Block","src":"1662:375:131","nodes":[],"statements":[{"assignments":[79693],"declarations":[{"constant":false,"id":79693,"mutability":"mutable","name":"registryCommunity","nameLocation":"1690:17:131","nodeType":"VariableDeclaration","scope":79743,"src":"1672:35:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"},"typeName":{"id":79692,"nodeType":"UserDefinedTypeName","pathNode":{"id":79691,"name":"RegistryCommunity","nameLocations":["1672:17:131"],"nodeType":"IdentifierPath","referencedDeclaration":77675,"src":"1672:17:131"},"referencedDeclaration":77675,"src":"1672:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"visibility":"internal"}],"id":79698,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":79696,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"1710:21:131","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegistryCommunity_$77675_$","typeString":"function () returns (contract RegistryCommunity)"},"typeName":{"id":79695,"nodeType":"UserDefinedTypeName","pathNode":{"id":79694,"name":"RegistryCommunity","nameLocations":["1714:17:131"],"nodeType":"IdentifierPath","referencedDeclaration":77675,"src":"1714:17:131"},"referencedDeclaration":77675,"src":"1714:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}},"id":79697,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1710:23:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"nodeType":"VariableDeclarationStatement","src":"1672:61:131"},{"expression":{"id":79704,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79699,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"1743:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":79701,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1750:6:131","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76090,"src":"1743:13:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79703,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"1759:7:131","subExpression":{"id":79702,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79629,"src":"1759:5:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"1743:23:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79705,"nodeType":"ExpressionStatement","src":"1743:23:131"},{"expression":{"id":79713,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79706,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"1776:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":79708,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1783:16:131","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76092,"src":"1776:23:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79711,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"1810:4:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryFactory_$79854","typeString":"contract RegistryFactory"}],"id":79710,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1802:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79709,"name":"address","nodeType":"ElementaryTypeName","src":"1802:7:131","typeDescriptions":{}}},"id":79712,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1802:13:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1776:39:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79714,"nodeType":"ExpressionStatement","src":"1776:39:131"},{"expression":{"arguments":[{"id":79718,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79686,"src":"1855:6:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}],"expression":{"id":79715,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79693,"src":"1826:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}},"id":79717,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1844:10:131","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76413,"src":"1826:28:131","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_InitializeParams_$76108_memory_ptr_$returns$__$","typeString":"function (struct RegistryCommunity.InitializeParams memory) external"}},"id":79719,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1826:36:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79720,"nodeType":"ExpressionStatement","src":"1826:36:131"},{"expression":{"id":79729,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":79721,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79639,"src":"1872:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":79726,"indexExpression":{"arguments":[{"id":79724,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79693,"src":"1896:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":79723,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1888:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79722,"name":"address","nodeType":"ElementaryTypeName","src":"1888:7:131","typeDescriptions":{}}},"id":79725,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1888:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"1872:43:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":79727,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"1916:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79631,"src":"1872:49:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":79728,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"1924:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"1872:56:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79730,"nodeType":"ExpressionStatement","src":"1872:56:131"},{"eventCall":{"arguments":[{"arguments":[{"id":79734,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79693,"src":"1968:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":79733,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1960:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79732,"name":"address","nodeType":"ElementaryTypeName","src":"1960:7:131","typeDescriptions":{}}},"id":79735,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1960:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79731,"name":"CommunityCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79655,"src":"1943:16:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79736,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1943:44:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79737,"nodeType":"EmitStatement","src":"1938:49:131"},{"expression":{"arguments":[{"id":79740,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79693,"src":"2012:17:131","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77675","typeString":"contract RegistryCommunity"}],"id":79739,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2004:7:131","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79738,"name":"address","nodeType":"ElementaryTypeName","src":"2004:7:131","typeDescriptions":{}}},"id":79741,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2004:26:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79690,"id":79742,"nodeType":"Return","src":"1997:33:131"}]},"functionSelector":"8a16135f","implemented":true,"kind":"function","modifiers":[],"name":"createRegistry","nameLocation":"1528:14:131","parameters":{"id":79687,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79686,"mutability":"mutable","name":"params","nameLocation":"1585:6:131","nodeType":"VariableDeclaration","scope":79744,"src":"1543:48:131","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":79685,"nodeType":"UserDefinedTypeName","pathNode":{"id":79684,"name":"RegistryCommunity.InitializeParams","nameLocations":["1543:17:131","1561:16:131"],"nodeType":"IdentifierPath","referencedDeclaration":76108,"src":"1543:34:131"},"referencedDeclaration":76108,"src":"1543:34:131","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76108_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"1542:50:131"},"returnParameters":{"id":79690,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79689,"mutability":"mutable","name":"_createdRegistryAddress","nameLocation":"1633:23:131","nodeType":"VariableDeclaration","scope":79744,"src":"1625:31:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79688,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1624:33:131"},"scope":79854,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79764,"nodeType":"FunctionDefinition","src":"2043:214:131","nodes":[],"body":{"id":79763,"nodeType":"Block","src":"2113:144:131","nodes":[],"statements":[{"expression":{"arguments":[{"id":79752,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79746,"src":"2142:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79751,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79683,"src":"2123:18:131","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79753,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2123:35:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79754,"nodeType":"ExpressionStatement","src":"2123:35:131"},{"expression":{"id":79757,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79755,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79641,"src":"2168:18:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79756,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79746,"src":"2189:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2168:36:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79758,"nodeType":"ExpressionStatement","src":"2168:36:131"},{"eventCall":{"arguments":[{"id":79760,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79746,"src":"2234:15:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79759,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79645,"src":"2219:14:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79761,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2219:31:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79762,"nodeType":"EmitStatement","src":"2214:36:131"}]},"functionSelector":"8279c7db","implemented":true,"kind":"function","modifiers":[{"id":79749,"kind":"modifierInvocation","modifierName":{"id":79748,"name":"onlyOwner","nameLocations":["2103:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"2103:9:131"},"nodeType":"ModifierInvocation","src":"2103:9:131"}],"name":"setReceiverAddress","nameLocation":"2052:18:131","parameters":{"id":79747,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79746,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"2079:15:131","nodeType":"VariableDeclaration","scope":79764,"src":"2071:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79745,"name":"address","nodeType":"ElementaryTypeName","src":"2071:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2070:25:131"},"returnParameters":{"id":79750,"nodeType":"ParameterList","parameters":[],"src":"2113:0:131"},"scope":79854,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79772,"nodeType":"FunctionDefinition","src":"2263:107:131","nodes":[],"body":{"id":79771,"nodeType":"Block","src":"2328:42:131","nodes":[],"statements":[{"expression":{"id":79769,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79641,"src":"2345:18:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79768,"id":79770,"nodeType":"Return","src":"2338:25:131"}]},"functionSelector":"987435be","implemented":true,"kind":"function","modifiers":[],"name":"getGardensFeeReceiver","nameLocation":"2272:21:131","parameters":{"id":79765,"nodeType":"ParameterList","parameters":[],"src":"2293:2:131"},"returnParameters":{"id":79768,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79767,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79772,"src":"2319:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79766,"name":"address","nodeType":"ElementaryTypeName","src":"2319:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2318:9:131"},"scope":79854,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79794,"nodeType":"FunctionDefinition","src":"2376:210:131","nodes":[],"body":{"id":79793,"nodeType":"Block","src":"2462:124:131","nodes":[],"statements":[{"expression":{"id":79786,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":79781,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79639,"src":"2472:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":79783,"indexExpression":{"id":79782,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79774,"src":"2488:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2472:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":79784,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2500:3:131","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":79633,"src":"2472:31:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79785,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79776,"src":"2506:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2472:49:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79787,"nodeType":"ExpressionStatement","src":"2472:49:131"},{"eventCall":{"arguments":[{"id":79789,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79774,"src":"2551:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79790,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79776,"src":"2563:15:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":79788,"name":"ProtocolFeeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79651,"src":"2536:14:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":79791,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2536:43:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79792,"nodeType":"EmitStatement","src":"2531:48:131"}]},"functionSelector":"b5b3ca2c","implemented":true,"kind":"function","modifiers":[{"id":79779,"kind":"modifierInvocation","modifierName":{"id":79778,"name":"onlyOwner","nameLocations":["2452:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"2452:9:131"},"nodeType":"ModifierInvocation","src":"2452:9:131"}],"name":"setProtocolFee","nameLocation":"2385:14:131","parameters":{"id":79777,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79774,"mutability":"mutable","name":"_community","nameLocation":"2408:10:131","nodeType":"VariableDeclaration","scope":79794,"src":"2400:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79773,"name":"address","nodeType":"ElementaryTypeName","src":"2400:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79776,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"2428:15:131","nodeType":"VariableDeclaration","scope":79794,"src":"2420:23:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79775,"name":"uint256","nodeType":"ElementaryTypeName","src":"2420:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2399:45:131"},"returnParameters":{"id":79780,"nodeType":"ParameterList","parameters":[],"src":"2462:0:131"},"scope":79854,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79816,"nodeType":"FunctionDefinition","src":"2592:200:131","nodes":[],"body":{"id":79815,"nodeType":"Block","src":"2674:118:131","nodes":[],"statements":[{"expression":{"id":79808,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":79803,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79639,"src":"2684:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":79805,"indexExpression":{"id":79804,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79796,"src":"2700:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2684:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":79806,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2712:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79631,"src":"2684:33:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79807,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79798,"src":"2720:8:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2684:44:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79809,"nodeType":"ExpressionStatement","src":"2684:44:131"},{"eventCall":{"arguments":[{"id":79811,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79796,"src":"2764:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":79812,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79798,"src":"2776:8:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":79810,"name":"CommunityValiditySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79661,"src":"2743:20:131","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":79813,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2743:42:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79814,"nodeType":"EmitStatement","src":"2738:47:131"}]},"functionSelector":"5a2c8ace","implemented":true,"kind":"function","modifiers":[{"id":79801,"kind":"modifierInvocation","modifierName":{"id":79800,"name":"onlyOwner","nameLocations":["2664:9:131"],"nodeType":"IdentifierPath","referencedDeclaration":55413,"src":"2664:9:131"},"nodeType":"ModifierInvocation","src":"2664:9:131"}],"name":"setCommunityValidity","nameLocation":"2601:20:131","parameters":{"id":79799,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79796,"mutability":"mutable","name":"_community","nameLocation":"2630:10:131","nodeType":"VariableDeclaration","scope":79816,"src":"2622:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79795,"name":"address","nodeType":"ElementaryTypeName","src":"2622:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79798,"mutability":"mutable","name":"_isValid","nameLocation":"2647:8:131","nodeType":"VariableDeclaration","scope":79816,"src":"2642:13:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79797,"name":"bool","nodeType":"ElementaryTypeName","src":"2642:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2621:35:131"},"returnParameters":{"id":79802,"nodeType":"ParameterList","parameters":[],"src":"2674:0:131"},"scope":79854,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":79829,"nodeType":"FunctionDefinition","src":"2798:136:131","nodes":[],"body":{"id":79828,"nodeType":"Block","src":"2877:57:131","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":79823,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79639,"src":"2894:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":79825,"indexExpression":{"id":79824,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79818,"src":"2910:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2894:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":79826,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2922:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79631,"src":"2894:33:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":79822,"id":79827,"nodeType":"Return","src":"2887:40:131"}]},"functionSelector":"f5016b5e","implemented":true,"kind":"function","modifiers":[],"name":"getCommunityValidity","nameLocation":"2807:20:131","parameters":{"id":79819,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79818,"mutability":"mutable","name":"_community","nameLocation":"2836:10:131","nodeType":"VariableDeclaration","scope":79829,"src":"2828:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79817,"name":"address","nodeType":"ElementaryTypeName","src":"2828:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2827:20:131"},"returnParameters":{"id":79822,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79821,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79829,"src":"2871:4:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79820,"name":"bool","nodeType":"ElementaryTypeName","src":"2871:4:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2870:6:131"},"scope":79854,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":79853,"nodeType":"FunctionDefinition","src":"2940:241:131","nodes":[],"body":{"id":79852,"nodeType":"Block","src":"3016:165:131","nodes":[],"statements":[{"condition":{"id":79840,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3030:34:131","subExpression":{"expression":{"baseExpression":{"id":79836,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79639,"src":"3031:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":79838,"indexExpression":{"id":79837,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"3047:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3031:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":79839,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3059:5:131","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79631,"src":"3031:33:131","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79846,"nodeType":"IfStatement","src":"3026:100:131","trueBody":{"id":79845,"nodeType":"Block","src":"3066:60:131","statements":[{"errorCall":{"arguments":[{"id":79842,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"3104:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79841,"name":"CommunityInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79665,"src":"3087:16:131","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":79843,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3087:28:131","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79844,"nodeType":"RevertStatement","src":"3080:35:131"}]}},{"expression":{"expression":{"baseExpression":{"id":79847,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79639,"src":"3143:15:131","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79634_storage_$","typeString":"mapping(address => struct RegistryFactory.CommunityInfo storage ref)"}},"id":79849,"indexExpression":{"id":79848,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79831,"src":"3159:10:131","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3143:27:131","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79634_storage","typeString":"struct RegistryFactory.CommunityInfo storage ref"}},"id":79850,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3171:3:131","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":79633,"src":"3143:31:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":79835,"id":79851,"nodeType":"Return","src":"3136:38:131"}]},"functionSelector":"0a992e0c","implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"2949:14:131","parameters":{"id":79832,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79831,"mutability":"mutable","name":"_community","nameLocation":"2972:10:131","nodeType":"VariableDeclaration","scope":79853,"src":"2964:18:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79830,"name":"address","nodeType":"ElementaryTypeName","src":"2964:7:131","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2963:20:131"},"returnParameters":{"id":79835,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79834,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":79853,"src":"3007:7:131","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79833,"name":"uint256","nodeType":"ElementaryTypeName","src":"3007:7:131","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3006:9:131"},"scope":79854,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":79625,"name":"Ownable","nameLocations":["230:7:131"],"nodeType":"IdentifierPath","referencedDeclaration":55494,"src":"230:7:131"},"id":79626,"nodeType":"InheritanceSpecifier","src":"230:7:131"}],"canonicalName":"RegistryFactory","contractDependencies":[77675],"contractKind":"contract","fullyImplemented":true,"linearizedBaseContracts":[79854,55494,57734],"name":"RegistryFactory","nameLocation":"211:15:131","scope":79855,"usedErrors":[79665,79667]}],"license":"AGPL-3.0-only"},"id":131} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json b/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json index 0bc5f00a9..9b534eb63 100644 --- a/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json +++ b/pkg/contracts/out/RegistryFactoryV0_0.sol/RegistryFactoryV0_0.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_gardensFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b50608051615f6261004c600039600081816103ab0152818161043001528181610526015281816105ab01526106950152615f626000f3fe6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063b8bed90111610059578063b8bed90114610274578063c4d66de814610294578063f2fde38b146102b4578063f5016b5e146102d457600080fd5b80638da5cb5b14610202578063987435be14610220578063affed0e01461023e578063b5b3ca2c1461025457600080fd5b80635a2c8ace116100c65780635a2c8ace14610175578063715018a6146101955780638279c7db146101aa5780638a16135f146101ca57600080fd5b80630a992e0c146100f85780633659cfe61461012b5780634f1ef2861461014d57806352d1902d14610160575b600080fd5b34801561010457600080fd5b50610118610113366004611210565b610320565b6040519081526020015b60405180910390f35b34801561013757600080fd5b5061014b610146366004611210565b6103a1565b005b61014b61015b3660046112e3565b61051c565b34801561016c57600080fd5b50610118610688565b34801561018157600080fd5b5061014b610190366004611357565b61074d565b3480156101a157600080fd5b5061014b6107bc565b3480156101b657600080fd5b5061014b6101c5366004611210565b6107d0565b3480156101d657600080fd5b506101ea6101e536600461141b565b610842565b6040516001600160a01b039091168152602001610122565b34801561020e57600080fd5b506033546001600160a01b03166101ea565b34801561022c57600080fd5b506067546001600160a01b03166101ea565b34801561024a57600080fd5b5061011860655481565b34801561026057600080fd5b5061014b61026f366004611571565b610968565b34801561028057600080fd5b506067546101ea906001600160a01b031681565b3480156102a057600080fd5b5061014b6102af366004611210565b6109c1565b3480156102c057600080fd5b5061014b6102cf366004611210565b610b3d565b3480156102e057600080fd5b506103106102ef366004611210565b6001600160a01b031660009081526066602052604090206001015460ff1690565b6040519015158152602001610122565b6001600160a01b03811660009081526066602052604081206001015460ff16610385576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146104f45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b6104fd81610bca565b6040805160008082526020820190925261051991839190610bd2565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105a95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106047f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461066f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b61067882610bca565b61068482826001610bd2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107285760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161037c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610755610d77565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6107c4610d77565b6107ce6000610dd1565b565b6107d8610d77565b6107e181610e30565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b600080604051610851906111dd565b604051809103906000f08015801561086d573d6000803e3d6000fd5b506065805491925060006108808361159d565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906108d4908690600401611633565b600060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610970610d77565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107b0565b600054610100900460ff16158080156109e15750600054600160ff909116105b806109fb5750303b1580156109fb575060005460ff166001145b610a6d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037c565b6000805460ff191660011790558015610a90576000805461ff0019166101001790555b610a98610e70565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a18015610684576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107b0565b610b45610d77565b6001600160a01b038116610bc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037c565b61051981610dd1565b610519610d77565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c0a57610c0583610ee3565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c64575060408051601f3d908101601f19168201909252610c6191810190611772565b60015b610cd65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161037c565b50610c05838383610fae565b6033546001600160a01b031633146107ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037c565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610519576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16610edb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce610fd9565b6001600160a01b0381163b610f605760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610fb78361104d565b600082511180610fc45750805b15610c0557610fd3838361108d565b50505050565b600054610100900460ff166110445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce33610dd1565b61105681610ee3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110b3838360405180606001604052806027815260200162005f06602791396110ba565b9392505050565b6060600080856001600160a01b0316856040516110d7919061178b565b600060405180830381855af49150503d8060008114611112576040519150601f19603f3d011682016040523d82523d6000602084013e611117565b606091505b509150915061112886838387611132565b9695505050505050565b606083156111a157825160000361119a576001600160a01b0385163b61119a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161037c565b50816111ab565b6111ab83836111b3565b949350505050565b8151156111c35781518083602001fd5b8060405162461bcd60e51b815260040161037c91906117a7565b61474b80620017bb83390190565b6001600160a01b038116811461051957600080fd5b803561120b816111eb565b919050565b60006020828403121561122257600080fd5b81356110b3816111eb565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156112675761126761122d565b60405290565b600067ffffffffffffffff808411156112885761128861122d565b604051601f8501601f19908116603f011681019082821181831017156112b0576112b061122d565b816040528093508581528686860111156112c957600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156112f657600080fd5b8235611301816111eb565b9150602083013567ffffffffffffffff81111561131d57600080fd5b8301601f8101851361132e57600080fd5b61133d8582356020840161126d565b9150509250929050565b8035801515811461120b57600080fd5b6000806040838503121561136a57600080fd5b8235611375816111eb565b915061138360208401611347565b90509250929050565b600082601f83011261139d57600080fd5b6110b38383356020850161126d565b6000604082840312156113be57600080fd5b6040516040810167ffffffffffffffff82821081831117156113e2576113e261122d565b8160405282935084358352602085013591508082111561140157600080fd5b5061140e8582860161138c565b6020830152505092915050565b60006020828403121561142d57600080fd5b813567ffffffffffffffff8082111561144557600080fd5b908301906101a0828603121561145a57600080fd5b611462611243565b61146b83611200565b815261147960208401611200565b60208201526040830135604082015260608301356060820152608083013560808201526114a860a08401611200565b60a08201526114b960c08401611200565b60c082015260e0830135828111156114d057600080fd5b6114dc878286016113ac565b60e0830152506101006114f0818501611200565b90820152610120838101358381111561150857600080fd5b6115148882870161138c565b828401525050610140611528818501611347565b90820152610160838101358381111561154057600080fd5b61154c8882870161138c565b8284015250506101809150611562828401611200565b91810191909152949350505050565b6000806040838503121561158457600080fd5b823561158f816111eb565b946020939093013593505050565b6000600182016115bd57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156115df5781810151838201526020016115c7565b50506000910152565b600081518084526116008160208601602086016115c4565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526111ab60408501826115e8565b6020815261164d6020820183516001600160a01b03169052565b6000602083015161166960408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516116a260c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526116d66101c0860184611614565b908601519092506101206116f4868201836001600160a01b03169052565b80870151915050601f1961014081878603018188015261171485846115e8565b94508088015192505061016061172d8188018415159052565b8088015192505061018081878603018188015261174a85846115e8565b94508088015192505050611768828601826001600160a01b03169052565b5090949350505050565b60006020828403121561178457600080fd5b5051919050565b6000825161179d8184602087016115c4565b9190910192915050565b6020815260006110b360208301846115e856fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200bbd77a2da76b2b8e19f3fe5b297b5703f5e7134e548e4ee67c354a30470b35a64736f6c63430008130033","sourceMap":"499:3290:132:-:0;;;1088:4:67;1045:48;;499:3290:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x6080604052600436106100f35760003560e01c80638da5cb5b1161008a578063b8bed90111610059578063b8bed90114610274578063c4d66de814610294578063f2fde38b146102b4578063f5016b5e146102d457600080fd5b80638da5cb5b14610202578063987435be14610220578063affed0e01461023e578063b5b3ca2c1461025457600080fd5b80635a2c8ace116100c65780635a2c8ace14610175578063715018a6146101955780638279c7db146101aa5780638a16135f146101ca57600080fd5b80630a992e0c146100f85780633659cfe61461012b5780634f1ef2861461014d57806352d1902d14610160575b600080fd5b34801561010457600080fd5b50610118610113366004611210565b610320565b6040519081526020015b60405180910390f35b34801561013757600080fd5b5061014b610146366004611210565b6103a1565b005b61014b61015b3660046112e3565b61051c565b34801561016c57600080fd5b50610118610688565b34801561018157600080fd5b5061014b610190366004611357565b61074d565b3480156101a157600080fd5b5061014b6107bc565b3480156101b657600080fd5b5061014b6101c5366004611210565b6107d0565b3480156101d657600080fd5b506101ea6101e536600461141b565b610842565b6040516001600160a01b039091168152602001610122565b34801561020e57600080fd5b506033546001600160a01b03166101ea565b34801561022c57600080fd5b506067546001600160a01b03166101ea565b34801561024a57600080fd5b5061011860655481565b34801561026057600080fd5b5061014b61026f366004611571565b610968565b34801561028057600080fd5b506067546101ea906001600160a01b031681565b3480156102a057600080fd5b5061014b6102af366004611210565b6109c1565b3480156102c057600080fd5b5061014b6102cf366004611210565b610b3d565b3480156102e057600080fd5b506103106102ef366004611210565b6001600160a01b031660009081526066602052604090206001015460ff1690565b6040519015158152602001610122565b6001600160a01b03811660009081526066602052604081206001015460ff16610385576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361042e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104897f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146104f45760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b6104fd81610bca565b6040805160008082526020820190925261051991839190610bd2565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105a95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840161037c565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106047f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461066f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840161037c565b61067882610bca565b61068482826001610bd2565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107285760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840161037c565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610755610d77565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6107c4610d77565b6107ce6000610dd1565b565b6107d8610d77565b6107e181610e30565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b600080604051610851906111dd565b604051809103906000f08015801561086d573d6000803e3d6000fd5b506065805491925060006108808361159d565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906108d4908690600401611633565b600060405180830381600087803b1580156108ee57600080fd5b505af1158015610902573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610970610d77565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107b0565b600054610100900460ff16158080156109e15750600054600160ff909116105b806109fb5750303b1580156109fb575060005460ff166001145b610a6d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840161037c565b6000805460ff191660011790558015610a90576000805461ff0019166101001790555b610a98610e70565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a18015610684576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107b0565b610b45610d77565b6001600160a01b038116610bc15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161037c565b61051981610dd1565b610519610d77565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610c0a57610c0583610ee3565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610c64575060408051601f3d908101601f19168201909252610c6191810190611772565b60015b610cd65760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610d6b5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840161037c565b50610c05838383610fae565b6033546001600160a01b031633146107ce5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161037c565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610519576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff16610edb5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce610fd9565b6001600160a01b0381163b610f605760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840161037c565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610fb78361104d565b600082511180610fc45750805b15610c0557610fd3838361108d565b50505050565b600054610100900460ff166110445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840161037c565b6107ce33610dd1565b61105681610ee3565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606110b3838360405180606001604052806027815260200162005f06602791396110ba565b9392505050565b6060600080856001600160a01b0316856040516110d7919061178b565b600060405180830381855af49150503d8060008114611112576040519150601f19603f3d011682016040523d82523d6000602084013e611117565b606091505b509150915061112886838387611132565b9695505050505050565b606083156111a157825160000361119a576001600160a01b0385163b61119a5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161037c565b50816111ab565b6111ab83836111b3565b949350505050565b8151156111c35781518083602001fd5b8060405162461bcd60e51b815260040161037c91906117a7565b61474b80620017bb83390190565b6001600160a01b038116811461051957600080fd5b803561120b816111eb565b919050565b60006020828403121561122257600080fd5b81356110b3816111eb565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156112675761126761122d565b60405290565b600067ffffffffffffffff808411156112885761128861122d565b604051601f8501601f19908116603f011681019082821181831017156112b0576112b061122d565b816040528093508581528686860111156112c957600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156112f657600080fd5b8235611301816111eb565b9150602083013567ffffffffffffffff81111561131d57600080fd5b8301601f8101851361132e57600080fd5b61133d8582356020840161126d565b9150509250929050565b8035801515811461120b57600080fd5b6000806040838503121561136a57600080fd5b8235611375816111eb565b915061138360208401611347565b90509250929050565b600082601f83011261139d57600080fd5b6110b38383356020850161126d565b6000604082840312156113be57600080fd5b6040516040810167ffffffffffffffff82821081831117156113e2576113e261122d565b8160405282935084358352602085013591508082111561140157600080fd5b5061140e8582860161138c565b6020830152505092915050565b60006020828403121561142d57600080fd5b813567ffffffffffffffff8082111561144557600080fd5b908301906101a0828603121561145a57600080fd5b611462611243565b61146b83611200565b815261147960208401611200565b60208201526040830135604082015260608301356060820152608083013560808201526114a860a08401611200565b60a08201526114b960c08401611200565b60c082015260e0830135828111156114d057600080fd5b6114dc878286016113ac565b60e0830152506101006114f0818501611200565b90820152610120838101358381111561150857600080fd5b6115148882870161138c565b828401525050610140611528818501611347565b90820152610160838101358381111561154057600080fd5b61154c8882870161138c565b8284015250506101809150611562828401611200565b91810191909152949350505050565b6000806040838503121561158457600080fd5b823561158f816111eb565b946020939093013593505050565b6000600182016115bd57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156115df5781810151838201526020016115c7565b50506000910152565b600081518084526116008160208601602086016115c4565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526111ab60408501826115e8565b6020815261164d6020820183516001600160a01b03169052565b6000602083015161166960408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516116a260c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526116d66101c0860184611614565b908601519092506101206116f4868201836001600160a01b03169052565b80870151915050601f1961014081878603018188015261171485846115e8565b94508088015192505061016061172d8188018415159052565b8088015192505061018081878603018188015261174a85846115e8565b94508088015192505050611768828601826001600160a01b03169052565b5090949350505050565b60006020828403121561178457600080fd5b5051919050565b6000825161179d8184602087016115c4565b9190910192915050565b6020815260006110b360208301846115e856fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200bbd77a2da76b2b8e19f3fe5b297b5703f5e7134e548e4ee67c354a30470b35a64736f6c63430008130033","sourceMap":"499:3290:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:249;;;;;;;;;;-1:-1:-1;3434:249:132;;;;;:::i;:::-;;:::i;:::-;;;710:25:143;;;698:2;683:18;3434:249:132;;;;;;;;3143:195:67;;;;;;;;;;-1:-1:-1;3143:195:67;;;;;:::i;:::-;;:::i;:::-;;3657:220;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;3070:208:132:-;;;;;;;;;;-1:-1:-1;3070:208:132;;;;;:::i;:::-;;:::i;2085:101:46:-;;;;;;;;;;;;;:::i;2497:222:132:-;;;;;;;;;;-1:-1:-1;2497:222:132;;;;;:::i;:::-;;:::i;1957:534::-;;;;;;;;;;-1:-1:-1;1957:534:132;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5932:55:143;;;5914:74;;5902:2;5887:18;1957:534:132;5768:226:143;1462:85:46;;;;;;;;;;-1:-1:-1;1534:6:46;;-1:-1:-1;;;;;1534:6:46;1462:85;;2725:115:132;;;;;;;;;;-1:-1:-1;2815:18:132;;-1:-1:-1;;;;;2815:18:132;2725:115;;573:20;;;;;;;;;;;;;;;;2846:218;;;;;;;;;;-1:-1:-1;2846:218:132;;;;;:::i;:::-;;:::i;655:33::-;;;;;;;;;;-1:-1:-1;655:33:132;;;;-1:-1:-1;;;;;655:33:132;;;1659:292;;;;;;;;;;-1:-1:-1;1659:292:132;;;;;:::i;:::-;;:::i;2335:198:46:-;;;;;;;;;;-1:-1:-1;2335:198:46;;;;;:::i;:::-;;:::i;3284:144:132:-;;;;;;;;;;-1:-1:-1;3284:144:132;;;;;:::i;:::-;-1:-1:-1;;;;;3388:27:132;3365:4;3388:27;;;:15;:27;;;;;:33;;;;;;3284:144;;;;6580:14:143;;6573:22;6555:41;;6543:2;6528:18;3284:144:132;6415:187:143;3434:249:132;-1:-1:-1;;;;;3533:27:132;;3509:7;3533:27;;;:15;:27;;;;;:33;;;;;3528:100;;3589:28;;;;;-1:-1:-1;;;;;5932:55:143;;3589:28:132;;;5914:74:143;5887:18;;3589:28:132;;;;;;;;3528:100;-1:-1:-1;;;;;;3645:27:132;;;;;:15;:27;;;;;:31;;3434:249::o;3143:195:67:-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:143;1629:80:67;;;6791:21:143;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:143;;;6931:42;6990:19;;1629:80:67;6607:408:143;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:143;1719:87:67;;;7204:21:143;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:143;;;7344:42;7403:19;;1719:87:67;7020:408:143;1719:87:67;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;:::-;3143:195:::0;:::o;3657:220::-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:143;1629:80:67;;;6791:21:143;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:143;;;6931:42;6990:19;;1629:80:67;6607:408:143;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:143;1719:87:67;;;7204:21:143;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:143;;;7344:42;7403:19;;1719:87:67;7020:408:143;1719:87:67;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;:::-;3657:220:::0;;:::o;2762:131::-;2840:7;2080:4;-1:-1:-1;;;;;2089:6:67;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:67;;7635:2:143;2064:92:67;;;7617:21:143;7674:2;7654:18;;;7647:30;7713:34;7693:18;;;7686:62;7784:26;7764:18;;;7757:54;7828:19;;2064:92:67;7433:420:143;2064:92:67;-1:-1:-1;1030:66:64::1;2762:131:67::0;:::o;3070:208:132:-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;3170:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;3170:44:132::1;::::0;::::1;;::::0;;::::1;::::0;;;3229:42;;8026:74:143;;;8116:18;;;8109:50;3229:42:132::1;::::0;7999:18:143;3229:42:132::1;;;;;;;;3070:208:::0;;:::o;2085:101:46:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2497:222:132:-;1355:13:46;:11;:13::i;:::-;2585:35:132::1;2604:15;2585:18;:35::i;:::-;2630:18;:36:::0;;-1:-1:-1;;2630:36:132::1;-1:-1:-1::0;;;;;2630:36:132;::::1;::::0;;::::1;::::0;;;2681:31:::1;::::0;5914:74:143;;;2681:31:132::1;::::0;5902:2:143;5887:18;2681:31:132::1;;;;;;;2497:222:::0;:::o;1957:534::-;2079:31;2126:35;2164:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2213:5:132;:7;;2126:61;;-1:-1:-1;2213:5:132;:7;;;:::i;:::-;;;;-1:-1:-1;2197:13:132;;;:23;2264:4;2230:23;;;:39;2280:36;;;;;-1:-1:-1;;;;;2280:28:132;;;;;:36;;2197:6;;2280:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;2326:43:132;;;;;;:15;:43;;;;;;;;;2378:4;2326:49;;;:56;;-1:-1:-1;;2326:56:132;;;;;;2397:44;;5914:74:143;;;2397:44:132;;5887:18:143;2397:44:132;;;;;;;2466:17;1957:534;-1:-1:-1;;1957:534:132:o;2846:218::-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;2950:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;3014:43;;11307:74:143;;;11397:18;;11390:34;;;3014:43:132::1;::::0;11280:18:143;3014:43:132::1;11133:297:143::0;1659:292:132;3279:19:48;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:48;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:48;1713:19:51;:23;;;3387:66:48;;-1:-1:-1;3436:12:48;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:48;;11637:2:143;3325:201:48;;;11619:21:143;11676:2;11656:18;;;11649:30;11715:34;11695:18;;;11688:62;11786:16;11766:18;;;11759:44;11820:19;;3325:201:48;11435:410:143;3325:201:48;3536:12;:16;;-1:-1:-1;;3536:16:48;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:48;;;;;3562:65;1745:16:132::1;:14;:16::i;:::-;1779:1;1771:5;:9:::0;1790:18:::1;:40:::0;;-1:-1:-1;;1790:40:132::1;-1:-1:-1::0;;;;;1790:40:132;::::1;::::0;;::::1;::::0;;;1845:35:::1;::::0;5914:74:143;;;1845:35:132::1;::::0;5902:2:143;5887:18;1845:35:132::1;;;;;;;3651:14:48::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:48;;;3721:14;;-1:-1:-1;12002:36:143;;3721:14:48;;11990:2:143;11975:18;3721:14:48;11850:194:143;2335:198:46;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:46;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:46;;12251:2:143;2415:73:46::1;::::0;::::1;12233:21:143::0;12290:2;12270:18;;;12263:30;12329:34;12309:18;;;12302:62;12400:8;12380:18;;;12373:36;12426:19;;2415:73:46::1;12049:402:143::0;2415:73:46::1;2498:28;2517:8;2498:18;:28::i;3689:66:132:-:0;1355:13:46;:11;:13::i;2494:922:64:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;:::-;2494:922;;;:::o;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:64;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:64;;;;;;;;-1:-1:-1;;3046:52:64;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:64;;12847:2:143;3262:56:64;;;12829:21:143;12886:2;12866:18;;;12859:30;12925:34;12905:18;;;12898:62;12996:16;12976:18;;;12969:44;13030:19;;3262:56:64;12645:410:143;3042:291:64;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:64;;13262:2:143;3140:82:64;;;13244:21:143;13301:2;13281:18;;;13274:30;13340:34;13320:18;;;13313:62;13411:11;13391:18;;;13384:39;13440:19;;3140:82:64;13060:405:143;3140:82:64;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;1620:130:46:-;1534:6;;-1:-1:-1;;;;;1534:6:46;965:10:52;1683:23:46;1675:68;;;;-1:-1:-1;;;1675:68:46;;13672:2:143;1675:68:46;;;13654:21:143;;;13691:18;;;13684:30;13750:34;13730:18;;;13723:62;13802:18;;1675:68:46;13470:356:143;2687:187:46;2779:6;;;-1:-1:-1;;;;;2795:17:46;;;-1:-1:-1;;2795:17:46;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1520:133:132:-;-1:-1:-1;;;;;1594:22:132;;1590:56;;1625:21;;;;;;;;;;;;;;1024:95:46;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14033:2:143;5366:69:48;;;14015:21:143;14072:2;14052:18;;;14045:30;14111:34;14091:18;;;14084:62;-1:-1:-1;;;14162:18:143;;;14155:41;14213:19;;5366:69:48;13831:407:143;5366:69:48;1086:26:46::1;:24;:26::i;1406:259:64:-:0;-1:-1:-1;;;;;1713:19:51;;;1479:95:64;;;;-1:-1:-1;;;1479:95:64;;14445:2:143;1479:95:64;;;14427:21:143;14484:2;14464:18;;;14457:30;14523:34;14503:18;;;14496:62;14594:15;14574:18;;;14567:43;14627:19;;1479:95:64;14243:409:143;1479:95:64;1030:66;1584:74;;-1:-1:-1;;1584:74:64;-1:-1:-1;;;;;1584:74:64;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2057:265;;;:::o;1125:111:46:-;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14033:2:143;5366:69:48;;;14015:21:143;14072:2;14052:18;;;14045:30;14111:34;14091:18;;;14084:62;-1:-1:-1;;;14162:18:143;;;14155:41;14213:19;;5366:69:48;13831:407:143;5366:69:48;1197:32:46::1;965:10:52::0;1197:18:46::1;:32::i;1771:152:64:-:0;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:64;;;;;;;;1771:152;:::o;6674:198:79:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:79:o;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:79;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:79:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:51;;;8113:60:79;;;;-1:-1:-1;;;8113:60:79;;15151:2:143;8113:60:79;;;15133:21:143;15190:2;15170:18;;;15163:30;15229:31;15209:18;;;15202:59;15278:18;;8113:60:79;14949:353:143;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;:::o;14:154:143:-;-1:-1:-1;;;;;93:5:143;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;746:184::-;-1:-1:-1;;;795:1:143;788:88;895:4;892:1;885:15;919:4;916:1;909:15;935:250;1002:2;996:9;1044:6;1032:19;;1081:18;1066:34;;1102:22;;;1063:62;1060:88;;;1128:18;;:::i;:::-;1164:2;1157:22;935:250;:::o;1190:631::-;1254:5;1284:18;1325:2;1317:6;1314:14;1311:40;;;1331:18;;:::i;:::-;1406:2;1400:9;1374:2;1460:15;;-1:-1:-1;;1456:24:143;;;1482:2;1452:33;1448:42;1436:55;;;1506:18;;;1526:22;;;1503:46;1500:72;;;1552:18;;:::i;:::-;1592:10;1588:2;1581:22;1621:6;1612:15;;1651:6;1643;1636:22;1691:3;1682:6;1677:3;1673:16;1670:25;1667:45;;;1708:1;1705;1698:12;1667:45;1758:6;1753:3;1746:4;1738:6;1734:17;1721:44;1813:1;1806:4;1797:6;1789;1785:19;1781:30;1774:41;;;;1190:631;;;;;:::o;1826:584::-;1903:6;1911;1964:2;1952:9;1943:7;1939:23;1935:32;1932:52;;;1980:1;1977;1970:12;1932:52;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;-1:-1:-1;2144:2:143;2129:18;;2116:32;2171:18;2160:30;;2157:50;;;2203:1;2200;2193:12;2157:50;2226:22;;2279:4;2271:13;;2267:27;-1:-1:-1;2257:55:143;;2308:1;2305;2298:12;2257:55;2331:73;2396:7;2391:2;2378:16;2373:2;2369;2365:11;2331:73;:::i;:::-;2321:83;;;1826:584;;;;;:::o;2597:160::-;2662:20;;2718:13;;2711:21;2701:32;;2691:60;;2747:1;2744;2737:12;2762:315;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;2943:9;2930:23;2962:31;2987:5;2962:31;:::i;:::-;3012:5;-1:-1:-1;3036:35:143;3067:2;3052:18;;3036:35;:::i;:::-;3026:45;;2762:315;;;;;:::o;3082:221::-;3125:5;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;3218:79;3293:3;3284:6;3271:20;3264:4;3256:6;3252:17;3218:79;:::i;3308:610::-;3363:5;3411:4;3399:9;3394:3;3390:19;3386:30;3383:50;;;3429:1;3426;3419:12;3383:50;3462:4;3456:11;3506:4;3498:6;3494:17;3530:18;3598:6;3586:10;3583:22;3578:2;3566:10;3563:18;3560:46;3557:72;;;3609:18;;:::i;:::-;3651:10;3645:4;3638:24;3680:6;3671:15;;3723:9;3710:23;3702:6;3695:39;3785:2;3774:9;3770:18;3757:32;3743:46;;3812:2;3804:6;3801:14;3798:34;;;3828:1;3825;3818:12;3798:34;;3865:46;3907:3;3898:6;3887:9;3883:22;3865:46;:::i;:::-;3860:2;3852:6;3848:15;3841:71;;;3308:610;;;;:::o;3923:1708::-;4017:6;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4126:9;4113:23;4155:18;4196:2;4188:6;4185:14;4182:34;;;4212:1;4209;4202:12;4182:34;4235:22;;;;4291:6;4273:16;;;4269:29;4266:49;;;4311:1;4308;4301:12;4266:49;4337:17;;:::i;:::-;4377:22;4396:2;4377:22;:::i;:::-;4370:5;4363:37;4432:31;4459:2;4455;4451:11;4432:31;:::i;:::-;4427:2;4420:5;4416:14;4409:55;4517:2;4513;4509:11;4496:25;4491:2;4484:5;4480:14;4473:49;4575:2;4571;4567:11;4554:25;4549:2;4542:5;4538:14;4531:49;4634:3;4630:2;4626:12;4613:26;4607:3;4600:5;4596:15;4589:51;4673:32;4700:3;4696:2;4692:12;4673:32;:::i;:::-;4667:3;4660:5;4656:15;4649:57;4739:32;4766:3;4762:2;4758:12;4739:32;:::i;:::-;4733:3;4726:5;4722:15;4715:57;4818:3;4814:2;4810:12;4797:26;4848:2;4838:8;4835:16;4832:36;;;4864:1;4861;4854:12;4832:36;4901:54;4947:7;4936:8;4932:2;4928:17;4901:54;:::i;:::-;4895:3;4888:5;4884:15;4877:79;;4975:3;5010:31;5037:2;5033;5029:11;5010:31;:::i;:::-;4994:14;;;4987:55;5061:3;5102:11;;;5089:25;5126:16;;;5123:36;;;5155:1;5152;5145:12;5123:36;5191:45;5228:7;5217:8;5213:2;5209:17;5191:45;:::i;:::-;5186:2;5179:5;5175:14;5168:69;;;5256:3;5291:28;5315:2;5311;5307:11;5291:28;:::i;:::-;5275:14;;;5268:52;5339:3;5380:11;;;5367:25;5404:16;;;5401:36;;;5433:1;5430;5423:12;5401:36;5469:45;5506:7;5495:8;5491:2;5487:17;5469:45;:::i;:::-;5464:2;5457:5;5453:14;5446:69;;;5534:3;5524:13;;5569:31;5596:2;5592;5588:11;5569:31;:::i;:::-;5553:14;;;5546:55;;;;5557:5;3923:1708;-1:-1:-1;;;;3923:1708:143:o;5999:315::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;6304:2;6289:18;;;;6276:32;;-1:-1:-1;;;5999:315:143:o;8170:289::-;8209:3;8230:17;;;8227:197;;-1:-1:-1;;;8277:1:143;8270:88;8381:4;8378:1;8371:15;8409:4;8406:1;8399:15;8227:197;-1:-1:-1;8451:1:143;8440:13;;8170:289::o;8464:250::-;8549:1;8559:113;8573:6;8570:1;8567:13;8559:113;;;8649:11;;;8643:18;8630:11;;;8623:39;8595:2;8588:10;8559:113;;;-1:-1:-1;;8706:1:143;8688:16;;8681:27;8464:250::o;8719:271::-;8761:3;8799:5;8793:12;8826:6;8821:3;8814:19;8842:76;8911:6;8904:4;8899:3;8895:14;8888:4;8881:5;8877:16;8842:76;:::i;:::-;8972:2;8951:15;-1:-1:-1;;8947:29:143;8938:39;;;;8979:4;8934:50;;8719:271;-1:-1:-1;;8719:271:143:o;8995:252::-;9082:5;9076:12;9071:3;9064:25;9046:3;9135:4;9128:5;9124:16;9118:23;9173:4;9166;9161:3;9157:14;9150:28;9194:47;9235:4;9230:3;9226:14;9212:12;9194:47;:::i;9252:1876::-;9451:2;9440:9;9433:21;9463:53;9512:2;9501:9;9497:18;9488:6;9482:13;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;9463:53;9414:4;9563:2;9555:6;9551:15;9545:22;9576:52;9624:2;9613:9;9609:18;9595:12;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;9576:52;;9682:2;9674:6;9670:15;9664:22;9659:2;9648:9;9644:18;9637:50;9742:2;9734:6;9730:15;9724:22;9718:3;9707:9;9703:19;9696:51;9802:3;9794:6;9790:16;9784:23;9778:3;9767:9;9763:19;9756:52;9857:3;9849:6;9845:16;9839:23;9871:55;9921:3;9910:9;9906:19;9890:14;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;9871:55;-1:-1:-1;9975:3:143;9963:16;;9957:23;-1:-1:-1;;;;;5702:54:143;;10039:3;10024:19;;5690:67;9989:55;10093:3;10085:6;10081:16;10075:23;10117:6;10142:3;10181:2;10176;10165:9;10161:18;10154:30;10207:63;10265:3;10254:9;10250:19;10234:14;10207:63;:::i;:::-;10307:15;;;10301:22;10193:77;;-1:-1:-1;10342:3:143;10354:54;10389:18;;;10301:22;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;10354:54;10457:2;10449:6;10445:15;10439:22;10417:44;;;10484:2;10480:7;10506:3;10573:2;10561:9;10553:6;10549:22;10545:31;10540:2;10529:9;10525:18;10518:59;10600:41;10634:6;10618:14;10600:41;:::i;:::-;10586:55;;10690:2;10682:6;10678:15;10672:22;10650:44;;;10713:3;10725:51;10772:2;10761:9;10757:18;10741:14;6389:13;6382:21;6370:34;;6319:91;10725:51;10825:2;10817:6;10813:15;10807:22;10785:44;;;10848:3;10915:2;10903:9;10895:6;10891:22;10887:31;10882:2;10871:9;10867:18;10860:59;10942:41;10976:6;10960:14;10942:41;:::i;:::-;10928:55;;11032:2;11024:6;11020:15;11014:22;10992:44;;;;11045:54;11095:2;11084:9;11080:18;11064:14;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;11045:54;-1:-1:-1;11116:6:143;;9252:1876;-1:-1:-1;;;;9252:1876:143:o;12456:184::-;12526:6;12579:2;12567:9;12558:7;12554:23;12550:32;12547:52;;;12595:1;12592;12585:12;12547:52;-1:-1:-1;12618:16:143;;12456:184;-1:-1:-1;12456:184:143:o;14657:287::-;14786:3;14824:6;14818:13;14840:66;14899:6;14894:3;14887:4;14879:6;14875:17;14840:66;:::i;:::-;14922:16;;;;;14657:287;-1:-1:-1;;14657:287:143:o;15307:220::-;15456:2;15445:9;15438:21;15419:4;15476:45;15517:2;15506:9;15502:18;15494:6;15476:45;:::i","linkReferences":{},"immutableReferences":{"55944":[{"start":939,"length":32},{"start":1072,"length":32},{"start":1318,"length":32},{"start":1451,"length":32},{"start":1685,"length":32}]}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","initialize(address)":"c4d66de8","nonce()":"affed0e0","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gardensFeeReceiver\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-from\":\"RegistryFactory\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactoryV0_0.sol\":\"RegistryFactoryV0_0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/RegistryFactoryV0_0.sol\":{\"keccak256\":\"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587\",\"dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_gardensFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactoryV0_0.sol":"RegistryFactoryV0_0"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_0.sol":{"keccak256":"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9","urls":["bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587","dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":52821,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":52941,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":77950,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"nonce","offset":0,"slot":"101","type":"t_uint256"},{"astId":77955,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"communityToInfo","offset":0,"slot":"102","type":"t_mapping(t_address,t_struct(CommunityInfo)77943_storage)"},{"astId":77957,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"gardensFeeReceiver","offset":0,"slot":"103","type":"t_address"},{"astId":78205,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"104","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)77943_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)77943_storage"},"t_struct(CommunityInfo)77943_storage":{"encoding":"inplace","label":"struct CommunityInfo","numberOfBytes":"64","members":[{"astId":77940,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":77942,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactoryV0_0.sol","id":78207,"exportedSymbols":{"CommunityInfo":[77943],"OwnableUpgradeable":[52942],"RegistryCommunity":[77692],"RegistryFactory":[77928],"RegistryFactoryV0_0":[78206],"UUPSUpgradeable":[56044]},"nodeType":"SourceUnit","src":"42:3748:132","nodes":[{"id":77930,"nodeType":"PragmaDirective","src":"42:24:132","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":77932,"nodeType":"ImportDirective","src":"68:63:132","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":78207,"sourceUnit":77693,"symbolAliases":[{"foreign":{"id":77931,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"76:17:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77934,"nodeType":"ImportDirective","src":"133:59:132","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"../src/RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":78207,"sourceUnit":77929,"symbolAliases":[{"foreign":{"id":77933,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77928,"src":"141:15:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77936,"nodeType":"ImportDirective","src":"194:110:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78207,"sourceUnit":52943,"symbolAliases":[{"foreign":{"id":77935,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52942,"src":"202:18:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77938,"nodeType":"ImportDirective","src":"305:88:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78207,"sourceUnit":56045,"symbolAliases":[{"foreign":{"id":77937,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56044,"src":"313:15:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":77943,"nodeType":"StructDefinition","src":"395:57:132","nodes":[],"canonicalName":"CommunityInfo","members":[{"constant":false,"id":77940,"mutability":"mutable","name":"fee","nameLocation":"430:3:132","nodeType":"VariableDeclaration","scope":77943,"src":"422:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77939,"name":"uint256","nodeType":"ElementaryTypeName","src":"422:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":77942,"mutability":"mutable","name":"valid","nameLocation":"444:5:132","nodeType":"VariableDeclaration","scope":77943,"src":"439:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77941,"name":"bool","nodeType":"ElementaryTypeName","src":"439:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"402:13:132","scope":78207,"visibility":"public"},{"id":78206,"nodeType":"ContractDefinition","src":"499:3290:132","nodes":[{"id":77950,"nodeType":"VariableDeclaration","src":"573:20:132","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"588:5:132","scope":78206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77949,"name":"uint256","nodeType":"ElementaryTypeName","src":"573:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":77955,"nodeType":"VariableDeclaration","src":"600:49:132","nodes":[],"constant":false,"mutability":"mutable","name":"communityToInfo","nameLocation":"634:15:132","scope":78206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo)"},"typeName":{"id":77954,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":77951,"name":"address","nodeType":"ElementaryTypeName","src":"608:7:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"600:33:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":77953,"nodeType":"UserDefinedTypeName","pathNode":{"id":77952,"name":"CommunityInfo","nameLocations":["619:13:132"],"nodeType":"IdentifierPath","referencedDeclaration":77943,"src":"619:13:132"},"referencedDeclaration":77943,"src":"619:13:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage_ptr","typeString":"struct CommunityInfo"}}},"visibility":"internal"},{"id":77957,"nodeType":"VariableDeclaration","src":"655:33:132","nodes":[],"constant":false,"functionSelector":"b8bed901","mutability":"mutable","name":"gardensFeeReceiver","nameLocation":"670:18:132","scope":78206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77956,"name":"address","nodeType":"ElementaryTypeName","src":"655:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":77961,"nodeType":"EventDefinition","src":"861:46:132","nodes":[],"anonymous":false,"eventSelector":"bdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d","name":"FeeReceiverSet","nameLocation":"867:14:132","parameters":{"id":77960,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77959,"indexed":false,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"890:15:132","nodeType":"VariableDeclaration","scope":77961,"src":"882:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77958,"name":"address","nodeType":"ElementaryTypeName","src":"882:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"881:25:132"}},{"id":77967,"nodeType":"EventDefinition","src":"912:66:132","nodes":[],"anonymous":false,"eventSelector":"a1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c","name":"ProtocolFeeSet","nameLocation":"918:14:132","parameters":{"id":77966,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77963,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"941:10:132","nodeType":"VariableDeclaration","scope":77967,"src":"933:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77962,"name":"address","nodeType":"ElementaryTypeName","src":"933:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77965,"indexed":false,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"961:15:132","nodeType":"VariableDeclaration","scope":77967,"src":"953:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":77964,"name":"uint256","nodeType":"ElementaryTypeName","src":"953:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"932:45:132"}},{"id":77971,"nodeType":"EventDefinition","src":"983:51:132","nodes":[],"anonymous":false,"eventSelector":"b4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29","name":"CommunityCreated","nameLocation":"989:16:132","parameters":{"id":77970,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77969,"indexed":false,"mutability":"mutable","name":"_registryCommunity","nameLocation":"1014:18:132","nodeType":"VariableDeclaration","scope":77971,"src":"1006:26:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77968,"name":"address","nodeType":"ElementaryTypeName","src":"1006:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1005:28:132"}},{"id":77977,"nodeType":"EventDefinition","src":"1039:62:132","nodes":[],"anonymous":false,"eventSelector":"ecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f62","name":"CommunityValiditySet","nameLocation":"1045:20:132","parameters":{"id":77976,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77973,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"1074:10:132","nodeType":"VariableDeclaration","scope":77977,"src":"1066:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77972,"name":"address","nodeType":"ElementaryTypeName","src":"1066:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":77975,"indexed":false,"mutability":"mutable","name":"_isValid","nameLocation":"1091:8:132","nodeType":"VariableDeclaration","scope":77977,"src":"1086:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":77974,"name":"bool","nodeType":"ElementaryTypeName","src":"1086:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1065:35:132"}},{"id":77981,"nodeType":"ErrorDefinition","src":"1273:43:132","nodes":[],"errorSelector":"f5a6943d","name":"CommunityInvalid","nameLocation":"1279:16:132","parameters":{"id":77980,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77979,"mutability":"mutable","name":"_community","nameLocation":"1304:10:132","nodeType":"VariableDeclaration","scope":77981,"src":"1296:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77978,"name":"address","nodeType":"ElementaryTypeName","src":"1296:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1295:20:132"}},{"id":77983,"nodeType":"ErrorDefinition","src":"1321:28:132","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"1327:19:132","parameters":{"id":77982,"nodeType":"ParameterList","parameters":[],"src":"1346:2:132"}},{"id":77999,"nodeType":"FunctionDefinition","src":"1520:133:132","nodes":[],"body":{"id":77998,"nodeType":"Block","src":"1580:73:132","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":77993,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":77988,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77985,"src":"1594:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":77991,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1614:1:132","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":77990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1606:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":77989,"name":"address","nodeType":"ElementaryTypeName","src":"1606:7:132","typeDescriptions":{}}},"id":77992,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1606:10:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1594:22:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":77997,"nodeType":"IfStatement","src":"1590:56:132","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":77994,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77983,"src":"1625:19:132","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":77995,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1625:21:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":77996,"nodeType":"RevertStatement","src":"1618:28:132"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"1529:18:132","parameters":{"id":77986,"nodeType":"ParameterList","parameters":[{"constant":false,"id":77985,"mutability":"mutable","name":"_address","nameLocation":"1556:8:132","nodeType":"VariableDeclaration","scope":77999,"src":"1548:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":77984,"name":"address","nodeType":"ElementaryTypeName","src":"1548:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1547:18:132"},"returnParameters":{"id":77987,"nodeType":"ParameterList","parameters":[],"src":"1580:0:132"},"scope":78206,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":78022,"nodeType":"FunctionDefinition","src":"1659:292:132","nodes":[],"body":{"id":78021,"nodeType":"Block","src":"1735:216:132","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78006,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52837,"src":"1745:14:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1745:16:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78008,"nodeType":"ExpressionStatement","src":"1745:16:132"},{"expression":{"id":78011,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78009,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77950,"src":"1771:5:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":78010,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1779:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1771:9:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78012,"nodeType":"ExpressionStatement","src":"1771:9:132"},{"expression":{"id":78015,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78013,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77957,"src":"1790:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78014,"name":"_gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"1811:19:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1790:40:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78016,"nodeType":"ExpressionStatement","src":"1790:40:132"},{"eventCall":{"arguments":[{"id":78018,"name":"_gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78001,"src":"1860:19:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78017,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77961,"src":"1845:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78019,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1845:35:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78020,"nodeType":"EmitStatement","src":"1840:40:132"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":78004,"kind":"modifierInvocation","modifierName":{"id":78003,"name":"initializer","nameLocations":["1723:11:132"],"nodeType":"IdentifierPath","referencedDeclaration":53093,"src":"1723:11:132"},"nodeType":"ModifierInvocation","src":"1723:11:132"}],"name":"initialize","nameLocation":"1668:10:132","parameters":{"id":78002,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78001,"mutability":"mutable","name":"_gardensFeeReceiver","nameLocation":"1687:19:132","nodeType":"VariableDeclaration","scope":78022,"src":"1679:27:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78000,"name":"address","nodeType":"ElementaryTypeName","src":"1679:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1678:29:132"},"returnParameters":{"id":78005,"nodeType":"ParameterList","parameters":[],"src":"1735:0:132"},"scope":78206,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78083,"nodeType":"FunctionDefinition","src":"1957:534:132","nodes":[],"body":{"id":78082,"nodeType":"Block","src":"2116:375:132","nodes":[],"statements":[{"assignments":[78032],"declarations":[{"constant":false,"id":78032,"mutability":"mutable","name":"registryCommunity","nameLocation":"2144:17:132","nodeType":"VariableDeclaration","scope":78082,"src":"2126:35:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"},"typeName":{"id":78031,"nodeType":"UserDefinedTypeName","pathNode":{"id":78030,"name":"RegistryCommunity","nameLocations":["2126:17:132"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"2126:17:132"},"referencedDeclaration":77692,"src":"2126:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"visibility":"internal"}],"id":78037,"initialValue":{"arguments":[],"expression":{"argumentTypes":[],"id":78035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2164:21:132","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegistryCommunity_$77692_$","typeString":"function () returns (contract RegistryCommunity)"},"typeName":{"id":78034,"nodeType":"UserDefinedTypeName","pathNode":{"id":78033,"name":"RegistryCommunity","nameLocations":["2168:17:132"],"nodeType":"IdentifierPath","referencedDeclaration":77692,"src":"2168:17:132"},"referencedDeclaration":77692,"src":"2168:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}},"id":78036,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2164:23:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"nodeType":"VariableDeclarationStatement","src":"2126:61:132"},{"expression":{"id":78043,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78038,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78025,"src":"2197:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":78040,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2204:6:132","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":76107,"src":"2197:13:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78042,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2213:7:132","subExpression":{"id":78041,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77950,"src":"2213:5:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2197:23:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78044,"nodeType":"ExpressionStatement","src":"2197:23:132"},{"expression":{"id":78052,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":78045,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78025,"src":"2230:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}},"id":78047,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2237:16:132","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":76109,"src":"2230:23:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":78050,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2264:4:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactoryV0_0_$78206","typeString":"contract RegistryFactoryV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryFactoryV0_0_$78206","typeString":"contract RegistryFactoryV0_0"}],"id":78049,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2256:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78048,"name":"address","nodeType":"ElementaryTypeName","src":"2256:7:132","typeDescriptions":{}}},"id":78051,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2256:13:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2230:39:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78053,"nodeType":"ExpressionStatement","src":"2230:39:132"},{"expression":{"arguments":[{"id":78057,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78025,"src":"2309:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams memory"}],"expression":{"id":78054,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"2280:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}},"id":78056,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2298:10:132","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":76430,"src":"2280:28:132","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_struct$_InitializeParams_$76125_memory_ptr_$returns$__$","typeString":"function (struct RegistryCommunity.InitializeParams memory) external"}},"id":78058,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2280:36:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78059,"nodeType":"ExpressionStatement","src":"2280:36:132"},{"expression":{"id":78068,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78060,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"2326:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78065,"indexExpression":{"arguments":[{"id":78063,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"2350:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":78062,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2342:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78061,"name":"address","nodeType":"ElementaryTypeName","src":"2342:7:132","typeDescriptions":{}}},"id":78064,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2342:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2326:43:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage","typeString":"struct CommunityInfo storage ref"}},"id":78066,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2370:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77942,"src":"2326:49:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":78067,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2378:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2326:56:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78069,"nodeType":"ExpressionStatement","src":"2326:56:132"},{"eventCall":{"arguments":[{"arguments":[{"id":78073,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"2422:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":78072,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2414:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78071,"name":"address","nodeType":"ElementaryTypeName","src":"2414:7:132","typeDescriptions":{}}},"id":78074,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2414:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78070,"name":"CommunityCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77971,"src":"2397:16:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78075,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2397:44:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78076,"nodeType":"EmitStatement","src":"2392:49:132"},{"expression":{"arguments":[{"id":78079,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78032,"src":"2466:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunity_$77692","typeString":"contract RegistryCommunity"}],"id":78078,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2458:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":78077,"name":"address","nodeType":"ElementaryTypeName","src":"2458:7:132","typeDescriptions":{}}},"id":78080,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2458:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78029,"id":78081,"nodeType":"Return","src":"2451:33:132"}]},"functionSelector":"8a16135f","implemented":true,"kind":"function","modifiers":[],"name":"createRegistry","nameLocation":"1966:14:132","parameters":{"id":78026,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78025,"mutability":"mutable","name":"params","nameLocation":"2023:6:132","nodeType":"VariableDeclaration","scope":78083,"src":"1981:48:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_memory_ptr","typeString":"struct RegistryCommunity.InitializeParams"},"typeName":{"id":78024,"nodeType":"UserDefinedTypeName","pathNode":{"id":78023,"name":"RegistryCommunity.InitializeParams","nameLocations":["1981:17:132","1999:16:132"],"nodeType":"IdentifierPath","referencedDeclaration":76125,"src":"1981:34:132"},"referencedDeclaration":76125,"src":"1981:34:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$76125_storage_ptr","typeString":"struct RegistryCommunity.InitializeParams"}},"visibility":"internal"}],"src":"1980:50:132"},"returnParameters":{"id":78029,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78028,"mutability":"mutable","name":"_createdRegistryAddress","nameLocation":"2087:23:132","nodeType":"VariableDeclaration","scope":78083,"src":"2079:31:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78027,"name":"address","nodeType":"ElementaryTypeName","src":"2079:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2078:33:132"},"scope":78206,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78103,"nodeType":"FunctionDefinition","src":"2497:222:132","nodes":[],"body":{"id":78102,"nodeType":"Block","src":"2575:144:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":78091,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"2604:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78090,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77999,"src":"2585:18:132","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78092,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2585:35:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78093,"nodeType":"ExpressionStatement","src":"2585:35:132"},{"expression":{"id":78096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":78094,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77957,"src":"2630:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78095,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"2651:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2630:36:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":78097,"nodeType":"ExpressionStatement","src":"2630:36:132"},{"eventCall":{"arguments":[{"id":78099,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78085,"src":"2696:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78098,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77961,"src":"2681:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":78100,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2681:31:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78101,"nodeType":"EmitStatement","src":"2676:36:132"}]},"functionSelector":"8279c7db","implemented":true,"kind":"function","modifiers":[{"id":78088,"kind":"modifierInvocation","modifierName":{"id":78087,"name":"onlyOwner","nameLocations":["2565:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"2565:9:132"},"nodeType":"ModifierInvocation","src":"2565:9:132"}],"name":"setReceiverAddress","nameLocation":"2506:18:132","parameters":{"id":78086,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78085,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"2533:15:132","nodeType":"VariableDeclaration","scope":78103,"src":"2525:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78084,"name":"address","nodeType":"ElementaryTypeName","src":"2525:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2524:25:132"},"returnParameters":{"id":78089,"nodeType":"ParameterList","parameters":[],"src":"2575:0:132"},"scope":78206,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78111,"nodeType":"FunctionDefinition","src":"2725:115:132","nodes":[],"body":{"id":78110,"nodeType":"Block","src":"2798:42:132","nodes":[],"statements":[{"expression":{"id":78108,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77957,"src":"2815:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":78107,"id":78109,"nodeType":"Return","src":"2808:25:132"}]},"functionSelector":"987435be","implemented":true,"kind":"function","modifiers":[],"name":"getGardensFeeReceiver","nameLocation":"2734:21:132","parameters":{"id":78104,"nodeType":"ParameterList","parameters":[],"src":"2755:2:132"},"returnParameters":{"id":78107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78106,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78111,"src":"2789:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78105,"name":"address","nodeType":"ElementaryTypeName","src":"2789:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2788:9:132"},"scope":78206,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":78133,"nodeType":"FunctionDefinition","src":"2846:218:132","nodes":[],"body":{"id":78132,"nodeType":"Block","src":"2940:124:132","nodes":[],"statements":[{"expression":{"id":78125,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78120,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"2950:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78122,"indexExpression":{"id":78121,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78113,"src":"2966:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2950:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage","typeString":"struct CommunityInfo storage ref"}},"id":78123,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2978:3:132","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":77940,"src":"2950:31:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78124,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78115,"src":"2984:15:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2950:49:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78126,"nodeType":"ExpressionStatement","src":"2950:49:132"},{"eventCall":{"arguments":[{"id":78128,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78113,"src":"3029:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78129,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78115,"src":"3041:15:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":78127,"name":"ProtocolFeeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77967,"src":"3014:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":78130,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3014:43:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78131,"nodeType":"EmitStatement","src":"3009:48:132"}]},"functionSelector":"b5b3ca2c","implemented":true,"kind":"function","modifiers":[{"id":78118,"kind":"modifierInvocation","modifierName":{"id":78117,"name":"onlyOwner","nameLocations":["2930:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"2930:9:132"},"nodeType":"ModifierInvocation","src":"2930:9:132"}],"name":"setProtocolFee","nameLocation":"2855:14:132","parameters":{"id":78116,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78113,"mutability":"mutable","name":"_community","nameLocation":"2878:10:132","nodeType":"VariableDeclaration","scope":78133,"src":"2870:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78112,"name":"address","nodeType":"ElementaryTypeName","src":"2870:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78115,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"2898:15:132","nodeType":"VariableDeclaration","scope":78133,"src":"2890:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78114,"name":"uint256","nodeType":"ElementaryTypeName","src":"2890:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2869:45:132"},"returnParameters":{"id":78119,"nodeType":"ParameterList","parameters":[],"src":"2940:0:132"},"scope":78206,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78155,"nodeType":"FunctionDefinition","src":"3070:208:132","nodes":[],"body":{"id":78154,"nodeType":"Block","src":"3160:118:132","nodes":[],"statements":[{"expression":{"id":78147,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":78142,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"3170:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78144,"indexExpression":{"id":78143,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78135,"src":"3186:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3170:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage","typeString":"struct CommunityInfo storage ref"}},"id":78145,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3198:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77942,"src":"3170:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":78146,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"3206:8:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3170:44:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78148,"nodeType":"ExpressionStatement","src":"3170:44:132"},{"eventCall":{"arguments":[{"id":78150,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78135,"src":"3250:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":78151,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78137,"src":"3262:8:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":78149,"name":"CommunityValiditySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77977,"src":"3229:20:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":78152,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3229:42:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78153,"nodeType":"EmitStatement","src":"3224:47:132"}]},"functionSelector":"5a2c8ace","implemented":true,"kind":"function","modifiers":[{"id":78140,"kind":"modifierInvocation","modifierName":{"id":78139,"name":"onlyOwner","nameLocations":["3150:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"3150:9:132"},"nodeType":"ModifierInvocation","src":"3150:9:132"}],"name":"setCommunityValidity","nameLocation":"3079:20:132","parameters":{"id":78138,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78135,"mutability":"mutable","name":"_community","nameLocation":"3108:10:132","nodeType":"VariableDeclaration","scope":78155,"src":"3100:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78134,"name":"address","nodeType":"ElementaryTypeName","src":"3100:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":78137,"mutability":"mutable","name":"_isValid","nameLocation":"3125:8:132","nodeType":"VariableDeclaration","scope":78155,"src":"3120:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78136,"name":"bool","nodeType":"ElementaryTypeName","src":"3120:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3099:35:132"},"returnParameters":{"id":78141,"nodeType":"ParameterList","parameters":[],"src":"3160:0:132"},"scope":78206,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":78168,"nodeType":"FunctionDefinition","src":"3284:144:132","nodes":[],"body":{"id":78167,"nodeType":"Block","src":"3371:57:132","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":78162,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"3388:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78164,"indexExpression":{"id":78163,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78157,"src":"3404:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3388:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage","typeString":"struct CommunityInfo storage ref"}},"id":78165,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3416:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77942,"src":"3388:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":78161,"id":78166,"nodeType":"Return","src":"3381:40:132"}]},"functionSelector":"f5016b5e","implemented":true,"kind":"function","modifiers":[],"name":"getCommunityValidity","nameLocation":"3293:20:132","parameters":{"id":78158,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78157,"mutability":"mutable","name":"_community","nameLocation":"3322:10:132","nodeType":"VariableDeclaration","scope":78168,"src":"3314:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78156,"name":"address","nodeType":"ElementaryTypeName","src":"3314:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3313:20:132"},"returnParameters":{"id":78161,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78160,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78168,"src":"3365:4:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78159,"name":"bool","nodeType":"ElementaryTypeName","src":"3365:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3364:6:132"},"scope":78206,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":78192,"nodeType":"FunctionDefinition","src":"3434:249:132","nodes":[],"body":{"id":78191,"nodeType":"Block","src":"3518:165:132","nodes":[],"statements":[{"condition":{"id":78179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3532:34:132","subExpression":{"expression":{"baseExpression":{"id":78175,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"3533:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78177,"indexExpression":{"id":78176,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78170,"src":"3549:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3533:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage","typeString":"struct CommunityInfo storage ref"}},"id":78178,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3561:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":77942,"src":"3533:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":78185,"nodeType":"IfStatement","src":"3528:100:132","trueBody":{"id":78184,"nodeType":"Block","src":"3568:60:132","statements":[{"errorCall":{"arguments":[{"id":78181,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78170,"src":"3606:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":78180,"name":"CommunityInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77981,"src":"3589:16:132","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":78182,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3589:28:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78183,"nodeType":"RevertStatement","src":"3582:35:132"}]}},{"expression":{"expression":{"baseExpression":{"id":78186,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77955,"src":"3645:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$77943_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":78188,"indexExpression":{"id":78187,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78170,"src":"3661:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3645:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$77943_storage","typeString":"struct CommunityInfo storage ref"}},"id":78189,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3673:3:132","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":77940,"src":"3645:31:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":78174,"id":78190,"nodeType":"Return","src":"3638:38:132"}]},"functionSelector":"0a992e0c","implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"3443:14:132","parameters":{"id":78171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78170,"mutability":"mutable","name":"_community","nameLocation":"3466:10:132","nodeType":"VariableDeclaration","scope":78192,"src":"3458:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78169,"name":"address","nodeType":"ElementaryTypeName","src":"3458:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3457:20:132"},"returnParameters":{"id":78174,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78173,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78192,"src":"3509:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78172,"name":"uint256","nodeType":"ElementaryTypeName","src":"3509:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3508:9:132"},"scope":78206,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":78201,"nodeType":"FunctionDefinition","src":"3689:66:132","nodes":[],"body":{"id":78200,"nodeType":"Block","src":"3753:2:132","nodes":[],"statements":[]},"baseFunctions":[56043],"implemented":true,"kind":"function","modifiers":[{"id":78198,"kind":"modifierInvocation","modifierName":{"id":78197,"name":"onlyOwner","nameLocations":["3743:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"3743:9:132"},"nodeType":"ModifierInvocation","src":"3743:9:132"}],"name":"_authorizeUpgrade","nameLocation":"3698:17:132","overrides":{"id":78196,"nodeType":"OverrideSpecifier","overrides":[],"src":"3734:8:132"},"parameters":{"id":78195,"nodeType":"ParameterList","parameters":[{"constant":false,"id":78194,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":78201,"src":"3716:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":78193,"name":"address","nodeType":"ElementaryTypeName","src":"3716:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3715:9:132"},"returnParameters":{"id":78199,"nodeType":"ParameterList","parameters":[],"src":"3753:0:132"},"scope":78206,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":78205,"nodeType":"VariableDeclaration","src":"3761:25:132","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"3781:5:132","scope":78206,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":78202,"name":"uint256","nodeType":"ElementaryTypeName","src":"3761:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":78204,"length":{"hexValue":"3530","id":78203,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"3769:2:132","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"3761:11:132","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":77945,"name":"OwnableUpgradeable","nameLocations":["531:18:132"],"nodeType":"IdentifierPath","referencedDeclaration":52942,"src":"531:18:132"},"id":77946,"nodeType":"InheritanceSpecifier","src":"531:18:132"},{"baseName":{"id":77947,"name":"UUPSUpgradeable","nameLocations":["551:15:132"],"nodeType":"IdentifierPath","referencedDeclaration":56044,"src":"551:15:132"},"id":77948,"nodeType":"InheritanceSpecifier","src":"551:15:132"}],"canonicalName":"RegistryFactoryV0_0","contractDependencies":[77692],"contractKind":"contract","documentation":{"id":77944,"nodeType":"StructuredDocumentation","src":"453:45:132","text":"@custom:oz-upgrades-from RegistryFactory"},"fullyImplemented":true,"linearizedBaseContracts":[78206,56044,55866,55515,55525,52942,53735,53191],"name":"RegistryFactoryV0_0","nameLocation":"508:19:132","scope":78207,"usedErrors":[77981,77983]}],"license":"AGPL-3.0-only"},"id":132} \ No newline at end of file +{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunityV0_0.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_gardensFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b506080516176da61004c6000396000818161040001528181610487015281816105840152818161060b01526106fc01526176da6000f3fe608060405260043610620001075760003560e01c80638da5cb5b1162000095578063b8bed9011162000060578063b8bed90114620002b7578063c4d66de814620002d9578063f2fde38b14620002fe578063f5016b5e146200032357600080fd5b80638da5cb5b146200023a578063987435be146200025a578063affed0e0146200027a578063b5b3ca2c146200029257600080fd5b80635a2c8ace11620000d65780635a2c8ace146200019a578063715018a614620001bf5780638279c7db14620001d75780638a16135f14620001fc57600080fd5b80630a992e0c146200010c5780633659cfe614620001445780634f1ef286146200016b57806352d1902d1462000182575b600080fd5b3480156200011957600080fd5b50620001316200012b3660046200133b565b62000374565b6040519081526020015b60405180910390f35b3480156200015157600080fd5b5062000169620001633660046200133b565b620003f6565b005b620001696200017c3660046200141b565b6200057a565b3480156200018f57600080fd5b5062000131620006ef565b348015620001a757600080fd5b5062000169620001b936600462001497565b620007b6565b348015620001cc57600080fd5b506200016962000827565b348015620001e457600080fd5b5062000169620001f63660046200133b565b6200083f565b3480156200020957600080fd5b50620002216200021b3660046200156a565b620008b5565b6040516001600160a01b0390911681526020016200013b565b3480156200024757600080fd5b506033546001600160a01b031662000221565b3480156200026757600080fd5b506067546001600160a01b031662000221565b3480156200028757600080fd5b506200013160655481565b3480156200029f57600080fd5b5062000169620002b1366004620016dc565b62000a3a565b348015620002c457600080fd5b5060675462000221906001600160a01b031681565b348015620002e657600080fd5b5062000169620002f83660046200133b565b62000a96565b3480156200030b57600080fd5b50620001696200031d3660046200133b565b62000c1c565b3480156200033057600080fd5b5062000363620003423660046200133b565b6001600160a01b031660009081526066602052604090206001015460ff1690565b60405190151581526020016200013b565b6001600160a01b03811660009081526066602052604081206001015460ff16620003da576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620004855760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401620003d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620004e17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146200054e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401620003d1565b620005598162000caf565b60408051600080825260208201909252620005779183919062000cb9565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620006095760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401620003d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620006657f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614620006d25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401620003d1565b620006dd8262000caf565b620006eb8282600162000cb9565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620007915760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401620003d1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b620007c062000e6a565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6200083162000e6a565b6200083d600062000ec6565b565b6200084962000e6a565b620008548162000f25565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b6065805460009182620008c8836200170b565b9091555060808301523060a0830152604051600090620008e890620012f7565b604051809103906000f08015801562000905573d6000803e3d6000fd5b506040517f96f0adec00000000000000000000000000000000000000000000000000000000906200093b908690602401620017a8565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051620009a79062001305565b620009b4929190620018f3565b604051809103906000f080158015620009d1573d6000803e3d6000fd5b506001600160a01b0381166000818152606660209081526040918290206001908101805460ff19169091179055905191825291925082917fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a19392505050565b62000a4462000e6a565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016200081b565b600054610100900460ff161580801562000ab75750600054600160ff909116105b8062000ad35750303b15801562000ad3575060005460ff166001145b62000b475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620003d1565b6000805460ff19166001179055801562000b6b576000805461ff0019166101001790555b62000b7562000f66565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a18015620006eb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016200081b565b62000c2662000e6a565b6001600160a01b03811662000ca45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401620003d1565b620005778162000ec6565b6200057762000e6a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562000cf45762000cef8362000fdd565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562000d51575060408051601f3d908101601f1916820190925262000d4e9181019062001917565b60015b62000dc55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401620003d1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811462000e5c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401620003d1565b5062000cef838383620010aa565b6033546001600160a01b031633146200083d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003d1565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811662000577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1662000fd35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620003d1565b6200083d620010db565b6001600160a01b0381163b6200105c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401620003d1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b620010b58362001153565b600082511180620010c35750805b1562000cef57620010d5838362001195565b50505050565b600054610100900460ff16620011485760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620003d1565b6200083d3362000ec6565b6200115e8162000fdd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620011bd83836040518060600160405280602781526020016200767e60279139620011c4565b9392505050565b6060600080856001600160a01b031685604051620011e3919062001931565b600060405180830381855af49150503d806000811462001220576040519150601f19603f3d011682016040523d82523d6000602084013e62001225565b606091505b5091509150620012388683838762001242565b9695505050505050565b60608315620012b6578251600003620012ae576001600160a01b0385163b620012ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620003d1565b5081620012c2565b620012c28383620012ca565b949350505050565b815115620012db5781518083602001fd5b8060405162461bcd60e51b8152600401620003d191906200194f565b61582b806200196583390190565b6104ee806200719083390190565b6001600160a01b03811681146200057757600080fd5b8035620013368162001313565b919050565b6000602082840312156200134e57600080fd5b8135620011bd8162001313565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156200139857620013986200135b565b60405290565b600067ffffffffffffffff80841115620013bc57620013bc6200135b565b604051601f8501601f19908116603f01168101908282118183101715620013e757620013e76200135b565b816040528093508581528686860111156200140157600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156200142f57600080fd5b82356200143c8162001313565b9150602083013567ffffffffffffffff8111156200145957600080fd5b8301601f810185136200146b57600080fd5b6200147c858235602084016200139e565b9150509250929050565b803580151581146200133657600080fd5b60008060408385031215620014ab57600080fd5b8235620014b88162001313565b9150620014c86020840162001486565b90509250929050565b600082601f830112620014e357600080fd5b620011bd838335602085016200139e565b6000604082840312156200150757600080fd5b6040516040810167ffffffffffffffff82821081831117156200152e576200152e6200135b565b816040528293508435835260208501359150808211156200154e57600080fd5b506200155d85828601620014d1565b6020830152505092915050565b6000602082840312156200157d57600080fd5b813567ffffffffffffffff808211156200159657600080fd5b908301906101a08286031215620015ac57600080fd5b620015b662001371565b620015c18362001329565b8152620015d16020840162001329565b60208201526040830135604082015260608301356060820152608083013560808201526200160260a0840162001329565b60a08201526200161560c0840162001329565b60c082015260e0830135828111156200162d57600080fd5b6200163b87828601620014f4565b60e0830152506101006200165181850162001329565b9082015261012083810135838111156200166a57600080fd5b6200167888828701620014d1565b8284015250506101406200168e81850162001486565b908201526101608381013583811115620016a757600080fd5b620016b588828701620014d1565b8284015250506101809150620016cd82840162001329565b91810191909152949350505050565b60008060408385031215620016f057600080fd5b8235620016fd8162001313565b946020939093013593505050565b6000600182016200172c57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156200175057818101518382015260200162001736565b50506000910152565b600081518084526200177381602086016020860162001733565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152620012c2604085018262001759565b60208152620017c36020820183516001600160a01b03169052565b60006020830151620017e060408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516200181a60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152620018506101c086018462001787565b908601519092506101206200186f868201836001600160a01b03169052565b80870151915050601f1961014081878603018188015262001891858462001759565b945080880151925050610160620018ab8188018415159052565b80880151925050610180818786030181880152620018ca858462001759565b94508088015192505050620018e9828601826001600160a01b03169052565b5090949350505050565b6001600160a01b0383168152604060208201526000620012c2604083018462001759565b6000602082840312156200192a57600080fd5b5051919050565b600082516200194581846020870162001733565b9190910192915050565b602081526000620011bd60208301846200175956fe60a06040523060805234801561001457600080fd5b506080516157de6200004d6000396000818161181101528181611896015281816119f801528181611a7d0152611b6301526157de6000f3fe6080604052600436106103a25760003560e01c80636c53db9a116101e7578063a217fddf1161010d578063c8a593e9116100a0578063db61d65c1161006f578063db61d65c14610bdf578063ebd7dc5214610c00578063f2fde38b14610c20578063f86c5f8914610c4057600080fd5b8063c8a593e914610b68578063d547741f14610b88578063d6d8428d14610ba8578063d7050f0714610bc957600080fd5b8063b64e39af116100dc578063b64e39af14610b07578063b99b437014610b29578063bc063e1a14610b3e578063c6d572ae14610b5357600080fd5b8063a217fddf14610a58578063a230c52414610a6d578063b3f0067414610ad2578063b5058c5014610af257600080fd5b806382d6a1e71161018557806391d148541161015457806391d148541461098d57806396f0adec146109d35780639a72a86f146109f3578063a0cf0aea14610a3057600080fd5b806382d6a1e7146108c857806388cfe684146108e85780638961be6b146109595780638da5cb5b1461096f57600080fd5b8063733a2d1f116101c1578063733a2d1f146108165780637817ee4f1461084a57806378a0b8a9146108915780637b103999146108a757600080fd5b80636c53db9a146107c0578063715018a6146107e157806373265c37146107f657600080fd5b806333960459116102cc5780634f1ef2861161026a5780635ecf71c5116102395780635ecf71c51461072657806365e3864c146107465780636871eb4d1461077f57806368decabb1461079f57600080fd5b80634f1ef286146106bd57806352d1902d146106d0578063559de05d146106e55780635c94e4d21461070557600080fd5b80633659cfe6116102a65780633659cfe614610610578063397e2543146106305780633a871fe114610650578063477a5cc01461068157600080fd5b806333960459146105c45780633517aa7d146105db57806336568abe146105f057600080fd5b8063223e5479116103445780632b38c69c116103135780632b38c69c146105125780632c611c4a1461054a5780632f2ff15d1461058457806331f61bca146105a457600080fd5b8063223e54791461048d57806322bcf999146104ad578063248a9ca3146104cd57806328c309e9146104fd57600080fd5b80630d12bbdb116103805780630d12bbdb146104115780630d4a8b4914610433578063175188e8146104535780631f787d281461047357600080fd5b806301ffc9a7146103a75780630331383c146103dc57806308386eba146103fb575b600080fd5b3480156103b357600080fd5b506103c76103c2366004614830565b610c61565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b5060fc545b6040519081526020016103d3565b34801561040757600080fd5b506103ed60fe5481565b34801561041d57600080fd5b5061043161042c36600461485a565b610cb1565b005b34801561043f57600080fd5b5061043161044e366004614898565b610d3b565b34801561045f57600080fd5b5061043161046e3660046148d1565b6110a7565b34801561047f57600080fd5b5060fb546103c79060ff1681565b34801561049957600080fd5b506104316104a83660046148d1565b6110bb565b3480156104b957600080fd5b506104316104c8366004614898565b6110cc565b3480156104d957600080fd5b506103ed6104e836600461485a565b600090815260c9602052604090206001015490565b34801561050957600080fd5b506103ed6111df565b34801561051e57600080fd5b5061053261052d3660046148ee565b6112ca565b6040516001600160a01b0390911681526020016103d3565b34801561055657600080fd5b506103ed6105653660046148d1565b6001600160a01b0316600090815261010c602052604090206001015490565b34801561059057600080fd5b5061043161059f36600461491a565b611303565b3480156105b057600080fd5b506104316105bf36600461485a565b61132d565b3480156105d057600080fd5b506103ed6101025481565b3480156105e757600080fd5b5061043161136a565b3480156105fc57600080fd5b5061043161060b36600461491a565b611776565b34801561061c57600080fd5b5061043161062b3660046148d1565b611807565b34801561063c57600080fd5b5061043161064b3660046148d1565b61197f565b34801561065c57600080fd5b506103c761066b3660046148d1565b61010a6020526000908152604090205460ff1681565b34801561068d57600080fd5b506103c761069c366004614898565b61010e60209081526000928352604080842090915290825290205460ff1681565b6104316106cb366004614a80565b6119ee565b3480156106dc57600080fd5b506103ed611b56565b3480156106f157600080fd5b5061043161070036600461485a565b611c1b565b34801561071157600080fd5b5061010154610532906001600160a01b031681565b34801561073257600080fd5b5061043161074136600461485a565b611efa565b34801561075257600080fd5b506103ed610761366004614898565b61010b60209081526000928352604080842090915290825290205481565b34801561078b57600080fd5b5061043161079a366004614898565b6122ba565b3480156107ab57600080fd5b5061010354610532906001600160a01b031681565b3480156107cc57600080fd5b5061010654610532906001600160a01b031681565b3480156107ed57600080fd5b506104316124c9565b34801561080257600080fd5b5061043161081136600461485a565b6124db565b34801561082257600080fd5b506103ed7f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa81565b34801561085657600080fd5b506103ed610865366004614898565b6001600160a01b03918216600090815261010b6020908152604080832093909416825291909152205490565b34801561089d57600080fd5b506103ed60fc5481565b3480156108b357600080fd5b5061010454610532906001600160a01b031681565b3480156108d457600080fd5b506104316108e336600461485a565b61256e565b3480156108f457600080fd5b506109326109033660046148d1565b61010c602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b03909416845260208401929092521515908201526060016103d3565b34801561096557600080fd5b506103ed60fd5481565b34801561097b57600080fd5b506033546001600160a01b0316610532565b34801561099957600080fd5b506103c76109a836600461491a565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156109df57600080fd5b506104316109ee366004614b6f565b612620565b3480156109ff57600080fd5b50610a13610a0e366004614e06565b612c69565b604080519283526001600160a01b039091166020830152016103d3565b348015610a3c57600080fd5b5061053273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610a6457600080fd5b506103ed600081565b348015610a7957600080fd5b506103c7610a883660046148d1565b6001600160a01b03908116600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b348015610ade57600080fd5b5060ff54610532906001600160a01b031681565b348015610afe57600080fd5b50610431612cb5565b348015610b1357600080fd5b50610b1c612d02565b6040516103d39190614eb9565b348015610b3557600080fd5b50610431612d91565b348015610b4a57600080fd5b506103ed612ef7565b348015610b5f57600080fd5b50610b1c612f07565b348015610b7457600080fd5b50610a13610b83366004614ecc565b612f15565b348015610b9457600080fd5b50610431610ba336600461491a565b613096565b348015610bb457600080fd5b5061010754610532906001600160a01b031681565b348015610bd557600080fd5b506103ed61271081565b348015610beb57600080fd5b5061010554610532906001600160a01b031681565b348015610c0c57600080fd5b506103c7610c1b3660046148d1565b6130bb565b348015610c2c57600080fd5b50610431610c3b3660046148d1565b6130fb565b348015610c4c57600080fd5b5061010054610532906001600160a01b031681565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610cab57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb9613188565b610cc6612710600a614f58565b811115610cff576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fd8190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b610d44826131f0565b610d4d81613254565b610d56816132a7565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff1615610db7576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff1615159183019190915260fc546003846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190614f85565b6003811115610e7957610e79614f6f565b03610ef85760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190614fa2565b9050610fea565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190614f85565b6003811115610f6f57610f6f614f6f565b14610fea5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190614fa2565b90505b6001600160a01b03858116600081815261010b6020908152604080832094891680845294825280832086905583835261010e82528083208584528252808320805460ff1916600190811790915584845261010d83528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b6110af613188565b6110b8816132e7565b50565b6110c3613188565b6110b881613342565b6110d5826131f0565b6110de816132a7565b6110e833826133eb565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff16611148576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600081815261010e60209081526040808320948616808452948252808320805460ff1916905592825261010b8152828220938252929092528120556111988282613436565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b91015b60405180910390a15050565b610100546000906001600160a01b0316816111fd6127106064614f58565b60fd5460fc5461120d9190614f58565b6112179190614fbb565b905060006112286127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190614fa2565b60fc5461129d9190614f58565b6112a79190614fbb565b9050808260fc546112b89190614fdd565b6112c29190614fdd565b935050505090565b61010d60205281600052604060002081815481106112e757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600082815260c9602052604090206001015461131e81613559565b6113288383613563565b505050565b611335613188565b60fc8190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610d30565b611372613605565b33600081815261010c602052604081206101005490916001600160a01b03909116906113a16127106064614f58565b60fd5460fc546113b19190614f58565b6113bb9190614fbb565b905060006113cc6127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190614fa2565b60fc546114419190614f58565b61144b9190614fbb565b6001600160a01b03808716600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506117655760028401805460ff1916600190811790915560fc549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152610105546114fd91906001600160a01b031661365e565b6115308530838560fc546115119190614fdd565b61151b9190614fdd565b610105546001600160a01b03169291906136bc565b61156f6040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083613740565b81156115dd5760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260ff546115bf91906001600160a01b031661365e565b60ff54610105546115dd916001600160a01b0391821691168461379e565b61161c6040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082613740565b801561171e576116a560405180606001604052806026815260200161575c60269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190614ff0565b61365e565b61171e836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190614ff0565b610105546001600160a01b0316908361379e565b60fc54604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506117746001606555565b565b6001600160a01b03811633146117f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61180382826137d5565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118945760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461195a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b61196381613858565b604080516000808252602082019092526110b891839190613860565b611987613188565b611990816132a7565b61010380546001600160a01b0319166001600160a01b03838116918217909255610106546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610d30565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ad67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614611b415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b611b4a82613858565b61180382826001613860565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016117f0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611c23613605565b611c2b613a00565b33600081815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015611c8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c6f575b50505050509050600080600090505b8251811015611e5f57828181518110611cb757611cb761500d565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d369190614fa2565b91508115611e4d576001600160a01b038416600090815261010b602052604081208451849290869085908110611d6e57611d6e61500d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611da59190614fdd565b92505081905550611e4d6040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525061010b6000876001600160a01b03166001600160a01b031681526020019081526020016000206000868581518110611e1f57611e1f61500d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613740565b80611e5781615023565b915050611c9c565b5061010554611e79906001600160a01b03168430876136bc565b6001600160a01b038316600090815261010c602052604081206001018054869290611ea5908490614fdd565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a15050506110b86001606555565b611f02613605565b611f0a613a00565b33600081815261010d6020908152604080832060fc5461010c9093529083206001015490929190611f3c90869061503c565b1015611f74576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010554611f8c906001600160a01b0316848661379e565b60005b8254811015612249576000838281548110611fac57611fac61500d565b6000918252602090912001546001600160a01b03169050611fd48163f1801e6160e01b613a60565b1561217d576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614fa2565b9250600061010b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815481106120a3576120a361500d565b60009182526020808320909101546001600160a01b0316835282019290925260400190205490508084111561210e576040517f8a11f31800000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016117f0565b6001600160a01b038616600090815261010b60205260408120865486929088908790811061213e5761213e61500d565b60009182526020808320909101546001600160a01b031683528201929092526040018120805490919061217290849061503c565b909155505050612236565b8354849061218d9060019061503c565b8154811061219d5761219d61500d565b9060005260206000200160009054906101000a90046001600160a01b03168483815481106121cd576121cd61500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508380548061220b5761220b61504f565b600082815260209020810160001990810180546001600160a01b0319169055019055612236816132e7565b508061224181615023565b915050611f8f565b506001600160a01b038316600090815261010c60205260408120600101805486929061227690849061503c565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff89101611ee5565b6122c2613605565b6122ca613188565b60fb5460ff16612306576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905261236a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515908201526123b983613a83565b6001600160a01b03838116600090815261010c6020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff191690556101055490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615065565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506118036001606555565b6124d1613ba6565b6117746000613c00565b6124e3613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa15801561252e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125569190810190615082565b602001519050612565816132a7565b611803816132e7565b612576613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa1580156125c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125e99190810190615082565b6020015190506125f8816132a7565b6126126001600160a01b03821663f1801e6160e01b613a60565b156118035761180381613342565b600054610100900460ff16158080156126405750600054600160ff909116105b8061265a5750303b15801561265a575060005460ff166001145b6126cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016117f0565b6000805460ff1916600117905580156126ef576000805461ff0019166101001790555b6126f7613c52565b6126ff613cc5565b612707613d38565b6127327f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa6000613da3565b61273f82602001516132a7565b61274d8261010001516132a7565b8151612758906132a7565b6127658260a001516132a7565b6127738261018001516132a7565b60608201511561278a5761278a8260c001516132a7565b815161010780546001600160a01b039283166001600160a01b0319918216179091556020840151610105805491909316911617905560408201516000036127fd576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604082015160fc55606082015160fd5561014082015160fb805460ff191691151591909117905561012082015161010890612838908261522c565b506101608201516101099061284d908261522c565b5060a082015161010080546001600160a01b03199081166001600160a01b0393841617825560c085015160ff805483169185169190911790559084015161010680548316828516179055610180850151610101805490931693169290921790556128d8907f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa90613563565b61010760009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129509190614ff0565b61010480546001600160a01b0319166001600160a01b0392831617905561010654604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906152ec565b9050600081516002612a069190614fdd565b67ffffffffffffffff811115612a1e57612a1e61493f565b604051908082528060200260200182016040528015612a47578160200160208202803683370190505b50905060005b8251811015612aac57828181518110612a6857612a6861500d565b6020026020010151828281518110612a8257612a8261500d565b6001600160a01b039092166020928302919091019091015280612aa481615023565b915050612a4d565b506101065481516001600160a01b03909116908290612acd9060019061503c565b81518110612add57612add61500d565b60200260200101906001600160a01b031690816001600160a01b031681525050308160028351612b0d919061503c565b81518110612b1d57612b1d61500d565b6001600160a01b03928316602091820292909201015261010454608086015160e08701516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f92612b879291610108913090889060040161547e565b6020604051808303816000875af1158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190614fa2565b60fe558051612be19061010f90602084019061479c565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed0320560fe546101088660e00151604051612c1d939291906154cc565b60405180910390a150508015611803576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016111d3565b61010154610102805460009283928392612c9a926001600160a01b03169184612c9183615023565b91905055613dee565b9050612ca881878787612f15565b9250925050935093915050565b610103546001600160a01b03163314612cfa576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611774613e42565b6101098054612d10906151a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3c906151a4565b8015612d895780601f10612d5e57610100808354040283529160200191612d89565b820191906000526020600020905b815481529060010190602001808311612d6c57829003601f168201915b505050505081565b612d99613605565b33612da3816131f0565b612dac81613a83565b6001600160a01b03808216600081815261010c602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945561010d90529182209091612e259190614801565b61010554602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea29190615065565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506117746001606555565b612f04612710600a614f58565b81565b6101088054612d10906151a4565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03861615612f3f5750845b869150600061010f805480602002602001604051908101604052809291908181526020018280548015612f9b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f7d575b50506101075460fe546040519596506001600160a01b039091169463e1007d4a9450909250879150612fd1908b9060200161550b565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161300797969594939291906155b4565b6020604051808303816000875af1158015613026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304a9190614fa2565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a89604051613083959493929190615620565b60405180910390a1505094509492505050565b600082815260c960205260409020600101546130b181613559565b61132883836137d5565b6001600160a01b03811660009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604081205460ff16610cab565b613103613ba6565b6001600160a01b03811661317f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016117f0565b6110b881613c00565b3360009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604090205460ff16611774576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808216600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190526110b857604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038116600090815261010a602052604090205460ff166110b8576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166110b8576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132f0816132a7565b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610d30565b6001600160a01b038116600090815261010a602052604090205460ff1615613396576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610d30565b806001600160a01b0316826001600160a01b031614611803576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600090815261010d60205260408120905b815481101561355357826001600160a01b03168282815481106134765761347661500d565b6000918252602090912001546001600160a01b03160361354157815482906134a09060019061503c565b815481106134b0576134b061500d565b9060005260206000200160009054906101000a90046001600160a01b03168282815481106134e0576134e061500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508180548061351e5761351e61504f565b600082815260209020810160001990810180546001600160a01b03191690550190555b8061354b81615023565b915050613451565b50505050565b6110b88133613e9f565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135c13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6002606554036136575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016117f0565b6002606555565b611803828260405160240161367492919061565a565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03808516602483015283166044820152606481018290526135539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f35565b6118038282604051602401613756929190615685565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03831660248201526044810182905261132890849063a9059cbb60e01b90606401613709565b6001606555565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff161561180357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6110b8613ba6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613893576113288361401d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614fa2565b60015b61395f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146139f45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016117f0565b506113288383836140db565b33600090815261010c6020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff161515910181905261177457604051636a5cfb6d60e01b815260040160405180910390fd5b6000613a6b83614100565b8015613a7c5750613a7c8383614133565b9392505050565b6001600160a01b038116600090815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015613aee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ad0575b5050505050905060005b815181101561132857818181518110613b1357613b1361500d565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b158015613b7b57600080fd5b505af1158015613b8f573d6000803e3d6000fd5b505050508080613b9e90615023565b915050613af8565b6033546001600160a01b031633146117745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016117f0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613cbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6117746141bc565b600054610100900460ff16613d305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b611774614230565b600054610100900460ff166117745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b600082815260c96020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050613e3a848261429b565b949350505050565b610103805461010680546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357613ed281614338565b613edd83602061434a565b604051602001613eee9291906156a7565b60408051601f198184030181529082905262461bcd60e51b82526117f091600401614eb9565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000613f8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661452b9092919063ffffffff16565b9050805160001480613fab575080806020019051810190613fab9190615065565b6113285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016117f0565b6001600160a01b0381163b61409a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6140e48361453a565b6000825111806140f15750805b1561132857613553838361457a565b6000614113826301ffc9a760e01b614133565b8015610cab575061412c826001600160e01b0319614133565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141a5575060208210155b80156141b15750600081115b979650505050505050565b600054610100900460ff166142275760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b61177433613c00565b600054610100900460ff166137ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610cab5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016117f0565b6060610cab6001600160a01b03831660145b60606000614359836002614f58565b614364906002614fdd565b67ffffffffffffffff81111561437c5761437c61493f565b6040519080825280601f01601f1916602001820160405280156143a6576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143dd576143dd61500d565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106144285761442861500d565b60200101906001600160f81b031916908160001a905350600061444c846002614f58565b614457906001614fdd565b90505b60018111156144dc577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106144985761449861500d565b1a60f81b8282815181106144ae576144ae61500d565b60200101906001600160f81b031916908160001a90535060049490941c936144d581615728565b905061445a565b508315613a7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016117f0565b6060613e3a848460008561459f565b6145438161401d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a7c838360405180606001604052806027815260200161578260279139614686565b6060824710156146175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016117f0565b600080866001600160a01b03168587604051614633919061573f565b60006040518083038185875af1925050503d8060008114614670576040519150601f19603f3d011682016040523d82523d6000602084013e614675565b606091505b50915091506141b1878383876146fe565b6060600080856001600160a01b0316856040516146a3919061573f565b600060405180830381855af49150503d80600081146146de576040519150601f19603f3d011682016040523d82523d6000602084013e6146e3565b606091505b50915091506146f4868383876146fe565b9695505050505050565b6060831561476d578251600003614766576001600160a01b0385163b6147665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016117f0565b5081613e3a565b613e3a83838151156147825781518083602001fd5b8060405162461bcd60e51b81526004016117f09190614eb9565b8280548282559060005260206000209081019282156147f1579160200282015b828111156147f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147bc565b506147fd92915061481b565b5090565b50805460008255906000526020600020908101906110b891905b5b808211156147fd576000815560010161481c565b60006020828403121561484257600080fd5b81356001600160e01b031981168114613a7c57600080fd5b60006020828403121561486c57600080fd5b5035919050565b6001600160a01b03811681146110b857600080fd5b803561489381614873565b919050565b600080604083850312156148ab57600080fd5b82356148b681614873565b915060208301356148c681614873565b809150509250929050565b6000602082840312156148e357600080fd5b8135613a7c81614873565b6000806040838503121561490157600080fd5b823561490c81614873565b946020939093013593505050565b6000806040838503121561492d57600080fd5b8235915060208301356148c681614873565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156149785761497861493f565b60405290565b6040516101a0810167ffffffffffffffff811182821017156149785761497861493f565b604051610120810167ffffffffffffffff811182821017156149785761497861493f565b60405160c0810167ffffffffffffffff811182821017156149785761497861493f565b604051601f8201601f1916810167ffffffffffffffff81118282101715614a1257614a1261493f565b604052919050565b600067ffffffffffffffff821115614a3457614a3461493f565b50601f01601f191660200190565b6000614a55614a5084614a1a565b6149e9565b9050828152838383011115614a6957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614a9357600080fd5b8235614a9e81614873565b9150602083013567ffffffffffffffff811115614aba57600080fd5b8301601f81018513614acb57600080fd5b614ada85823560208401614a42565b9150509250929050565b600082601f830112614af557600080fd5b613a7c83833560208501614a42565b600060408284031215614b1657600080fd5b614b1e614955565b905081358152602082013567ffffffffffffffff811115614b3e57600080fd5b614b4a84828501614ae4565b60208301525092915050565b80151581146110b857600080fd5b803561489381614b56565b600060208284031215614b8157600080fd5b813567ffffffffffffffff80821115614b9957600080fd5b908301906101a08286031215614bae57600080fd5b614bb661497e565b614bbf83614888565b8152614bcd60208401614888565b6020820152604083013560408201526060830135606082015260808301356080820152614bfc60a08401614888565b60a0820152614c0d60c08401614888565b60c082015260e083013582811115614c2457600080fd5b614c3087828601614b04565b60e083015250610100614c44818501614888565b908201526101208381013583811115614c5c57600080fd5b614c6888828701614ae4565b828401525050610140614c7c818501614b64565b908201526101608381013583811115614c9457600080fd5b614ca088828701614ae4565b8284015250506101809150614cb6828401614888565b91810191909152949350505050565b80356003811061489357600080fd5b600481106110b857600080fd5b803561489381614cd4565b600060208284031215614cfe57600080fd5b6040516020810181811067ffffffffffffffff82111715614d2157614d2161493f565b6040529135825250919050565b600060408284031215614d4057600080fd5b614d48614955565b90508135614d5581614873565b808252506020820135602082015292915050565b60006101408284031215614d7c57600080fd5b614d846149a2565b9050614d8f82614888565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152614dc560a08301614cc5565b60a0820152614dd660c08301614ce1565b60c0820152614de88360e08401614cec565b60e0820152610100614dfc84828501614d2e565b9082015292915050565b60008060006101808486031215614e1c57600080fd5b8335614e2781614873565b9250614e368560208601614d69565b915061016084013567ffffffffffffffff811115614e5357600080fd5b614e5f86828701614b04565b9150509250925092565b60005b83811015614e84578181015183820152602001614e6c565b50506000910152565b60008151808452614ea5816020860160208601614e69565b601f01601f19169290920160200192915050565b602081526000613a7c6020830184614e8d565b6000806000806101a08587031215614ee357600080fd5b8435614eee81614873565b93506020850135614efe81614873565b9250614f0d8660408701614d69565b915061018085013567ffffffffffffffff811115614f2a57600080fd5b614f3687828801614b04565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610cab57610cab614f42565b634e487b7160e01b600052602160045260246000fd5b600060208284031215614f9757600080fd5b8151613a7c81614cd4565b600060208284031215614fb457600080fd5b5051919050565b600082614fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610cab57610cab614f42565b60006020828403121561500257600080fd5b8151613a7c81614873565b634e487b7160e01b600052603260045260246000fd5b60006001820161503557615035614f42565b5060010190565b81810381811115610cab57610cab614f42565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561507757600080fd5b8151613a7c81614b56565b6000602080838503121561509557600080fd5b825167ffffffffffffffff808211156150ad57600080fd5b9084019060c082870312156150c157600080fd5b6150c96149c6565b82518152838301516150da81614873565b8185015260408301516150ec81614873565b604082015260608301518281111561510357600080fd5b83016040818903121561511557600080fd5b61511d614955565b81518152858201518481111561513257600080fd5b82019350601f8401891361514557600080fd5b83519150615155614a5083614a1a565b828152898784870101111561516957600080fd5b61517883888301898801614e69565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c908216806151b857607f821691505b6020821081036151d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561132857600081815260208120601f850160051c810160208610156152055750805b601f850160051c820191505b8181101561522457828155600101615211565b505050505050565b815167ffffffffffffffff8111156152465761524661493f565b61525a8161525484546151a4565b846151de565b602080601f83116001811461528f57600084156152775750858301515b600019600386901b1c1916600185901b178555615224565b600085815260208120601f198616915b828110156152be5788860151825594840194600190910190840161529f565b50858210156152dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156152ff57600080fd5b825167ffffffffffffffff8082111561531757600080fd5b818501915085601f83011261532b57600080fd5b81518181111561533d5761533d61493f565b8060051b915061534e8483016149e9565b818152918301840191848101908884111561536857600080fd5b938501935b83851015615392578451925061538283614873565b828252938501939085019061536d565b98975050505050505050565b600081546153ab816151a4565b8085526020600183811680156153c857600181146153e257615410565b60ff1985168884015283151560051b880183019550615410565b866000528260002060005b858110156154085781548a82018601529083019084016153ed565b890184019650505b505050505092915050565b805182526000602082015160406020850152613e3a6040850182614e8d565b600081518084526020808501945080840160005b838110156154735781516001600160a01b03168752958201959082019060010161544e565b509495945050505050565b85815260a06020820152600061549760a083018761539e565b82810360408401526154a9818761541b565b90506001600160a01b03851660608401528281036080840152615392818561543a565b8381526060602082015260006154e5606083018561539e565b82810360408401526146f4818561541b565b6004811061550757615507614f6f565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061555e5761555e614f6f565b8060a08401525060c083015161557760c08401826154f7565b5060e083015161558a60e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526155dd60e0840189614e8d565b818816606085015286608085015283810360a08501526155fd818761541b565b91505082810360c0840152615612818561543a565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a060808301526141b160a083018461541b565b60408152600061566d6040830185614e8d565b90506001600160a01b03831660208301529392505050565b6040815260006156986040830185614e8d565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156df816017850160208801614e69565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571c816028840160208801614e69565b01602801949350505050565b60008161573757615737614f42565b506000190190565b60008251615751818460208701614e69565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122051339265b354dd1f0973bfe78d4afe3466e76f16690932b2a80ac453990a8ee864736f6c6343000813003360806040526040516104ee3803806104ee833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c760279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60be806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea2646970667358221220f4cffab674c83839981fe52657fafdf25167bc852fbc2c61b9e46bd7af0d093b64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fa64240f43c148796781f50e8d8df9e9cc93009a9f81d24ed05d070fb8d24efe64736f6c63430008130033","sourceMap":"593:3520:132:-:0;;;1088:4:67;1045:48;;593:3520:132;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610620001075760003560e01c80638da5cb5b1162000095578063b8bed9011162000060578063b8bed90114620002b7578063c4d66de814620002d9578063f2fde38b14620002fe578063f5016b5e146200032357600080fd5b80638da5cb5b146200023a578063987435be146200025a578063affed0e0146200027a578063b5b3ca2c146200029257600080fd5b80635a2c8ace11620000d65780635a2c8ace146200019a578063715018a614620001bf5780638279c7db14620001d75780638a16135f14620001fc57600080fd5b80630a992e0c146200010c5780633659cfe614620001445780634f1ef286146200016b57806352d1902d1462000182575b600080fd5b3480156200011957600080fd5b50620001316200012b3660046200133b565b62000374565b6040519081526020015b60405180910390f35b3480156200015157600080fd5b5062000169620001633660046200133b565b620003f6565b005b620001696200017c3660046200141b565b6200057a565b3480156200018f57600080fd5b5062000131620006ef565b348015620001a757600080fd5b5062000169620001b936600462001497565b620007b6565b348015620001cc57600080fd5b506200016962000827565b348015620001e457600080fd5b5062000169620001f63660046200133b565b6200083f565b3480156200020957600080fd5b50620002216200021b3660046200156a565b620008b5565b6040516001600160a01b0390911681526020016200013b565b3480156200024757600080fd5b506033546001600160a01b031662000221565b3480156200026757600080fd5b506067546001600160a01b031662000221565b3480156200028757600080fd5b506200013160655481565b3480156200029f57600080fd5b5062000169620002b1366004620016dc565b62000a3a565b348015620002c457600080fd5b5060675462000221906001600160a01b031681565b348015620002e657600080fd5b5062000169620002f83660046200133b565b62000a96565b3480156200030b57600080fd5b50620001696200031d3660046200133b565b62000c1c565b3480156200033057600080fd5b5062000363620003423660046200133b565b6001600160a01b031660009081526066602052604090206001015460ff1690565b60405190151581526020016200013b565b6001600160a01b03811660009081526066602052604081206001015460ff16620003da576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620004855760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401620003d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620004e17f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146200054e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401620003d1565b620005598162000caf565b60408051600080825260208201909252620005779183919062000cb9565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620006095760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608401620003d1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620006657f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614620006d25760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608401620003d1565b620006dd8262000caf565b620006eb8282600162000cb9565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620007915760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401620003d1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b620007c062000e6a565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b6200083162000e6a565b6200083d600062000ec6565b565b6200084962000e6a565b620008548162000f25565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a150565b6065805460009182620008c8836200170b565b9091555060808301523060a0830152604051600090620008e890620012f7565b604051809103906000f08015801562000905573d6000803e3d6000fd5b506040517f96f0adec00000000000000000000000000000000000000000000000000000000906200093b908690602401620017a8565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff00000000000000000000000000000000000000000000000000000000909416939093179092529051620009a79062001305565b620009b4929190620018f3565b604051809103906000f080158015620009d1573d6000803e3d6000fd5b506001600160a01b0381166000818152606660209081526040918290206001908101805460ff19169091179055905191825291925082917fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a19392505050565b62000a4462000e6a565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016200081b565b600054610100900460ff161580801562000ab75750600054600160ff909116105b8062000ad35750303b15801562000ad3575060005460ff166001145b62000b475760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401620003d1565b6000805460ff19166001179055801562000b6b576000805461ff0019166101001790555b62000b7562000f66565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a18015620006eb576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016200081b565b62000c2662000e6a565b6001600160a01b03811662000ca45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401620003d1565b620005778162000ec6565b6200057762000e6a565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562000cf45762000cef8362000fdd565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562000d51575060408051601f3d908101601f1916820190925262000d4e9181019062001917565b60015b62000dc55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f7420555550530000000000000000000000000000000000006064820152608401620003d1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811462000e5c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c655555494400000000000000000000000000000000000000000000006064820152608401620003d1565b5062000cef838383620010aa565b6033546001600160a01b031633146200083d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620003d1565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03811662000577576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600054610100900460ff1662000fd35760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620003d1565b6200083d620010db565b6001600160a01b0381163b6200105c5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e7472616374000000000000000000000000000000000000006064820152608401620003d1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b620010b58362001153565b600082511180620010c35750805b1562000cef57620010d5838362001195565b50505050565b600054610100900460ff16620011485760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608401620003d1565b6200083d3362000ec6565b6200115e8162000fdd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620011bd83836040518060600160405280602781526020016200767e60279139620011c4565b9392505050565b6060600080856001600160a01b031685604051620011e3919062001931565b600060405180830381855af49150503d806000811462001220576040519150601f19603f3d011682016040523d82523d6000602084013e62001225565b606091505b5091509150620012388683838762001242565b9695505050505050565b60608315620012b6578251600003620012ae576001600160a01b0385163b620012ae5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401620003d1565b5081620012c2565b620012c28383620012ca565b949350505050565b815115620012db5781518083602001fd5b8060405162461bcd60e51b8152600401620003d191906200194f565b61582b806200196583390190565b6104ee806200719083390190565b6001600160a01b03811681146200057757600080fd5b8035620013368162001313565b919050565b6000602082840312156200134e57600080fd5b8135620011bd8162001313565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156200139857620013986200135b565b60405290565b600067ffffffffffffffff80841115620013bc57620013bc6200135b565b604051601f8501601f19908116603f01168101908282118183101715620013e757620013e76200135b565b816040528093508581528686860111156200140157600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156200142f57600080fd5b82356200143c8162001313565b9150602083013567ffffffffffffffff8111156200145957600080fd5b8301601f810185136200146b57600080fd5b6200147c858235602084016200139e565b9150509250929050565b803580151581146200133657600080fd5b60008060408385031215620014ab57600080fd5b8235620014b88162001313565b9150620014c86020840162001486565b90509250929050565b600082601f830112620014e357600080fd5b620011bd838335602085016200139e565b6000604082840312156200150757600080fd5b6040516040810167ffffffffffffffff82821081831117156200152e576200152e6200135b565b816040528293508435835260208501359150808211156200154e57600080fd5b506200155d85828601620014d1565b6020830152505092915050565b6000602082840312156200157d57600080fd5b813567ffffffffffffffff808211156200159657600080fd5b908301906101a08286031215620015ac57600080fd5b620015b662001371565b620015c18362001329565b8152620015d16020840162001329565b60208201526040830135604082015260608301356060820152608083013560808201526200160260a0840162001329565b60a08201526200161560c0840162001329565b60c082015260e0830135828111156200162d57600080fd5b6200163b87828601620014f4565b60e0830152506101006200165181850162001329565b9082015261012083810135838111156200166a57600080fd5b6200167888828701620014d1565b8284015250506101406200168e81850162001486565b908201526101608381013583811115620016a757600080fd5b620016b588828701620014d1565b8284015250506101809150620016cd82840162001329565b91810191909152949350505050565b60008060408385031215620016f057600080fd5b8235620016fd8162001313565b946020939093013593505050565b6000600182016200172c57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156200175057818101518382015260200162001736565b50506000910152565b600081518084526200177381602086016020860162001733565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152620012c2604085018262001759565b60208152620017c36020820183516001600160a01b03169052565b60006020830151620017e060408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516200181a60c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a06101008181860152620018506101c086018462001787565b908601519092506101206200186f868201836001600160a01b03169052565b80870151915050601f1961014081878603018188015262001891858462001759565b945080880151925050610160620018ab8188018415159052565b80880151925050610180818786030181880152620018ca858462001759565b94508088015192505050620018e9828601826001600160a01b03169052565b5090949350505050565b6001600160a01b0383168152604060208201526000620012c2604083018462001759565b6000602082840312156200192a57600080fd5b5051919050565b600082516200194581846020870162001733565b9190910192915050565b602081526000620011bd60208301846200175956fe60a06040523060805234801561001457600080fd5b506080516157de6200004d6000396000818161181101528181611896015281816119f801528181611a7d0152611b6301526157de6000f3fe6080604052600436106103a25760003560e01c80636c53db9a116101e7578063a217fddf1161010d578063c8a593e9116100a0578063db61d65c1161006f578063db61d65c14610bdf578063ebd7dc5214610c00578063f2fde38b14610c20578063f86c5f8914610c4057600080fd5b8063c8a593e914610b68578063d547741f14610b88578063d6d8428d14610ba8578063d7050f0714610bc957600080fd5b8063b64e39af116100dc578063b64e39af14610b07578063b99b437014610b29578063bc063e1a14610b3e578063c6d572ae14610b5357600080fd5b8063a217fddf14610a58578063a230c52414610a6d578063b3f0067414610ad2578063b5058c5014610af257600080fd5b806382d6a1e71161018557806391d148541161015457806391d148541461098d57806396f0adec146109d35780639a72a86f146109f3578063a0cf0aea14610a3057600080fd5b806382d6a1e7146108c857806388cfe684146108e85780638961be6b146109595780638da5cb5b1461096f57600080fd5b8063733a2d1f116101c1578063733a2d1f146108165780637817ee4f1461084a57806378a0b8a9146108915780637b103999146108a757600080fd5b80636c53db9a146107c0578063715018a6146107e157806373265c37146107f657600080fd5b806333960459116102cc5780634f1ef2861161026a5780635ecf71c5116102395780635ecf71c51461072657806365e3864c146107465780636871eb4d1461077f57806368decabb1461079f57600080fd5b80634f1ef286146106bd57806352d1902d146106d0578063559de05d146106e55780635c94e4d21461070557600080fd5b80633659cfe6116102a65780633659cfe614610610578063397e2543146106305780633a871fe114610650578063477a5cc01461068157600080fd5b806333960459146105c45780633517aa7d146105db57806336568abe146105f057600080fd5b8063223e5479116103445780632b38c69c116103135780632b38c69c146105125780632c611c4a1461054a5780632f2ff15d1461058457806331f61bca146105a457600080fd5b8063223e54791461048d57806322bcf999146104ad578063248a9ca3146104cd57806328c309e9146104fd57600080fd5b80630d12bbdb116103805780630d12bbdb146104115780630d4a8b4914610433578063175188e8146104535780631f787d281461047357600080fd5b806301ffc9a7146103a75780630331383c146103dc57806308386eba146103fb575b600080fd5b3480156103b357600080fd5b506103c76103c2366004614830565b610c61565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b5060fc545b6040519081526020016103d3565b34801561040757600080fd5b506103ed60fe5481565b34801561041d57600080fd5b5061043161042c36600461485a565b610cb1565b005b34801561043f57600080fd5b5061043161044e366004614898565b610d3b565b34801561045f57600080fd5b5061043161046e3660046148d1565b6110a7565b34801561047f57600080fd5b5060fb546103c79060ff1681565b34801561049957600080fd5b506104316104a83660046148d1565b6110bb565b3480156104b957600080fd5b506104316104c8366004614898565b6110cc565b3480156104d957600080fd5b506103ed6104e836600461485a565b600090815260c9602052604090206001015490565b34801561050957600080fd5b506103ed6111df565b34801561051e57600080fd5b5061053261052d3660046148ee565b6112ca565b6040516001600160a01b0390911681526020016103d3565b34801561055657600080fd5b506103ed6105653660046148d1565b6001600160a01b0316600090815261010c602052604090206001015490565b34801561059057600080fd5b5061043161059f36600461491a565b611303565b3480156105b057600080fd5b506104316105bf36600461485a565b61132d565b3480156105d057600080fd5b506103ed6101025481565b3480156105e757600080fd5b5061043161136a565b3480156105fc57600080fd5b5061043161060b36600461491a565b611776565b34801561061c57600080fd5b5061043161062b3660046148d1565b611807565b34801561063c57600080fd5b5061043161064b3660046148d1565b61197f565b34801561065c57600080fd5b506103c761066b3660046148d1565b61010a6020526000908152604090205460ff1681565b34801561068d57600080fd5b506103c761069c366004614898565b61010e60209081526000928352604080842090915290825290205460ff1681565b6104316106cb366004614a80565b6119ee565b3480156106dc57600080fd5b506103ed611b56565b3480156106f157600080fd5b5061043161070036600461485a565b611c1b565b34801561071157600080fd5b5061010154610532906001600160a01b031681565b34801561073257600080fd5b5061043161074136600461485a565b611efa565b34801561075257600080fd5b506103ed610761366004614898565b61010b60209081526000928352604080842090915290825290205481565b34801561078b57600080fd5b5061043161079a366004614898565b6122ba565b3480156107ab57600080fd5b5061010354610532906001600160a01b031681565b3480156107cc57600080fd5b5061010654610532906001600160a01b031681565b3480156107ed57600080fd5b506104316124c9565b34801561080257600080fd5b5061043161081136600461485a565b6124db565b34801561082257600080fd5b506103ed7f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa81565b34801561085657600080fd5b506103ed610865366004614898565b6001600160a01b03918216600090815261010b6020908152604080832093909416825291909152205490565b34801561089d57600080fd5b506103ed60fc5481565b3480156108b357600080fd5b5061010454610532906001600160a01b031681565b3480156108d457600080fd5b506104316108e336600461485a565b61256e565b3480156108f457600080fd5b506109326109033660046148d1565b61010c602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b03909416845260208401929092521515908201526060016103d3565b34801561096557600080fd5b506103ed60fd5481565b34801561097b57600080fd5b506033546001600160a01b0316610532565b34801561099957600080fd5b506103c76109a836600461491a565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156109df57600080fd5b506104316109ee366004614b6f565b612620565b3480156109ff57600080fd5b50610a13610a0e366004614e06565b612c69565b604080519283526001600160a01b039091166020830152016103d3565b348015610a3c57600080fd5b5061053273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610a6457600080fd5b506103ed600081565b348015610a7957600080fd5b506103c7610a883660046148d1565b6001600160a01b03908116600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b348015610ade57600080fd5b5060ff54610532906001600160a01b031681565b348015610afe57600080fd5b50610431612cb5565b348015610b1357600080fd5b50610b1c612d02565b6040516103d39190614eb9565b348015610b3557600080fd5b50610431612d91565b348015610b4a57600080fd5b506103ed612ef7565b348015610b5f57600080fd5b50610b1c612f07565b348015610b7457600080fd5b50610a13610b83366004614ecc565b612f15565b348015610b9457600080fd5b50610431610ba336600461491a565b613096565b348015610bb457600080fd5b5061010754610532906001600160a01b031681565b348015610bd557600080fd5b506103ed61271081565b348015610beb57600080fd5b5061010554610532906001600160a01b031681565b348015610c0c57600080fd5b506103c7610c1b3660046148d1565b6130bb565b348015610c2c57600080fd5b50610431610c3b3660046148d1565b6130fb565b348015610c4c57600080fd5b5061010054610532906001600160a01b031681565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610cab57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb9613188565b610cc6612710600a614f58565b811115610cff576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fd8190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b610d44826131f0565b610d4d81613254565b610d56816132a7565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff1615610db7576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff1615159183019190915260fc546003846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190614f85565b6003811115610e7957610e79614f6f565b03610ef85760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190614fa2565b9050610fea565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190614f85565b6003811115610f6f57610f6f614f6f565b14610fea5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190614fa2565b90505b6001600160a01b03858116600081815261010b6020908152604080832094891680845294825280832086905583835261010e82528083208584528252808320805460ff1916600190811790915584845261010d83528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b6110af613188565b6110b8816132e7565b50565b6110c3613188565b6110b881613342565b6110d5826131f0565b6110de816132a7565b6110e833826133eb565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff16611148576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600081815261010e60209081526040808320948616808452948252808320805460ff1916905592825261010b8152828220938252929092528120556111988282613436565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b91015b60405180910390a15050565b610100546000906001600160a01b0316816111fd6127106064614f58565b60fd5460fc5461120d9190614f58565b6112179190614fbb565b905060006112286127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190614fa2565b60fc5461129d9190614f58565b6112a79190614fbb565b9050808260fc546112b89190614fdd565b6112c29190614fdd565b935050505090565b61010d60205281600052604060002081815481106112e757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600082815260c9602052604090206001015461131e81613559565b6113288383613563565b505050565b611335613188565b60fc8190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610d30565b611372613605565b33600081815261010c602052604081206101005490916001600160a01b03909116906113a16127106064614f58565b60fd5460fc546113b19190614f58565b6113bb9190614fbb565b905060006113cc6127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190614fa2565b60fc546114419190614f58565b61144b9190614fbb565b6001600160a01b03808716600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506117655760028401805460ff1916600190811790915560fc549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152610105546114fd91906001600160a01b031661365e565b6115308530838560fc546115119190614fdd565b61151b9190614fdd565b610105546001600160a01b03169291906136bc565b61156f6040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083613740565b81156115dd5760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260ff546115bf91906001600160a01b031661365e565b60ff54610105546115dd916001600160a01b0391821691168461379e565b61161c6040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082613740565b801561171e576116a560405180606001604052806026815260200161575c60269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190614ff0565b61365e565b61171e836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190614ff0565b610105546001600160a01b0316908361379e565b60fc54604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506117746001606555565b565b6001600160a01b03811633146117f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61180382826137d5565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118945760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461195a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b61196381613858565b604080516000808252602082019092526110b891839190613860565b611987613188565b611990816132a7565b61010380546001600160a01b0319166001600160a01b03838116918217909255610106546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610d30565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ad67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614611b415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b611b4a82613858565b61180382826001613860565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016117f0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611c23613605565b611c2b613a00565b33600081815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015611c8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c6f575b50505050509050600080600090505b8251811015611e5f57828181518110611cb757611cb761500d565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d369190614fa2565b91508115611e4d576001600160a01b038416600090815261010b602052604081208451849290869085908110611d6e57611d6e61500d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611da59190614fdd565b92505081905550611e4d6040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525061010b6000876001600160a01b03166001600160a01b031681526020019081526020016000206000868581518110611e1f57611e1f61500d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613740565b80611e5781615023565b915050611c9c565b5061010554611e79906001600160a01b03168430876136bc565b6001600160a01b038316600090815261010c602052604081206001018054869290611ea5908490614fdd565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a15050506110b86001606555565b611f02613605565b611f0a613a00565b33600081815261010d6020908152604080832060fc5461010c9093529083206001015490929190611f3c90869061503c565b1015611f74576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010554611f8c906001600160a01b0316848661379e565b60005b8254811015612249576000838281548110611fac57611fac61500d565b6000918252602090912001546001600160a01b03169050611fd48163f1801e6160e01b613a60565b1561217d576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614fa2565b9250600061010b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815481106120a3576120a361500d565b60009182526020808320909101546001600160a01b0316835282019290925260400190205490508084111561210e576040517f8a11f31800000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016117f0565b6001600160a01b038616600090815261010b60205260408120865486929088908790811061213e5761213e61500d565b60009182526020808320909101546001600160a01b031683528201929092526040018120805490919061217290849061503c565b909155505050612236565b8354849061218d9060019061503c565b8154811061219d5761219d61500d565b9060005260206000200160009054906101000a90046001600160a01b03168483815481106121cd576121cd61500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508380548061220b5761220b61504f565b600082815260209020810160001990810180546001600160a01b0319169055019055612236816132e7565b508061224181615023565b915050611f8f565b506001600160a01b038316600090815261010c60205260408120600101805486929061227690849061503c565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff89101611ee5565b6122c2613605565b6122ca613188565b60fb5460ff16612306576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905261236a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515908201526123b983613a83565b6001600160a01b03838116600090815261010c6020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff191690556101055490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615065565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506118036001606555565b6124d1613ba6565b6117746000613c00565b6124e3613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa15801561252e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125569190810190615082565b602001519050612565816132a7565b611803816132e7565b612576613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa1580156125c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125e99190810190615082565b6020015190506125f8816132a7565b6126126001600160a01b03821663f1801e6160e01b613a60565b156118035761180381613342565b600054610100900460ff16158080156126405750600054600160ff909116105b8061265a5750303b15801561265a575060005460ff166001145b6126cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016117f0565b6000805460ff1916600117905580156126ef576000805461ff0019166101001790555b6126f7613c52565b6126ff613cc5565b612707613d38565b6127327f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa6000613da3565b61273f82602001516132a7565b61274d8261010001516132a7565b8151612758906132a7565b6127658260a001516132a7565b6127738261018001516132a7565b60608201511561278a5761278a8260c001516132a7565b815161010780546001600160a01b039283166001600160a01b0319918216179091556020840151610105805491909316911617905560408201516000036127fd576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604082015160fc55606082015160fd5561014082015160fb805460ff191691151591909117905561012082015161010890612838908261522c565b506101608201516101099061284d908261522c565b5060a082015161010080546001600160a01b03199081166001600160a01b0393841617825560c085015160ff805483169185169190911790559084015161010680548316828516179055610180850151610101805490931693169290921790556128d8907f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa90613563565b61010760009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129509190614ff0565b61010480546001600160a01b0319166001600160a01b0392831617905561010654604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906152ec565b9050600081516002612a069190614fdd565b67ffffffffffffffff811115612a1e57612a1e61493f565b604051908082528060200260200182016040528015612a47578160200160208202803683370190505b50905060005b8251811015612aac57828181518110612a6857612a6861500d565b6020026020010151828281518110612a8257612a8261500d565b6001600160a01b039092166020928302919091019091015280612aa481615023565b915050612a4d565b506101065481516001600160a01b03909116908290612acd9060019061503c565b81518110612add57612add61500d565b60200260200101906001600160a01b031690816001600160a01b031681525050308160028351612b0d919061503c565b81518110612b1d57612b1d61500d565b6001600160a01b03928316602091820292909201015261010454608086015160e08701516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f92612b879291610108913090889060040161547e565b6020604051808303816000875af1158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190614fa2565b60fe558051612be19061010f90602084019061479c565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed0320560fe546101088660e00151604051612c1d939291906154cc565b60405180910390a150508015611803576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016111d3565b61010154610102805460009283928392612c9a926001600160a01b03169184612c9183615023565b91905055613dee565b9050612ca881878787612f15565b9250925050935093915050565b610103546001600160a01b03163314612cfa576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611774613e42565b6101098054612d10906151a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3c906151a4565b8015612d895780601f10612d5e57610100808354040283529160200191612d89565b820191906000526020600020905b815481529060010190602001808311612d6c57829003601f168201915b505050505081565b612d99613605565b33612da3816131f0565b612dac81613a83565b6001600160a01b03808216600081815261010c602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945561010d90529182209091612e259190614801565b61010554602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea29190615065565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506117746001606555565b612f04612710600a614f58565b81565b6101088054612d10906151a4565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03861615612f3f5750845b869150600061010f805480602002602001604051908101604052809291908181526020018280548015612f9b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f7d575b50506101075460fe546040519596506001600160a01b039091169463e1007d4a9450909250879150612fd1908b9060200161550b565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161300797969594939291906155b4565b6020604051808303816000875af1158015613026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304a9190614fa2565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a89604051613083959493929190615620565b60405180910390a1505094509492505050565b600082815260c960205260409020600101546130b181613559565b61132883836137d5565b6001600160a01b03811660009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604081205460ff16610cab565b613103613ba6565b6001600160a01b03811661317f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016117f0565b6110b881613c00565b3360009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604090205460ff16611774576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808216600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190526110b857604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038116600090815261010a602052604090205460ff166110b8576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166110b8576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132f0816132a7565b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610d30565b6001600160a01b038116600090815261010a602052604090205460ff1615613396576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610d30565b806001600160a01b0316826001600160a01b031614611803576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600090815261010d60205260408120905b815481101561355357826001600160a01b03168282815481106134765761347661500d565b6000918252602090912001546001600160a01b03160361354157815482906134a09060019061503c565b815481106134b0576134b061500d565b9060005260206000200160009054906101000a90046001600160a01b03168282815481106134e0576134e061500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508180548061351e5761351e61504f565b600082815260209020810160001990810180546001600160a01b03191690550190555b8061354b81615023565b915050613451565b50505050565b6110b88133613e9f565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135c13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6002606554036136575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016117f0565b6002606555565b611803828260405160240161367492919061565a565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03808516602483015283166044820152606481018290526135539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f35565b6118038282604051602401613756929190615685565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03831660248201526044810182905261132890849063a9059cbb60e01b90606401613709565b6001606555565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff161561180357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6110b8613ba6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613893576113288361401d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614fa2565b60015b61395f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146139f45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016117f0565b506113288383836140db565b33600090815261010c6020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff161515910181905261177457604051636a5cfb6d60e01b815260040160405180910390fd5b6000613a6b83614100565b8015613a7c5750613a7c8383614133565b9392505050565b6001600160a01b038116600090815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015613aee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ad0575b5050505050905060005b815181101561132857818181518110613b1357613b1361500d565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b158015613b7b57600080fd5b505af1158015613b8f573d6000803e3d6000fd5b505050508080613b9e90615023565b915050613af8565b6033546001600160a01b031633146117745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016117f0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613cbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6117746141bc565b600054610100900460ff16613d305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b611774614230565b600054610100900460ff166117745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b600082815260c96020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050613e3a848261429b565b949350505050565b610103805461010680546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357613ed281614338565b613edd83602061434a565b604051602001613eee9291906156a7565b60408051601f198184030181529082905262461bcd60e51b82526117f091600401614eb9565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000613f8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661452b9092919063ffffffff16565b9050805160001480613fab575080806020019051810190613fab9190615065565b6113285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016117f0565b6001600160a01b0381163b61409a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6140e48361453a565b6000825111806140f15750805b1561132857613553838361457a565b6000614113826301ffc9a760e01b614133565b8015610cab575061412c826001600160e01b0319614133565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141a5575060208210155b80156141b15750600081115b979650505050505050565b600054610100900460ff166142275760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b61177433613c00565b600054610100900460ff166137ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610cab5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016117f0565b6060610cab6001600160a01b03831660145b60606000614359836002614f58565b614364906002614fdd565b67ffffffffffffffff81111561437c5761437c61493f565b6040519080825280601f01601f1916602001820160405280156143a6576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143dd576143dd61500d565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106144285761442861500d565b60200101906001600160f81b031916908160001a905350600061444c846002614f58565b614457906001614fdd565b90505b60018111156144dc577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106144985761449861500d565b1a60f81b8282815181106144ae576144ae61500d565b60200101906001600160f81b031916908160001a90535060049490941c936144d581615728565b905061445a565b508315613a7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016117f0565b6060613e3a848460008561459f565b6145438161401d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a7c838360405180606001604052806027815260200161578260279139614686565b6060824710156146175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016117f0565b600080866001600160a01b03168587604051614633919061573f565b60006040518083038185875af1925050503d8060008114614670576040519150601f19603f3d011682016040523d82523d6000602084013e614675565b606091505b50915091506141b1878383876146fe565b6060600080856001600160a01b0316856040516146a3919061573f565b600060405180830381855af49150503d80600081146146de576040519150601f19603f3d011682016040523d82523d6000602084013e6146e3565b606091505b50915091506146f4868383876146fe565b9695505050505050565b6060831561476d578251600003614766576001600160a01b0385163b6147665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016117f0565b5081613e3a565b613e3a83838151156147825781518083602001fd5b8060405162461bcd60e51b81526004016117f09190614eb9565b8280548282559060005260206000209081019282156147f1579160200282015b828111156147f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147bc565b506147fd92915061481b565b5090565b50805460008255906000526020600020908101906110b891905b5b808211156147fd576000815560010161481c565b60006020828403121561484257600080fd5b81356001600160e01b031981168114613a7c57600080fd5b60006020828403121561486c57600080fd5b5035919050565b6001600160a01b03811681146110b857600080fd5b803561489381614873565b919050565b600080604083850312156148ab57600080fd5b82356148b681614873565b915060208301356148c681614873565b809150509250929050565b6000602082840312156148e357600080fd5b8135613a7c81614873565b6000806040838503121561490157600080fd5b823561490c81614873565b946020939093013593505050565b6000806040838503121561492d57600080fd5b8235915060208301356148c681614873565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156149785761497861493f565b60405290565b6040516101a0810167ffffffffffffffff811182821017156149785761497861493f565b604051610120810167ffffffffffffffff811182821017156149785761497861493f565b60405160c0810167ffffffffffffffff811182821017156149785761497861493f565b604051601f8201601f1916810167ffffffffffffffff81118282101715614a1257614a1261493f565b604052919050565b600067ffffffffffffffff821115614a3457614a3461493f565b50601f01601f191660200190565b6000614a55614a5084614a1a565b6149e9565b9050828152838383011115614a6957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614a9357600080fd5b8235614a9e81614873565b9150602083013567ffffffffffffffff811115614aba57600080fd5b8301601f81018513614acb57600080fd5b614ada85823560208401614a42565b9150509250929050565b600082601f830112614af557600080fd5b613a7c83833560208501614a42565b600060408284031215614b1657600080fd5b614b1e614955565b905081358152602082013567ffffffffffffffff811115614b3e57600080fd5b614b4a84828501614ae4565b60208301525092915050565b80151581146110b857600080fd5b803561489381614b56565b600060208284031215614b8157600080fd5b813567ffffffffffffffff80821115614b9957600080fd5b908301906101a08286031215614bae57600080fd5b614bb661497e565b614bbf83614888565b8152614bcd60208401614888565b6020820152604083013560408201526060830135606082015260808301356080820152614bfc60a08401614888565b60a0820152614c0d60c08401614888565b60c082015260e083013582811115614c2457600080fd5b614c3087828601614b04565b60e083015250610100614c44818501614888565b908201526101208381013583811115614c5c57600080fd5b614c6888828701614ae4565b828401525050610140614c7c818501614b64565b908201526101608381013583811115614c9457600080fd5b614ca088828701614ae4565b8284015250506101809150614cb6828401614888565b91810191909152949350505050565b80356003811061489357600080fd5b600481106110b857600080fd5b803561489381614cd4565b600060208284031215614cfe57600080fd5b6040516020810181811067ffffffffffffffff82111715614d2157614d2161493f565b6040529135825250919050565b600060408284031215614d4057600080fd5b614d48614955565b90508135614d5581614873565b808252506020820135602082015292915050565b60006101408284031215614d7c57600080fd5b614d846149a2565b9050614d8f82614888565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152614dc560a08301614cc5565b60a0820152614dd660c08301614ce1565b60c0820152614de88360e08401614cec565b60e0820152610100614dfc84828501614d2e565b9082015292915050565b60008060006101808486031215614e1c57600080fd5b8335614e2781614873565b9250614e368560208601614d69565b915061016084013567ffffffffffffffff811115614e5357600080fd5b614e5f86828701614b04565b9150509250925092565b60005b83811015614e84578181015183820152602001614e6c565b50506000910152565b60008151808452614ea5816020860160208601614e69565b601f01601f19169290920160200192915050565b602081526000613a7c6020830184614e8d565b6000806000806101a08587031215614ee357600080fd5b8435614eee81614873565b93506020850135614efe81614873565b9250614f0d8660408701614d69565b915061018085013567ffffffffffffffff811115614f2a57600080fd5b614f3687828801614b04565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610cab57610cab614f42565b634e487b7160e01b600052602160045260246000fd5b600060208284031215614f9757600080fd5b8151613a7c81614cd4565b600060208284031215614fb457600080fd5b5051919050565b600082614fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610cab57610cab614f42565b60006020828403121561500257600080fd5b8151613a7c81614873565b634e487b7160e01b600052603260045260246000fd5b60006001820161503557615035614f42565b5060010190565b81810381811115610cab57610cab614f42565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561507757600080fd5b8151613a7c81614b56565b6000602080838503121561509557600080fd5b825167ffffffffffffffff808211156150ad57600080fd5b9084019060c082870312156150c157600080fd5b6150c96149c6565b82518152838301516150da81614873565b8185015260408301516150ec81614873565b604082015260608301518281111561510357600080fd5b83016040818903121561511557600080fd5b61511d614955565b81518152858201518481111561513257600080fd5b82019350601f8401891361514557600080fd5b83519150615155614a5083614a1a565b828152898784870101111561516957600080fd5b61517883888301898801614e69565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c908216806151b857607f821691505b6020821081036151d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561132857600081815260208120601f850160051c810160208610156152055750805b601f850160051c820191505b8181101561522457828155600101615211565b505050505050565b815167ffffffffffffffff8111156152465761524661493f565b61525a8161525484546151a4565b846151de565b602080601f83116001811461528f57600084156152775750858301515b600019600386901b1c1916600185901b178555615224565b600085815260208120601f198616915b828110156152be5788860151825594840194600190910190840161529f565b50858210156152dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156152ff57600080fd5b825167ffffffffffffffff8082111561531757600080fd5b818501915085601f83011261532b57600080fd5b81518181111561533d5761533d61493f565b8060051b915061534e8483016149e9565b818152918301840191848101908884111561536857600080fd5b938501935b83851015615392578451925061538283614873565b828252938501939085019061536d565b98975050505050505050565b600081546153ab816151a4565b8085526020600183811680156153c857600181146153e257615410565b60ff1985168884015283151560051b880183019550615410565b866000528260002060005b858110156154085781548a82018601529083019084016153ed565b890184019650505b505050505092915050565b805182526000602082015160406020850152613e3a6040850182614e8d565b600081518084526020808501945080840160005b838110156154735781516001600160a01b03168752958201959082019060010161544e565b509495945050505050565b85815260a06020820152600061549760a083018761539e565b82810360408401526154a9818761541b565b90506001600160a01b03851660608401528281036080840152615392818561543a565b8381526060602082015260006154e5606083018561539e565b82810360408401526146f4818561541b565b6004811061550757615507614f6f565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061555e5761555e614f6f565b8060a08401525060c083015161557760c08401826154f7565b5060e083015161558a60e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526155dd60e0840189614e8d565b818816606085015286608085015283810360a08501526155fd818761541b565b91505082810360c0840152615612818561543a565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a060808301526141b160a083018461541b565b60408152600061566d6040830185614e8d565b90506001600160a01b03831660208301529392505050565b6040815260006156986040830185614e8d565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156df816017850160208801614e69565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571c816028840160208801614e69565b01602801949350505050565b60008161573757615737614f42565b506000190190565b60008251615751818460208701614e69565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122051339265b354dd1f0973bfe78d4afe3466e76f16690932b2a80ac453990a8ee864736f6c6343000813003360806040526040516104ee3803806104ee833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c760279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60be806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea2646970667358221220f4cffab674c83839981fe52657fafdf25167bc852fbc2c61b9e46bd7af0d093b64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220fa64240f43c148796781f50e8d8df9e9cc93009a9f81d24ed05d070fb8d24efe64736f6c63430008130033","sourceMap":"593:3520:132:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3758:249;;;;;;;;;;-1:-1:-1;3758:249:132;;;;;:::i;:::-;;:::i;:::-;;;710:25:145;;;698:2;683:18;3758:249:132;;;;;;;;3143:195:67;;;;;;;;;;-1:-1:-1;3143:195:67;;;;;:::i;:::-;;:::i;:::-;;3657:220;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;3394:208:132:-;;;;;;;;;;-1:-1:-1;3394:208:132;;;;;:::i;:::-;;:::i;2085:101:46:-;;;;;;;;;;;;;:::i;2821:222:132:-;;;;;;;;;;-1:-1:-1;2821:222:132;;;;;:::i;:::-;;:::i;2051:764::-;;;;;;;;;;-1:-1:-1;2051:764:132;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5932:55:145;;;5914:74;;5902:2;5887:18;2051:764:132;5768:226:145;1462:85:46;;;;;;;;;;-1:-1:-1;1534:6:46;;-1:-1:-1;;;;;1534:6:46;1462:85;;3049:115:132;;;;;;;;;;-1:-1:-1;3139:18:132;;-1:-1:-1;;;;;3139:18:132;3049:115;;667:20;;;;;;;;;;;;;;;;3170:218;;;;;;;;;;-1:-1:-1;3170:218:132;;;;;:::i;:::-;;:::i;749:33::-;;;;;;;;;;-1:-1:-1;749:33:132;;;;-1:-1:-1;;;;;749:33:132;;;1753:292;;;;;;;;;;-1:-1:-1;1753:292:132;;;;;:::i;:::-;;:::i;2335:198:46:-;;;;;;;;;;-1:-1:-1;2335:198:46;;;;;:::i;:::-;;:::i;3608:144:132:-;;;;;;;;;;-1:-1:-1;3608:144:132;;;;;:::i;:::-;-1:-1:-1;;;;;3712:27:132;3689:4;3712:27;;;:15;:27;;;;;:33;;;;;;3608:144;;;;6580:14:145;;6573:22;6555:41;;6543:2;6528:18;3608:144:132;6415:187:145;3758:249:132;-1:-1:-1;;;;;3857:27:132;;3833:7;3857:27;;;:15;:27;;;;;:33;;;;;3852:100;;3913:28;;;;;-1:-1:-1;;;;;5932:55:145;;3913:28:132;;;5914:74:145;5887:18;;3913:28:132;;;;;;;;3852:100;-1:-1:-1;;;;;;3969:27:132;;;;;:15;:27;;;;;:31;;3758:249::o;3143:195:67:-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:145;1629:80:67;;;6791:21:145;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:145;;;6931:42;6990:19;;1629:80:67;6607:408:145;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:145;1719:87:67;;;7204:21:145;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:145;;;7344:42;7403:19;;1719:87:67;7020:408:145;1719:87:67;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;:::-;3143:195:::0;:::o;3657:220::-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:145;1629:80:67;;;6791:21:145;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:145;;;6931:42;6990:19;;1629:80:67;6607:408:145;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:145;1719:87:67;;;7204:21:145;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:145;;;7344:42;7403:19;;1719:87:67;7020:408:145;1719:87:67;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;:::-;3657:220:::0;;:::o;2762:131::-;2840:7;2080:4;-1:-1:-1;;;;;2089:6:67;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:67;;7635:2:145;2064:92:67;;;7617:21:145;7674:2;7654:18;;;7647:30;7713:34;7693:18;;;7686:62;7784:26;7764:18;;;7757:54;7828:19;;2064:92:67;7433:420:145;2064:92:67;-1:-1:-1;1030:66:64::1;2762:131:67::0;:::o;3394:208:132:-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;3494:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;3494:44:132::1;::::0;::::1;;::::0;;::::1;::::0;;;3553:42;;8026:74:145;;;8116:18;;;8109:50;3553:42:132::1;::::0;7999:18:145;3553:42:132::1;;;;;;;;3394:208:::0;;:::o;2085:101:46:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2821:222:132:-;1355:13:46;:11;:13::i;:::-;2909:35:132::1;2928:15;2909:18;:35::i;:::-;2954:18;:36:::0;;-1:-1:-1;;2954:36:132::1;-1:-1:-1::0;;;;;2954:36:132;::::1;::::0;;::::1;::::0;;;3005:31:::1;::::0;5914:74:145;;;3005:31:132::1;::::0;5902:2:145;5887:18;3005:31:132::1;;;;;;;2821:222:::0;:::o;2051:764::-;2240:5;:7;;2177:31;;;2240:7;;;:::i;:::-;;;;-1:-1:-1;2224:13:132;;;:23;2291:4;2257:23;;;:39;2366:27;;-1:-1:-1;;2366:27:132;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2408:73:132;;2431:41;;2408:73;;2474:6;;2408:73;;;:::i;:::-;;;;-1:-1:-1;;2408:73:132;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:163;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2650:43:132;;2502:39;2650:43;;;:15;:43;;;;;;;;;2702:4;2650:49;;;:56;;-1:-1:-1;;2650:56:132;;;;;;2721:44;;5914:74:145;;;2650:43:132;;-1:-1:-1;2650:43:132;;2721:44;;5887:18:145;2721:44:132;;;;;;;2790:17;2051:764;-1:-1:-1;;;2051:764:132:o;3170:218::-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;3274:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;3338:43;;11650:74:145;;;11740:18;;11733:34;;;3338:43:132::1;::::0;11623:18:145;3338:43:132::1;11476:297:145::0;1753:292:132;3279:19:48;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:48;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:48;1713:19:51;:23;;;3387:66:48;;-1:-1:-1;3436:12:48;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:48;;11980:2:145;3325:201:48;;;11962:21:145;12019:2;11999:18;;;11992:30;12058:34;12038:18;;;12031:62;12129:16;12109:18;;;12102:44;12163:19;;3325:201:48;11778:410:145;3325:201:48;3536:12;:16;;-1:-1:-1;;3536:16:48;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:48;;;;;3562:65;1839:16:132::1;:14;:16::i;:::-;1873:1;1865:5;:9:::0;1884:18:::1;:40:::0;;-1:-1:-1;;1884:40:132::1;-1:-1:-1::0;;;;;1884:40:132;::::1;::::0;;::::1;::::0;;;1939:35:::1;::::0;5914:74:145;;;1939:35:132::1;::::0;5902:2:145;5887:18;1939:35:132::1;;;;;;;3651:14:48::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:48;;;3721:14;;-1:-1:-1;12345:36:145;;3721:14:48;;12333:2:145;12318:18;3721:14:48;12193:194:145;2335:198:46;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:46;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:46;;12594:2:145;2415:73:46::1;::::0;::::1;12576:21:145::0;12633:2;12613:18;;;12606:30;12672:34;12652:18;;;12645:62;12743:8;12723:18;;;12716:36;12769:19;;2415:73:46::1;12392:402:145::0;2415:73:46::1;2498:28;2517:8;2498:18;:28::i;4013:66:132:-:0;1355:13:46;:11;:13::i;2494:922:64:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;:::-;2494:922;;;:::o;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:64;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:64;;;;;;;;-1:-1:-1;;3046:52:64;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:64;;13190:2:145;3262:56:64;;;13172:21:145;13229:2;13209:18;;;13202:30;13268:34;13248:18;;;13241:62;13339:16;13319:18;;;13312:44;13373:19;;3262:56:64;12988:410:145;3042:291:64;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:64;;13605:2:145;3140:82:64;;;13587:21:145;13644:2;13624:18;;;13617:30;13683:34;13663:18;;;13656:62;13754:11;13734:18;;;13727:39;13783:19;;3140:82:64;13403:405:145;3140:82:64;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;1620:130:46:-;1534:6;;-1:-1:-1;;;;;1534:6:46;965:10:52;1683:23:46;1675:68;;;;-1:-1:-1;;;1675:68:46;;14015:2:145;1675:68:46;;;13997:21:145;;;14034:18;;;14027:30;14093:34;14073:18;;;14066:62;14145:18;;1675:68:46;13813:356:145;2687:187:46;2779:6;;;-1:-1:-1;;;;;2795:17:46;;;-1:-1:-1;;2795:17:46;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1614:133:132:-;-1:-1:-1;;;;;1688:22:132;;1684:56;;1719:21;;;;;;;;;;;;;;1024:95:46;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14376:2:145;5366:69:48;;;14358:21:145;14415:2;14395:18;;;14388:30;14454:34;14434:18;;;14427:62;-1:-1:-1;;;14505:18:145;;;14498:41;14556:19;;5366:69:48;14174:407:145;5366:69:48;1086:26:46::1;:24;:26::i;1406:259:64:-:0;-1:-1:-1;;;;;1713:19:51;;;1479:95:64;;;;-1:-1:-1;;;1479:95:64;;14788:2:145;1479:95:64;;;14770:21:145;14827:2;14807:18;;;14800:30;14866:34;14846:18;;;14839:62;14937:15;14917:18;;;14910:43;14970:19;;1479:95:64;14586:409:145;1479:95:64;1030:66;1584:74;;-1:-1:-1;;1584:74:64;-1:-1:-1;;;;;1584:74:64;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2057:265;;;:::o;1125:111:46:-;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14376:2:145;5366:69:48;;;14358:21:145;14415:2;14395:18;;;14388:30;14454:34;14434:18;;;14427:62;-1:-1:-1;;;14505:18:145;;;14498:41;14556:19;;5366:69:48;14174:407:145;5366:69:48;1197:32:46::1;965:10:52::0;1197:18:46::1;:32::i;1771:152:64:-:0;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:64;;;;;;;;1771:152;:::o;6674:198:79:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:79:o;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:79;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:79:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:51;;;8113:60:79;;;;-1:-1:-1;;;8113:60:79;;15494:2:145;8113:60:79;;;15476:21:145;15533:2;15513:18;;;15506:30;15572:31;15552:18;;;15545:59;15621:18;;8113:60:79;15292:353:145;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:145:-;-1:-1:-1;;;;;93:5:145;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;746:184::-;-1:-1:-1;;;795:1:145;788:88;895:4;892:1;885:15;919:4;916:1;909:15;935:250;1002:2;996:9;1044:6;1032:19;;1081:18;1066:34;;1102:22;;;1063:62;1060:88;;;1128:18;;:::i;:::-;1164:2;1157:22;935:250;:::o;1190:631::-;1254:5;1284:18;1325:2;1317:6;1314:14;1311:40;;;1331:18;;:::i;:::-;1406:2;1400:9;1374:2;1460:15;;-1:-1:-1;;1456:24:145;;;1482:2;1452:33;1448:42;1436:55;;;1506:18;;;1526:22;;;1503:46;1500:72;;;1552:18;;:::i;:::-;1592:10;1588:2;1581:22;1621:6;1612:15;;1651:6;1643;1636:22;1691:3;1682:6;1677:3;1673:16;1670:25;1667:45;;;1708:1;1705;1698:12;1667:45;1758:6;1753:3;1746:4;1738:6;1734:17;1721:44;1813:1;1806:4;1797:6;1789;1785:19;1781:30;1774:41;;;;1190:631;;;;;:::o;1826:584::-;1903:6;1911;1964:2;1952:9;1943:7;1939:23;1935:32;1932:52;;;1980:1;1977;1970:12;1932:52;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;-1:-1:-1;2144:2:145;2129:18;;2116:32;2171:18;2160:30;;2157:50;;;2203:1;2200;2193:12;2157:50;2226:22;;2279:4;2271:13;;2267:27;-1:-1:-1;2257:55:145;;2308:1;2305;2298:12;2257:55;2331:73;2396:7;2391:2;2378:16;2373:2;2369;2365:11;2331:73;:::i;:::-;2321:83;;;1826:584;;;;;:::o;2597:160::-;2662:20;;2718:13;;2711:21;2701:32;;2691:60;;2747:1;2744;2737:12;2762:315;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;2943:9;2930:23;2962:31;2987:5;2962:31;:::i;:::-;3012:5;-1:-1:-1;3036:35:145;3067:2;3052:18;;3036:35;:::i;:::-;3026:45;;2762:315;;;;;:::o;3082:221::-;3125:5;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;3218:79;3293:3;3284:6;3271:20;3264:4;3256:6;3252:17;3218:79;:::i;3308:610::-;3363:5;3411:4;3399:9;3394:3;3390:19;3386:30;3383:50;;;3429:1;3426;3419:12;3383:50;3462:4;3456:11;3506:4;3498:6;3494:17;3530:18;3598:6;3586:10;3583:22;3578:2;3566:10;3563:18;3560:46;3557:72;;;3609:18;;:::i;:::-;3651:10;3645:4;3638:24;3680:6;3671:15;;3723:9;3710:23;3702:6;3695:39;3785:2;3774:9;3770:18;3757:32;3743:46;;3812:2;3804:6;3801:14;3798:34;;;3828:1;3825;3818:12;3798:34;;3865:46;3907:3;3898:6;3887:9;3883:22;3865:46;:::i;:::-;3860:2;3852:6;3848:15;3841:71;;;3308:610;;;;:::o;3923:1708::-;4017:6;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4126:9;4113:23;4155:18;4196:2;4188:6;4185:14;4182:34;;;4212:1;4209;4202:12;4182:34;4235:22;;;;4291:6;4273:16;;;4269:29;4266:49;;;4311:1;4308;4301:12;4266:49;4337:17;;:::i;:::-;4377:22;4396:2;4377:22;:::i;:::-;4370:5;4363:37;4432:31;4459:2;4455;4451:11;4432:31;:::i;:::-;4427:2;4420:5;4416:14;4409:55;4517:2;4513;4509:11;4496:25;4491:2;4484:5;4480:14;4473:49;4575:2;4571;4567:11;4554:25;4549:2;4542:5;4538:14;4531:49;4634:3;4630:2;4626:12;4613:26;4607:3;4600:5;4596:15;4589:51;4673:32;4700:3;4696:2;4692:12;4673:32;:::i;:::-;4667:3;4660:5;4656:15;4649:57;4739:32;4766:3;4762:2;4758:12;4739:32;:::i;:::-;4733:3;4726:5;4722:15;4715:57;4818:3;4814:2;4810:12;4797:26;4848:2;4838:8;4835:16;4832:36;;;4864:1;4861;4854:12;4832:36;4901:54;4947:7;4936:8;4932:2;4928:17;4901:54;:::i;:::-;4895:3;4888:5;4884:15;4877:79;;4975:3;5010:31;5037:2;5033;5029:11;5010:31;:::i;:::-;4994:14;;;4987:55;5061:3;5102:11;;;5089:25;5126:16;;;5123:36;;;5155:1;5152;5145:12;5123:36;5191:45;5228:7;5217:8;5213:2;5209:17;5191:45;:::i;:::-;5186:2;5179:5;5175:14;5168:69;;;5256:3;5291:28;5315:2;5311;5307:11;5291:28;:::i;:::-;5275:14;;;5268:52;5339:3;5380:11;;;5367:25;5404:16;;;5401:36;;;5433:1;5430;5423:12;5401:36;5469:45;5506:7;5495:8;5491:2;5487:17;5469:45;:::i;:::-;5464:2;5457:5;5453:14;5446:69;;;5534:3;5524:13;;5569:31;5596:2;5592;5588:11;5569:31;:::i;:::-;5553:14;;;5546:55;;;;5557:5;3923:1708;-1:-1:-1;;;;3923:1708:145:o;5999:315::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;6304:2;6289:18;;;;6276:32;;-1:-1:-1;;;5999:315:145:o;8170:289::-;8209:3;8230:17;;;8227:197;;-1:-1:-1;;;8277:1:145;8270:88;8381:4;8378:1;8371:15;8409:4;8406:1;8399:15;8227:197;-1:-1:-1;8451:1:145;8440:13;;8170:289::o;8464:250::-;8549:1;8559:113;8573:6;8570:1;8567:13;8559:113;;;8649:11;;;8643:18;8630:11;;;8623:39;8595:2;8588:10;8559:113;;;-1:-1:-1;;8706:1:145;8688:16;;8681:27;8464:250::o;8719:271::-;8761:3;8799:5;8793:12;8826:6;8821:3;8814:19;8842:76;8911:6;8904:4;8899:3;8895:14;8888:4;8881:5;8877:16;8842:76;:::i;:::-;8972:2;8951:15;-1:-1:-1;;8947:29:145;8938:39;;;;8979:4;8934:50;;8719:271;-1:-1:-1;;8719:271:145:o;8995:252::-;9082:5;9076:12;9071:3;9064:25;9046:3;9135:4;9128:5;9124:16;9118:23;9173:4;9166;9161:3;9157:14;9150:28;9194:47;9235:4;9230:3;9226:14;9212:12;9194:47;:::i;9252:1876::-;9451:2;9440:9;9433:21;9463:53;9512:2;9501:9;9497:18;9488:6;9482:13;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;9463:53;9414:4;9563:2;9555:6;9551:15;9545:22;9576:52;9624:2;9613:9;9609:18;9595:12;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;9576:52;;9682:2;9674:6;9670:15;9664:22;9659:2;9648:9;9644:18;9637:50;9742:2;9734:6;9730:15;9724:22;9718:3;9707:9;9703:19;9696:51;9802:3;9794:6;9790:16;9784:23;9778:3;9767:9;9763:19;9756:52;9857:3;9849:6;9845:16;9839:23;9871:55;9921:3;9910:9;9906:19;9890:14;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;9871:55;-1:-1:-1;9975:3:145;9963:16;;9957:23;-1:-1:-1;;;;;5702:54:145;;10039:3;10024:19;;5690:67;9989:55;10093:3;10085:6;10081:16;10075:23;10117:6;10142:3;10181:2;10176;10165:9;10161:18;10154:30;10207:63;10265:3;10254:9;10250:19;10234:14;10207:63;:::i;:::-;10307:15;;;10301:22;10193:77;;-1:-1:-1;10342:3:145;10354:54;10389:18;;;10301:22;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;10354:54;10457:2;10449:6;10445:15;10439:22;10417:44;;;10484:2;10480:7;10506:3;10573:2;10561:9;10553:6;10549:22;10545:31;10540:2;10529:9;10525:18;10518:59;10600:41;10634:6;10618:14;10600:41;:::i;:::-;10586:55;;10690:2;10682:6;10678:15;10672:22;10650:44;;;10713:3;10725:51;10772:2;10761:9;10757:18;10741:14;6389:13;6382:21;6370:34;;6319:91;10725:51;10825:2;10817:6;10813:15;10807:22;10785:44;;;10848:3;10915:2;10903:9;10895:6;10891:22;10887:31;10882:2;10871:9;10867:18;10860:59;10942:41;10976:6;10960:14;10942:41;:::i;:::-;10928:55;;11032:2;11024:6;11020:15;11014:22;10992:44;;;;11045:54;11095:2;11084:9;11080:18;11064:14;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;11045:54;-1:-1:-1;11116:6:145;;9252:1876;-1:-1:-1;;;;9252:1876:145:o;11133:338::-;-1:-1:-1;;;;;11312:6:145;11308:55;11297:9;11290:74;11400:2;11395;11384:9;11380:18;11373:30;11271:4;11420:45;11461:2;11450:9;11446:18;11438:6;11420:45;:::i;12799:184::-;12869:6;12922:2;12910:9;12901:7;12897:23;12893:32;12890:52;;;12938:1;12935;12928:12;12890:52;-1:-1:-1;12961:16:145;;12799:184;-1:-1:-1;12799:184:145:o;15000:287::-;15129:3;15167:6;15161:13;15183:66;15242:6;15237:3;15230:4;15222:6;15218:17;15183:66;:::i;:::-;15265:16;;;;;15000:287;-1:-1:-1;;15000:287:145:o;15650:220::-;15799:2;15788:9;15781:21;15762:4;15819:45;15860:2;15849:9;15845:18;15837:6;15819:45;:::i","linkReferences":{},"immutableReferences":{"55944":[{"start":1024,"length":32},{"start":1159,"length":32},{"start":1412,"length":32},{"start":1547,"length":32},{"start":1788,"length":32}]}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","initialize(address)":"c4d66de8","nonce()":"affed0e0","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunityV0_0.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gardensFeeReceiver\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-from\":\"RegistryFactory\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactoryV0_0.sol\":\"RegistryFactoryV0_0\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryCommunityV0_0.sol\":{\"keccak256\":\"0x16c0522a7583d5bc911fb96831c62ec3b0377d6454345e0e45f2e23fa4411dd4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://926e9d52972a2ef1aa7a39dc853e7d2f1f0472c22817437263faa55b1bf3f979\",\"dweb:/ipfs/QmXGmeFSJNDo2V5TQC6twGVL92KtqHMhKy1z22MXB5Ec3a\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/RegistryFactoryV0_0.sol\":{\"keccak256\":\"0x59a6e49b42141bc51d6748cedcb7f4ce3d5359dd345763f62804ccdf72221b53\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://74fd049e24d60225b20494b700df91393dc2b0ea1ddeb578ace20304e3d0e6d3\",\"dweb:/ipfs/QmSU7eeB25waPDyoxNTKogyxFaysjbQgresn9sebLNBSSt\"]},\"pkg/contracts/src/interfaces/FAllo.sol\":{\"keccak256\":\"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458\",\"dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunityV0_0.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_gardensFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactoryV0_0.sol":"RegistryFactoryV0_0"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunityV0_0.sol":{"keccak256":"0x16c0522a7583d5bc911fb96831c62ec3b0377d6454345e0e45f2e23fa4411dd4","urls":["bzz-raw://926e9d52972a2ef1aa7a39dc853e7d2f1f0472c22817437263faa55b1bf3f979","dweb:/ipfs/QmXGmeFSJNDo2V5TQC6twGVL92KtqHMhKy1z22MXB5Ec3a"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_0.sol":{"keccak256":"0x59a6e49b42141bc51d6748cedcb7f4ce3d5359dd345763f62804ccdf72221b53","urls":["bzz-raw://74fd049e24d60225b20494b700df91393dc2b0ea1ddeb578ace20304e3d0e6d3","dweb:/ipfs/QmSU7eeB25waPDyoxNTKogyxFaysjbQgresn9sebLNBSSt"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/FAllo.sol":{"keccak256":"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437","urls":["bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458","dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":52821,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":52941,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":79878,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"nonce","offset":0,"slot":"101","type":"t_uint256"},{"astId":79883,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"communityToInfo","offset":0,"slot":"102","type":"t_mapping(t_address,t_struct(CommunityInfo)79871_storage)"},{"astId":79885,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"gardensFeeReceiver","offset":0,"slot":"103","type":"t_address"},{"astId":80154,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"__gap","offset":0,"slot":"104","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)79871_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)79871_storage"},"t_struct(CommunityInfo)79871_storage":{"encoding":"inplace","label":"struct CommunityInfo","numberOfBytes":"64","members":[{"astId":79868,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":79870,"contract":"pkg/contracts/src/RegistryFactoryV0_0.sol:RegistryFactoryV0_0","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactoryV0_0.sol","id":80156,"exportedSymbols":{"CommunityInfo":[79871],"ERC1967Proxy":[55562],"OwnableUpgradeable":[52942],"RegistryCommunityV0_0":[79618],"RegistryFactory":[79854],"RegistryFactoryV0_0":[80155],"UUPSUpgradeable":[56044]},"nodeType":"SourceUnit","src":"42:4072:132","nodes":[{"id":79856,"nodeType":"PragmaDirective","src":"42:24:132","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":79858,"nodeType":"ImportDirective","src":"68:71:132","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunityV0_0.sol","file":"../src/RegistryCommunityV0_0.sol","nameLocation":"-1:-1:-1","scope":80156,"sourceUnit":79619,"symbolAliases":[{"foreign":{"id":79857,"name":"RegistryCommunityV0_0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79618,"src":"76:21:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79860,"nodeType":"ImportDirective","src":"141:59:132","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactory.sol","file":"../src/RegistryFactory.sol","nameLocation":"-1:-1:-1","scope":80156,"sourceUnit":79855,"symbolAliases":[{"foreign":{"id":79859,"name":"RegistryFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79854,"src":"149:15:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79862,"nodeType":"ImportDirective","src":"202:110:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80156,"sourceUnit":52943,"symbolAliases":[{"foreign":{"id":79861,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52942,"src":"210:18:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79864,"nodeType":"ImportDirective","src":"313:88:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol","file":"@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80156,"sourceUnit":56045,"symbolAliases":[{"foreign":{"id":79863,"name":"UUPSUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56044,"src":"321:15:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79866,"nodeType":"ImportDirective","src":"403:84:132","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol","file":"@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol","nameLocation":"-1:-1:-1","scope":80156,"sourceUnit":55563,"symbolAliases":[{"foreign":{"id":79865,"name":"ERC1967Proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":55562,"src":"411:12:132","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":79871,"nodeType":"StructDefinition","src":"489:57:132","nodes":[],"canonicalName":"CommunityInfo","members":[{"constant":false,"id":79868,"mutability":"mutable","name":"fee","nameLocation":"524:3:132","nodeType":"VariableDeclaration","scope":79871,"src":"516:11:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79867,"name":"uint256","nodeType":"ElementaryTypeName","src":"516:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":79870,"mutability":"mutable","name":"valid","nameLocation":"538:5:132","nodeType":"VariableDeclaration","scope":79871,"src":"533:10:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79869,"name":"bool","nodeType":"ElementaryTypeName","src":"533:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"496:13:132","scope":80156,"visibility":"public"},{"id":80155,"nodeType":"ContractDefinition","src":"593:3520:132","nodes":[{"id":79878,"nodeType":"VariableDeclaration","src":"667:20:132","nodes":[],"constant":false,"functionSelector":"affed0e0","mutability":"mutable","name":"nonce","nameLocation":"682:5:132","scope":80155,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79877,"name":"uint256","nodeType":"ElementaryTypeName","src":"667:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"public"},{"id":79883,"nodeType":"VariableDeclaration","src":"694:49:132","nodes":[],"constant":false,"mutability":"mutable","name":"communityToInfo","nameLocation":"728:15:132","scope":80155,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo)"},"typeName":{"id":79882,"keyName":"","keyNameLocation":"-1:-1:-1","keyType":{"id":79879,"name":"address","nodeType":"ElementaryTypeName","src":"702:7:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Mapping","src":"694:33:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo)"},"valueName":"","valueNameLocation":"-1:-1:-1","valueType":{"id":79881,"nodeType":"UserDefinedTypeName","pathNode":{"id":79880,"name":"CommunityInfo","nameLocations":["713:13:132"],"nodeType":"IdentifierPath","referencedDeclaration":79871,"src":"713:13:132"},"referencedDeclaration":79871,"src":"713:13:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage_ptr","typeString":"struct CommunityInfo"}}},"visibility":"internal"},{"id":79885,"nodeType":"VariableDeclaration","src":"749:33:132","nodes":[],"constant":false,"functionSelector":"b8bed901","mutability":"mutable","name":"gardensFeeReceiver","nameLocation":"764:18:132","scope":80155,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79884,"name":"address","nodeType":"ElementaryTypeName","src":"749:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"public"},{"id":79889,"nodeType":"EventDefinition","src":"955:46:132","nodes":[],"anonymous":false,"eventSelector":"bdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d","name":"FeeReceiverSet","nameLocation":"961:14:132","parameters":{"id":79888,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79887,"indexed":false,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"984:15:132","nodeType":"VariableDeclaration","scope":79889,"src":"976:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79886,"name":"address","nodeType":"ElementaryTypeName","src":"976:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"975:25:132"}},{"id":79895,"nodeType":"EventDefinition","src":"1006:66:132","nodes":[],"anonymous":false,"eventSelector":"a1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c","name":"ProtocolFeeSet","nameLocation":"1012:14:132","parameters":{"id":79894,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79891,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"1035:10:132","nodeType":"VariableDeclaration","scope":79895,"src":"1027:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79890,"name":"address","nodeType":"ElementaryTypeName","src":"1027:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79893,"indexed":false,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"1055:15:132","nodeType":"VariableDeclaration","scope":79895,"src":"1047:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":79892,"name":"uint256","nodeType":"ElementaryTypeName","src":"1047:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1026:45:132"}},{"id":79899,"nodeType":"EventDefinition","src":"1077:51:132","nodes":[],"anonymous":false,"eventSelector":"b4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29","name":"CommunityCreated","nameLocation":"1083:16:132","parameters":{"id":79898,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79897,"indexed":false,"mutability":"mutable","name":"_registryCommunity","nameLocation":"1108:18:132","nodeType":"VariableDeclaration","scope":79899,"src":"1100:26:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79896,"name":"address","nodeType":"ElementaryTypeName","src":"1100:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1099:28:132"}},{"id":79905,"nodeType":"EventDefinition","src":"1133:62:132","nodes":[],"anonymous":false,"eventSelector":"ecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f62","name":"CommunityValiditySet","nameLocation":"1139:20:132","parameters":{"id":79904,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79901,"indexed":false,"mutability":"mutable","name":"_community","nameLocation":"1168:10:132","nodeType":"VariableDeclaration","scope":79905,"src":"1160:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79900,"name":"address","nodeType":"ElementaryTypeName","src":"1160:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":79903,"indexed":false,"mutability":"mutable","name":"_isValid","nameLocation":"1185:8:132","nodeType":"VariableDeclaration","scope":79905,"src":"1180:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":79902,"name":"bool","nodeType":"ElementaryTypeName","src":"1180:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1159:35:132"}},{"id":79909,"nodeType":"ErrorDefinition","src":"1367:43:132","nodes":[],"errorSelector":"f5a6943d","name":"CommunityInvalid","nameLocation":"1373:16:132","parameters":{"id":79908,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79907,"mutability":"mutable","name":"_community","nameLocation":"1398:10:132","nodeType":"VariableDeclaration","scope":79909,"src":"1390:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79906,"name":"address","nodeType":"ElementaryTypeName","src":"1390:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1389:20:132"}},{"id":79911,"nodeType":"ErrorDefinition","src":"1415:28:132","nodes":[],"errorSelector":"e622e040","name":"AddressCannotBeZero","nameLocation":"1421:19:132","parameters":{"id":79910,"nodeType":"ParameterList","parameters":[],"src":"1440:2:132"}},{"id":79927,"nodeType":"FunctionDefinition","src":"1614:133:132","nodes":[],"body":{"id":79926,"nodeType":"Block","src":"1674:73:132","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":79921,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":79916,"name":"_address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79913,"src":"1688:8:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":79919,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1708:1:132","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":79918,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"1700:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79917,"name":"address","nodeType":"ElementaryTypeName","src":"1700:7:132","typeDescriptions":{}}},"id":79920,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1700:10:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1688:22:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":79925,"nodeType":"IfStatement","src":"1684:56:132","trueBody":{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":79922,"name":"AddressCannotBeZero","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79911,"src":"1719:19:132","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":79923,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1719:21:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79924,"nodeType":"RevertStatement","src":"1712:28:132"}}]},"implemented":true,"kind":"function","modifiers":[],"name":"_revertZeroAddress","nameLocation":"1623:18:132","parameters":{"id":79914,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79913,"mutability":"mutable","name":"_address","nameLocation":"1650:8:132","nodeType":"VariableDeclaration","scope":79927,"src":"1642:16:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79912,"name":"address","nodeType":"ElementaryTypeName","src":"1642:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1641:18:132"},"returnParameters":{"id":79915,"nodeType":"ParameterList","parameters":[],"src":"1674:0:132"},"scope":80155,"stateMutability":"pure","virtual":false,"visibility":"internal"},{"id":79950,"nodeType":"FunctionDefinition","src":"1753:292:132","nodes":[],"body":{"id":79949,"nodeType":"Block","src":"1829:216:132","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":79934,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52837,"src":"1839:14:132","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":79935,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1839:16:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79936,"nodeType":"ExpressionStatement","src":"1839:16:132"},{"expression":{"id":79939,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79937,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79878,"src":"1865:5:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"30","id":79938,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1873:1:132","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"1865:9:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79940,"nodeType":"ExpressionStatement","src":"1865:9:132"},{"expression":{"id":79943,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":79941,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79885,"src":"1884:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79942,"name":"_gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79929,"src":"1905:19:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1884:40:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79944,"nodeType":"ExpressionStatement","src":"1884:40:132"},{"eventCall":{"arguments":[{"id":79946,"name":"_gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79929,"src":"1954:19:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":79945,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79889,"src":"1939:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":79947,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1939:35:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":79948,"nodeType":"EmitStatement","src":"1934:40:132"}]},"functionSelector":"c4d66de8","implemented":true,"kind":"function","modifiers":[{"id":79932,"kind":"modifierInvocation","modifierName":{"id":79931,"name":"initializer","nameLocations":["1817:11:132"],"nodeType":"IdentifierPath","referencedDeclaration":53093,"src":"1817:11:132"},"nodeType":"ModifierInvocation","src":"1817:11:132"}],"name":"initialize","nameLocation":"1762:10:132","parameters":{"id":79930,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79929,"mutability":"mutable","name":"_gardensFeeReceiver","nameLocation":"1781:19:132","nodeType":"VariableDeclaration","scope":79950,"src":"1773:27:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79928,"name":"address","nodeType":"ElementaryTypeName","src":"1773:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1772:29:132"},"returnParameters":{"id":79933,"nodeType":"ParameterList","parameters":[],"src":"1829:0:132"},"scope":80155,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":80032,"nodeType":"FunctionDefinition","src":"2051:764:132","nodes":[],"body":{"id":80031,"nodeType":"Block","src":"2214:601:132","nodes":[],"statements":[{"expression":{"id":79963,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79958,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79953,"src":"2224:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":79960,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2231:6:132","memberName":"_nonce","nodeType":"MemberAccess","referencedDeclaration":78086,"src":"2224:13:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":79962,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"2240:7:132","subExpression":{"id":79961,"name":"nonce","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79878,"src":"2240:5:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2224:23:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":79964,"nodeType":"ExpressionStatement","src":"2224:23:132"},{"expression":{"id":79972,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"id":79965,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79953,"src":"2257:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}},"id":79967,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2264:16:132","memberName":"_registryFactory","nodeType":"MemberAccess","referencedDeclaration":78088,"src":"2257:23:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"id":79970,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2291:4:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryFactoryV0_0_$80155","typeString":"contract RegistryFactoryV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryFactoryV0_0_$80155","typeString":"contract RegistryFactoryV0_0"}],"id":79969,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2283:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79968,"name":"address","nodeType":"ElementaryTypeName","src":"2283:7:132","typeDescriptions":{}}},"id":79971,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2283:13:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2257:39:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":79973,"nodeType":"ExpressionStatement","src":"2257:39:132"},{"assignments":[79976],"declarations":[{"constant":false,"id":79976,"mutability":"mutable","name":"proxy","nameLocation":"2320:5:132","nodeType":"VariableDeclaration","scope":80031,"src":"2307:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$55562","typeString":"contract ERC1967Proxy"},"typeName":{"id":79975,"nodeType":"UserDefinedTypeName","pathNode":{"id":79974,"name":"ERC1967Proxy","nameLocations":["2307:12:132"],"nodeType":"IdentifierPath","referencedDeclaration":55562,"src":"2307:12:132"},"referencedDeclaration":55562,"src":"2307:12:132","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$55562","typeString":"contract ERC1967Proxy"}},"visibility":"internal"}],"id":79995,"initialValue":{"arguments":[{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":79984,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2366:25:132","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_RegistryCommunityV0_0_$79618_$","typeString":"function () returns (contract RegistryCommunityV0_0)"},"typeName":{"id":79983,"nodeType":"UserDefinedTypeName","pathNode":{"id":79982,"name":"RegistryCommunityV0_0","nameLocations":["2370:21:132"],"nodeType":"IdentifierPath","referencedDeclaration":79618,"src":"2370:21:132"},"referencedDeclaration":79618,"src":"2370:21:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}},"id":79985,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2366:27:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":79981,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2358:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":79980,"name":"address","nodeType":"ElementaryTypeName","src":"2358:7:132","typeDescriptions":{}}},"id":79986,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2358:36:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"expression":{"expression":{"id":79989,"name":"RegistryCommunityV0_0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79618,"src":"2431:21:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunityV0_0_$79618_$","typeString":"type(contract RegistryCommunityV0_0)"}},"id":79990,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2453:10:132","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":78343,"src":"2431:32:132","typeDescriptions":{"typeIdentifier":"t_function_declaration_nonpayable$_t_struct$_InitializeParams_$78104_memory_ptr_$returns$__$","typeString":"function RegistryCommunityV0_0.initialize(struct RegistryCommunityV0_0.InitializeParams memory)"}},"id":79991,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2464:8:132","memberName":"selector","nodeType":"MemberAccess","src":"2431:41:132","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":79992,"name":"params","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79953,"src":"2474:6:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams memory"}],"expression":{"id":79987,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2408:3:132","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":79988,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2412:18:132","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2408:22:132","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":79993,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2408:73:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":79979,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"2328:16:132","typeDescriptions":{"typeIdentifier":"t_function_creation_payable$_t_address_$_t_bytes_memory_ptr_$returns$_t_contract$_ERC1967Proxy_$55562_$","typeString":"function (address,bytes memory) payable returns (contract ERC1967Proxy)"},"typeName":{"id":79978,"nodeType":"UserDefinedTypeName","pathNode":{"id":79977,"name":"ERC1967Proxy","nameLocations":["2332:12:132"],"nodeType":"IdentifierPath","referencedDeclaration":55562,"src":"2332:12:132"},"referencedDeclaration":55562,"src":"2332:12:132","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$55562","typeString":"contract ERC1967Proxy"}}},"id":79994,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2328:163:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$55562","typeString":"contract ERC1967Proxy"}},"nodeType":"VariableDeclarationStatement","src":"2307:184:132"},{"assignments":[79998],"declarations":[{"constant":false,"id":79998,"mutability":"mutable","name":"registryCommunity","nameLocation":"2524:17:132","nodeType":"VariableDeclaration","scope":80031,"src":"2502:39:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"},"typeName":{"id":79997,"nodeType":"UserDefinedTypeName","pathNode":{"id":79996,"name":"RegistryCommunityV0_0","nameLocations":["2502:21:132"],"nodeType":"IdentifierPath","referencedDeclaration":79618,"src":"2502:21:132"},"referencedDeclaration":79618,"src":"2502:21:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}},"visibility":"internal"}],"id":80008,"initialValue":{"arguments":[{"arguments":[{"arguments":[{"id":80004,"name":"proxy","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79976,"src":"2582:5:132","typeDescriptions":{"typeIdentifier":"t_contract$_ERC1967Proxy_$55562","typeString":"contract ERC1967Proxy"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_ERC1967Proxy_$55562","typeString":"contract ERC1967Proxy"}],"id":80003,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2574:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80002,"name":"address","nodeType":"ElementaryTypeName","src":"2574:7:132","typeDescriptions":{}}},"id":80005,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2574:14:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80001,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2566:8:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_payable_$","typeString":"type(address payable)"},"typeName":{"id":80000,"name":"address","nodeType":"ElementaryTypeName","src":"2566:8:132","stateMutability":"payable","typeDescriptions":{}}},"id":80006,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2566:23:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address_payable","typeString":"address payable"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address_payable","typeString":"address payable"}],"id":79999,"name":"RegistryCommunityV0_0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79618,"src":"2544:21:132","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_RegistryCommunityV0_0_$79618_$","typeString":"type(contract RegistryCommunityV0_0)"}},"id":80007,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2544:46:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}},"nodeType":"VariableDeclarationStatement","src":"2502:88:132"},{"expression":{"id":80017,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":80009,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79883,"src":"2650:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":80014,"indexExpression":{"arguments":[{"id":80012,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79998,"src":"2674:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":80011,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2666:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80010,"name":"address","nodeType":"ElementaryTypeName","src":"2666:7:132","typeDescriptions":{}}},"id":80013,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2666:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"2650:43:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage","typeString":"struct CommunityInfo storage ref"}},"id":80015,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"2694:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79870,"src":"2650:49:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"hexValue":"74727565","id":80016,"isConstant":false,"isLValue":false,"isPure":true,"kind":"bool","lValueRequested":false,"nodeType":"Literal","src":"2702:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"value":"true"},"src":"2650:56:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80018,"nodeType":"ExpressionStatement","src":"2650:56:132"},{"eventCall":{"arguments":[{"arguments":[{"id":80022,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79998,"src":"2746:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":80021,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2738:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80020,"name":"address","nodeType":"ElementaryTypeName","src":"2738:7:132","typeDescriptions":{}}},"id":80023,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2738:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80019,"name":"CommunityCreated","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79899,"src":"2721:16:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80024,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2721:44:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80025,"nodeType":"EmitStatement","src":"2716:49:132"},{"expression":{"arguments":[{"id":80028,"name":"registryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79998,"src":"2790:17:132","typeDescriptions":{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_RegistryCommunityV0_0_$79618","typeString":"contract RegistryCommunityV0_0"}],"id":80027,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2782:7:132","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":80026,"name":"address","nodeType":"ElementaryTypeName","src":"2782:7:132","typeDescriptions":{}}},"id":80029,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2782:26:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":79957,"id":80030,"nodeType":"Return","src":"2775:33:132"}]},"functionSelector":"8a16135f","implemented":true,"kind":"function","modifiers":[],"name":"createRegistry","nameLocation":"2060:14:132","parameters":{"id":79954,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79953,"mutability":"mutable","name":"params","nameLocation":"2121:6:132","nodeType":"VariableDeclaration","scope":80032,"src":"2075:52:132","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_memory_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams"},"typeName":{"id":79952,"nodeType":"UserDefinedTypeName","pathNode":{"id":79951,"name":"RegistryCommunityV0_0.InitializeParams","nameLocations":["2075:21:132","2097:16:132"],"nodeType":"IdentifierPath","referencedDeclaration":78104,"src":"2075:38:132"},"referencedDeclaration":78104,"src":"2075:38:132","typeDescriptions":{"typeIdentifier":"t_struct$_InitializeParams_$78104_storage_ptr","typeString":"struct RegistryCommunityV0_0.InitializeParams"}},"visibility":"internal"}],"src":"2074:54:132"},"returnParameters":{"id":79957,"nodeType":"ParameterList","parameters":[{"constant":false,"id":79956,"mutability":"mutable","name":"_createdRegistryAddress","nameLocation":"2185:23:132","nodeType":"VariableDeclaration","scope":80032,"src":"2177:31:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":79955,"name":"address","nodeType":"ElementaryTypeName","src":"2177:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2176:33:132"},"scope":80155,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":80052,"nodeType":"FunctionDefinition","src":"2821:222:132","nodes":[],"body":{"id":80051,"nodeType":"Block","src":"2899:144:132","nodes":[],"statements":[{"expression":{"arguments":[{"id":80040,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80034,"src":"2928:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80039,"name":"_revertZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79927,"src":"2909:18:132","typeDescriptions":{"typeIdentifier":"t_function_internal_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":80041,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2909:35:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80042,"nodeType":"ExpressionStatement","src":"2909:35:132"},{"expression":{"id":80045,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":80043,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79885,"src":"2954:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80044,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80034,"src":"2975:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"2954:36:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":80046,"nodeType":"ExpressionStatement","src":"2954:36:132"},{"eventCall":{"arguments":[{"id":80048,"name":"_newFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80034,"src":"3020:15:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80047,"name":"FeeReceiverSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79889,"src":"3005:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$returns$__$","typeString":"function (address)"}},"id":80049,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3005:31:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80050,"nodeType":"EmitStatement","src":"3000:36:132"}]},"functionSelector":"8279c7db","implemented":true,"kind":"function","modifiers":[{"id":80037,"kind":"modifierInvocation","modifierName":{"id":80036,"name":"onlyOwner","nameLocations":["2889:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"2889:9:132"},"nodeType":"ModifierInvocation","src":"2889:9:132"}],"name":"setReceiverAddress","nameLocation":"2830:18:132","parameters":{"id":80035,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80034,"mutability":"mutable","name":"_newFeeReceiver","nameLocation":"2857:15:132","nodeType":"VariableDeclaration","scope":80052,"src":"2849:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80033,"name":"address","nodeType":"ElementaryTypeName","src":"2849:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2848:25:132"},"returnParameters":{"id":80038,"nodeType":"ParameterList","parameters":[],"src":"2899:0:132"},"scope":80155,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":80060,"nodeType":"FunctionDefinition","src":"3049:115:132","nodes":[],"body":{"id":80059,"nodeType":"Block","src":"3122:42:132","nodes":[],"statements":[{"expression":{"id":80057,"name":"gardensFeeReceiver","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79885,"src":"3139:18:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":80056,"id":80058,"nodeType":"Return","src":"3132:25:132"}]},"functionSelector":"987435be","implemented":true,"kind":"function","modifiers":[],"name":"getGardensFeeReceiver","nameLocation":"3058:21:132","parameters":{"id":80053,"nodeType":"ParameterList","parameters":[],"src":"3079:2:132"},"returnParameters":{"id":80056,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80055,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80060,"src":"3113:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80054,"name":"address","nodeType":"ElementaryTypeName","src":"3113:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3112:9:132"},"scope":80155,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":80082,"nodeType":"FunctionDefinition","src":"3170:218:132","nodes":[],"body":{"id":80081,"nodeType":"Block","src":"3264:124:132","nodes":[],"statements":[{"expression":{"id":80074,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":80069,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79883,"src":"3274:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":80071,"indexExpression":{"id":80070,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80062,"src":"3290:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3274:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage","typeString":"struct CommunityInfo storage ref"}},"id":80072,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3302:3:132","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":79868,"src":"3274:31:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80073,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80064,"src":"3308:15:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3274:49:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80075,"nodeType":"ExpressionStatement","src":"3274:49:132"},{"eventCall":{"arguments":[{"id":80077,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80062,"src":"3353:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80078,"name":"_newProtocolFee","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80064,"src":"3365:15:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":80076,"name":"ProtocolFeeSet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79895,"src":"3338:14:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":80079,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:43:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80080,"nodeType":"EmitStatement","src":"3333:48:132"}]},"functionSelector":"b5b3ca2c","implemented":true,"kind":"function","modifiers":[{"id":80067,"kind":"modifierInvocation","modifierName":{"id":80066,"name":"onlyOwner","nameLocations":["3254:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"3254:9:132"},"nodeType":"ModifierInvocation","src":"3254:9:132"}],"name":"setProtocolFee","nameLocation":"3179:14:132","parameters":{"id":80065,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80062,"mutability":"mutable","name":"_community","nameLocation":"3202:10:132","nodeType":"VariableDeclaration","scope":80082,"src":"3194:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80061,"name":"address","nodeType":"ElementaryTypeName","src":"3194:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80064,"mutability":"mutable","name":"_newProtocolFee","nameLocation":"3222:15:132","nodeType":"VariableDeclaration","scope":80082,"src":"3214:23:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80063,"name":"uint256","nodeType":"ElementaryTypeName","src":"3214:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3193:45:132"},"returnParameters":{"id":80068,"nodeType":"ParameterList","parameters":[],"src":"3264:0:132"},"scope":80155,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":80104,"nodeType":"FunctionDefinition","src":"3394:208:132","nodes":[],"body":{"id":80103,"nodeType":"Block","src":"3484:118:132","nodes":[],"statements":[{"expression":{"id":80096,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"expression":{"baseExpression":{"id":80091,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79883,"src":"3494:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":80093,"indexExpression":{"id":80092,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80084,"src":"3510:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3494:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage","typeString":"struct CommunityInfo storage ref"}},"id":80094,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"memberLocation":"3522:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79870,"src":"3494:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":80095,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80086,"src":"3530:8:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3494:44:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80097,"nodeType":"ExpressionStatement","src":"3494:44:132"},{"eventCall":{"arguments":[{"id":80099,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80084,"src":"3574:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":80100,"name":"_isValid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80086,"src":"3586:8:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_bool","typeString":"bool"}],"id":80098,"name":"CommunityValiditySet","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79905,"src":"3553:20:132","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_bool_$returns$__$","typeString":"function (address,bool)"}},"id":80101,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3553:42:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80102,"nodeType":"EmitStatement","src":"3548:47:132"}]},"functionSelector":"5a2c8ace","implemented":true,"kind":"function","modifiers":[{"id":80089,"kind":"modifierInvocation","modifierName":{"id":80088,"name":"onlyOwner","nameLocations":["3474:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"3474:9:132"},"nodeType":"ModifierInvocation","src":"3474:9:132"}],"name":"setCommunityValidity","nameLocation":"3403:20:132","parameters":{"id":80087,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80084,"mutability":"mutable","name":"_community","nameLocation":"3432:10:132","nodeType":"VariableDeclaration","scope":80104,"src":"3424:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80083,"name":"address","nodeType":"ElementaryTypeName","src":"3424:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":80086,"mutability":"mutable","name":"_isValid","nameLocation":"3449:8:132","nodeType":"VariableDeclaration","scope":80104,"src":"3444:13:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80085,"name":"bool","nodeType":"ElementaryTypeName","src":"3444:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3423:35:132"},"returnParameters":{"id":80090,"nodeType":"ParameterList","parameters":[],"src":"3484:0:132"},"scope":80155,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":80117,"nodeType":"FunctionDefinition","src":"3608:144:132","nodes":[],"body":{"id":80116,"nodeType":"Block","src":"3695:57:132","nodes":[],"statements":[{"expression":{"expression":{"baseExpression":{"id":80111,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79883,"src":"3712:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":80113,"indexExpression":{"id":80112,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80106,"src":"3728:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3712:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage","typeString":"struct CommunityInfo storage ref"}},"id":80114,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3740:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79870,"src":"3712:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":80110,"id":80115,"nodeType":"Return","src":"3705:40:132"}]},"functionSelector":"f5016b5e","implemented":true,"kind":"function","modifiers":[],"name":"getCommunityValidity","nameLocation":"3617:20:132","parameters":{"id":80107,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80106,"mutability":"mutable","name":"_community","nameLocation":"3646:10:132","nodeType":"VariableDeclaration","scope":80117,"src":"3638:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80105,"name":"address","nodeType":"ElementaryTypeName","src":"3638:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3637:20:132"},"returnParameters":{"id":80110,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80109,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80117,"src":"3689:4:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80108,"name":"bool","nodeType":"ElementaryTypeName","src":"3689:4:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"3688:6:132"},"scope":80155,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":80141,"nodeType":"FunctionDefinition","src":"3758:249:132","nodes":[],"body":{"id":80140,"nodeType":"Block","src":"3842:165:132","nodes":[],"statements":[{"condition":{"id":80128,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3856:34:132","subExpression":{"expression":{"baseExpression":{"id":80124,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79883,"src":"3857:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":80126,"indexExpression":{"id":80125,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80119,"src":"3873:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3857:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage","typeString":"struct CommunityInfo storage ref"}},"id":80127,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3885:5:132","memberName":"valid","nodeType":"MemberAccess","referencedDeclaration":79870,"src":"3857:33:132","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":80134,"nodeType":"IfStatement","src":"3852:100:132","trueBody":{"id":80133,"nodeType":"Block","src":"3892:60:132","statements":[{"errorCall":{"arguments":[{"id":80130,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80119,"src":"3930:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":80129,"name":"CommunityInvalid","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79909,"src":"3913:16:132","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":80131,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3913:28:132","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80132,"nodeType":"RevertStatement","src":"3906:35:132"}]}},{"expression":{"expression":{"baseExpression":{"id":80135,"name":"communityToInfo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":79883,"src":"3969:15:132","typeDescriptions":{"typeIdentifier":"t_mapping$_t_address_$_t_struct$_CommunityInfo_$79871_storage_$","typeString":"mapping(address => struct CommunityInfo storage ref)"}},"id":80137,"indexExpression":{"id":80136,"name":"_community","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80119,"src":"3985:10:132","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"3969:27:132","typeDescriptions":{"typeIdentifier":"t_struct$_CommunityInfo_$79871_storage","typeString":"struct CommunityInfo storage ref"}},"id":80138,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"3997:3:132","memberName":"fee","nodeType":"MemberAccess","referencedDeclaration":79868,"src":"3969:31:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":80123,"id":80139,"nodeType":"Return","src":"3962:38:132"}]},"functionSelector":"0a992e0c","implemented":true,"kind":"function","modifiers":[],"name":"getProtocolFee","nameLocation":"3767:14:132","parameters":{"id":80120,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80119,"mutability":"mutable","name":"_community","nameLocation":"3790:10:132","nodeType":"VariableDeclaration","scope":80141,"src":"3782:18:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80118,"name":"address","nodeType":"ElementaryTypeName","src":"3782:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"3781:20:132"},"returnParameters":{"id":80123,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80122,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80141,"src":"3833:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80121,"name":"uint256","nodeType":"ElementaryTypeName","src":"3833:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3832:9:132"},"scope":80155,"stateMutability":"view","virtual":true,"visibility":"external"},{"id":80150,"nodeType":"FunctionDefinition","src":"4013:66:132","nodes":[],"body":{"id":80149,"nodeType":"Block","src":"4077:2:132","nodes":[],"statements":[]},"baseFunctions":[56043],"implemented":true,"kind":"function","modifiers":[{"id":80147,"kind":"modifierInvocation","modifierName":{"id":80146,"name":"onlyOwner","nameLocations":["4067:9:132"],"nodeType":"IdentifierPath","referencedDeclaration":52856,"src":"4067:9:132"},"nodeType":"ModifierInvocation","src":"4067:9:132"}],"name":"_authorizeUpgrade","nameLocation":"4022:17:132","overrides":{"id":80145,"nodeType":"OverrideSpecifier","overrides":[],"src":"4058:8:132"},"parameters":{"id":80144,"nodeType":"ParameterList","parameters":[{"constant":false,"id":80143,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":80150,"src":"4040:7:132","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":80142,"name":"address","nodeType":"ElementaryTypeName","src":"4040:7:132","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"4039:9:132"},"returnParameters":{"id":80148,"nodeType":"ParameterList","parameters":[],"src":"4077:0:132"},"scope":80155,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":80154,"nodeType":"VariableDeclaration","src":"4085:25:132","nodes":[],"constant":false,"mutability":"mutable","name":"__gap","nameLocation":"4105:5:132","scope":80155,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage","typeString":"uint256[50]"},"typeName":{"baseType":{"id":80151,"name":"uint256","nodeType":"ElementaryTypeName","src":"4085:7:132","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":80153,"length":{"hexValue":"3530","id":80152,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4093:2:132","typeDescriptions":{"typeIdentifier":"t_rational_50_by_1","typeString":"int_const 50"},"value":"50"},"nodeType":"ArrayTypeName","src":"4085:11:132","typeDescriptions":{"typeIdentifier":"t_array$_t_uint256_$50_storage_ptr","typeString":"uint256[50]"}},"visibility":"private"}],"abstract":false,"baseContracts":[{"baseName":{"id":79873,"name":"OwnableUpgradeable","nameLocations":["625:18:132"],"nodeType":"IdentifierPath","referencedDeclaration":52942,"src":"625:18:132"},"id":79874,"nodeType":"InheritanceSpecifier","src":"625:18:132"},{"baseName":{"id":79875,"name":"UUPSUpgradeable","nameLocations":["645:15:132"],"nodeType":"IdentifierPath","referencedDeclaration":56044,"src":"645:15:132"},"id":79876,"nodeType":"InheritanceSpecifier","src":"645:15:132"}],"canonicalName":"RegistryFactoryV0_0","contractDependencies":[55562,79618],"contractKind":"contract","documentation":{"id":79872,"nodeType":"StructuredDocumentation","src":"547:45:132","text":"@custom:oz-upgrades-from RegistryFactory"},"fullyImplemented":true,"linearizedBaseContracts":[80155,56044,55866,55515,55525,52942,53735,53191],"name":"RegistryFactoryV0_0","nameLocation":"602:19:132","scope":80156,"usedErrors":[79909,79911]}],"license":"AGPL-3.0-only"},"id":132} \ No newline at end of file diff --git a/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json b/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json index ec090f99c..4d3e25f97 100644 --- a/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json +++ b/pkg/contracts/out/RegistryFactoryV0_1.sol/RegistryFactoryV0_1.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunity.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_gardensFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeV2","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b5060805161608161004c600039600081816103db0152818161046001528181610556015281816105db01526106c501526160816000f3fe60806040526004361061010e5760003560e01c80638a16135f116100a5578063b5b3ca2c11610074578063c4d66de811610059578063c4d66de8146102c4578063f2fde38b146102e4578063f5016b5e1461030457600080fd5b8063b5b3ca2c14610284578063b8bed901146102a457600080fd5b80638a16135f146101fa5780638da5cb5b14610232578063987435be14610250578063affed0e01461026e57600080fd5b80635a2c8ace116100e15780635a2c8ace146101905780635cd8a76b146101b0578063715018a6146101c55780638279c7db146101da57600080fd5b80630a992e0c146101135780633659cfe6146101465780634f1ef2861461016857806352d1902d1461017b575b600080fd5b34801561011f57600080fd5b5061013361012e36600461132f565b610350565b6040519081526020015b60405180910390f35b34801561015257600080fd5b5061016661016136600461132f565b6103d1565b005b610166610176366004611402565b61054c565b34801561018757600080fd5b506101336106b8565b34801561019c57600080fd5b506101666101ab366004611476565b61077d565b3480156101bc57600080fd5b506101666107ec565b3480156101d157600080fd5b506101666108e1565b3480156101e657600080fd5b506101666101f536600461132f565b6108f5565b34801561020657600080fd5b5061021a61021536600461153a565b610961565b6040516001600160a01b03909116815260200161013d565b34801561023e57600080fd5b506033546001600160a01b031661021a565b34801561025c57600080fd5b506067546001600160a01b031661021a565b34801561027a57600080fd5b5061013360655481565b34801561029057600080fd5b5061016661029f366004611690565b610a87565b3480156102b057600080fd5b5060675461021a906001600160a01b031681565b3480156102d057600080fd5b506101666102df36600461132f565b610ae0565b3480156102f057600080fd5b506101666102ff36600461132f565b610c5c565b34801561031057600080fd5b5061034061031f36600461132f565b6001600160a01b031660009081526066602052604090206001015460ff1690565b604051901515815260200161013d565b6001600160a01b03811660009081526066602052604081206001015460ff166103b5576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361045e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104b97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146105245760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b61052d81610ce9565b6040805160008082526020820190925261054991839190610cf1565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106347f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461069f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b6106a882610ce9565b6106b482826001610cf1565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107585760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ac565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610785610e96565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b600054600290610100900460ff1615801561080e575060005460ff8083169116105b6108805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805461ffff191660ff83161761010017905561089c610ef0565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6108e9610e96565b6108f36000610f63565b565b6108fd610e96565b61090681610fc2565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d906020016108d6565b600080604051610970906112fc565b604051809103906000f08015801561098c573d6000803e3d6000fd5b5060658054919250600061099f836116bc565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906109f3908690600401611752565b600060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610a8f610e96565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107e0565b600054610100900460ff1615808015610b005750600054600160ff909116105b80610b1a5750303b158015610b1a575060005460ff166001145b610b8c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805460ff191660011790558015610baf576000805461ff0019166101001790555b610bb7610ef0565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a180156106b4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107e0565b610c64610e96565b6001600160a01b038116610ce05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ac565b61054981610f63565b610549610e96565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d2957610d2483611002565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d83575060408051601f3d908101601f19168201909252610d8091810190611891565b60015b610df55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610e8a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016103ac565b50610d248383836110cd565b6033546001600160a01b031633146108f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ac565b600054610100900460ff16610f5b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f36110f8565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610549576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381163b61107f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6110d68361116c565b6000825111806110e35750805b15610d24576110f283836111ac565b50505050565b600054610100900460ff166111635760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f333610f63565b61117581611002565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606111d2838360405180606001604052806027815260200162006025602791396111d9565b9392505050565b6060600080856001600160a01b0316856040516111f691906118aa565b600060405180830381855af49150503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b509150915061124786838387611251565b9695505050505050565b606083156112c05782516000036112b9576001600160a01b0385163b6112b95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ac565b50816112ca565b6112ca83836112d2565b949350505050565b8151156112e25781518083602001fd5b8060405162461bcd60e51b81526004016103ac91906118c6565b61474b80620018da83390190565b6001600160a01b038116811461054957600080fd5b803561132a8161130a565b919050565b60006020828403121561134157600080fd5b81356111d28161130a565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156113865761138661134c565b60405290565b600067ffffffffffffffff808411156113a7576113a761134c565b604051601f8501601f19908116603f011681019082821181831017156113cf576113cf61134c565b816040528093508581528686860111156113e857600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121561141557600080fd5b82356114208161130a565b9150602083013567ffffffffffffffff81111561143c57600080fd5b8301601f8101851361144d57600080fd5b61145c8582356020840161138c565b9150509250929050565b8035801515811461132a57600080fd5b6000806040838503121561148957600080fd5b82356114948161130a565b91506114a260208401611466565b90509250929050565b600082601f8301126114bc57600080fd5b6111d28383356020850161138c565b6000604082840312156114dd57600080fd5b6040516040810167ffffffffffffffff82821081831117156115015761150161134c565b8160405282935084358352602085013591508082111561152057600080fd5b5061152d858286016114ab565b6020830152505092915050565b60006020828403121561154c57600080fd5b813567ffffffffffffffff8082111561156457600080fd5b908301906101a0828603121561157957600080fd5b611581611362565b61158a8361131f565b81526115986020840161131f565b60208201526040830135604082015260608301356060820152608083013560808201526115c760a0840161131f565b60a08201526115d860c0840161131f565b60c082015260e0830135828111156115ef57600080fd5b6115fb878286016114cb565b60e08301525061010061160f81850161131f565b90820152610120838101358381111561162757600080fd5b611633888287016114ab565b828401525050610140611647818501611466565b90820152610160838101358381111561165f57600080fd5b61166b888287016114ab565b828401525050610180915061168182840161131f565b91810191909152949350505050565b600080604083850312156116a357600080fd5b82356116ae8161130a565b946020939093013593505050565b6000600182016116dc57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156116fe5781810151838201526020016116e6565b50506000910152565b6000815180845261171f8160208601602086016116e3565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526112ca6040850182611707565b6020815261176c6020820183516001600160a01b03169052565b6000602083015161178860408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516117c160c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526117f56101c0860184611733565b90860151909250610120611813868201836001600160a01b03169052565b80870151915050601f196101408187860301818801526118338584611707565b94508088015192505061016061184c8188018415159052565b808801519250506101808187860301818801526118698584611707565b94508088015192505050611887828601826001600160a01b03169052565b5090949350505050565b6000602082840312156118a357600080fd5b5051919050565b600082516118bc8184602087016116e3565b9190910192915050565b6020815260006111d2602083018461170756fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a829c05816bcf8bf65b73639e9f33110325eff0b3a6dfca252e0fc1468308edb64736f6c63430008130033","sourceMap":"422:639:133:-:0;;;1088:4:67;1045:48;;422:639:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60806040526004361061010e5760003560e01c80638a16135f116100a5578063b5b3ca2c11610074578063c4d66de811610059578063c4d66de8146102c4578063f2fde38b146102e4578063f5016b5e1461030457600080fd5b8063b5b3ca2c14610284578063b8bed901146102a457600080fd5b80638a16135f146101fa5780638da5cb5b14610232578063987435be14610250578063affed0e01461026e57600080fd5b80635a2c8ace116100e15780635a2c8ace146101905780635cd8a76b146101b0578063715018a6146101c55780638279c7db146101da57600080fd5b80630a992e0c146101135780633659cfe6146101465780634f1ef2861461016857806352d1902d1461017b575b600080fd5b34801561011f57600080fd5b5061013361012e36600461132f565b610350565b6040519081526020015b60405180910390f35b34801561015257600080fd5b5061016661016136600461132f565b6103d1565b005b610166610176366004611402565b61054c565b34801561018757600080fd5b506101336106b8565b34801561019c57600080fd5b506101666101ab366004611476565b61077d565b3480156101bc57600080fd5b506101666107ec565b3480156101d157600080fd5b506101666108e1565b3480156101e657600080fd5b506101666101f536600461132f565b6108f5565b34801561020657600080fd5b5061021a61021536600461153a565b610961565b6040516001600160a01b03909116815260200161013d565b34801561023e57600080fd5b506033546001600160a01b031661021a565b34801561025c57600080fd5b506067546001600160a01b031661021a565b34801561027a57600080fd5b5061013360655481565b34801561029057600080fd5b5061016661029f366004611690565b610a87565b3480156102b057600080fd5b5060675461021a906001600160a01b031681565b3480156102d057600080fd5b506101666102df36600461132f565b610ae0565b3480156102f057600080fd5b506101666102ff36600461132f565b610c5c565b34801561031057600080fd5b5061034061031f36600461132f565b6001600160a01b031660009081526066602052604090206001015460ff1690565b604051901515815260200161013d565b6001600160a01b03811660009081526066602052604081206001015460ff166103b5576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361045e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166104b97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146105245760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b61052d81610ce9565b6040805160008082526020820190925261054991839190610cf1565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036105d95760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016103ac565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106347f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461069f5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016103ac565b6106a882610ce9565b6106b482826001610cf1565b5050565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107585760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016103ac565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b610785610e96565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b600054600290610100900460ff1615801561080e575060005460ff8083169116105b6108805760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805461ffff191660ff83161761010017905561089c610ef0565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6108e9610e96565b6108f36000610f63565b565b6108fd610e96565b61090681610fc2565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d906020016108d6565b600080604051610970906112fc565b604051809103906000f08015801561098c573d6000803e3d6000fd5b5060658054919250600061099f836116bc565b9091555060808401523060a08401526040517f96f0adec0000000000000000000000000000000000000000000000000000000081526001600160a01b038216906396f0adec906109f3908690600401611752565b600060405180830381600087803b158015610a0d57600080fd5b505af1158015610a21573d6000803e3d6000fd5b505050506001600160a01b0381166000818152606660209081526040918290206001908101805460ff1916909117905590519182527fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a192915050565b610a8f610e96565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c91016107e0565b600054610100900460ff1615808015610b005750600054600160ff909116105b80610b1a5750303b158015610b1a575060005460ff166001145b610b8c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016103ac565b6000805460ff191660011790558015610baf576000805461ff0019166101001790555b610bb7610ef0565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a180156106b4576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016107e0565b610c64610e96565b6001600160a01b038116610ce05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016103ac565b61054981610f63565b610549610e96565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615610d2957610d2483611002565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610d83575060408051601f3d908101601f19168201909252610d8091810190611891565b60015b610df55760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114610e8a5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016103ac565b50610d248383836110cd565b6033546001600160a01b031633146108f35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103ac565b600054610100900460ff16610f5b5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f36110f8565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116610549576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381163b61107f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016103ac565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6110d68361116c565b6000825111806110e35750805b15610d24576110f283836111ac565b50505050565b600054610100900460ff166111635760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016103ac565b6108f333610f63565b61117581611002565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606111d2838360405180606001604052806027815260200162006025602791396111d9565b9392505050565b6060600080856001600160a01b0316856040516111f691906118aa565b600060405180830381855af49150503d8060008114611231576040519150601f19603f3d011682016040523d82523d6000602084013e611236565b606091505b509150915061124786838387611251565b9695505050505050565b606083156112c05782516000036112b9576001600160a01b0385163b6112b95760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016103ac565b50816112ca565b6112ca83836112d2565b949350505050565b8151156112e25781518083602001fd5b8060405162461bcd60e51b81526004016103ac91906118c6565b61474b80620018da83390190565b6001600160a01b038116811461054957600080fd5b803561132a8161130a565b919050565b60006020828403121561134157600080fd5b81356111d28161130a565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff811182821017156113865761138661134c565b60405290565b600067ffffffffffffffff808411156113a7576113a761134c565b604051601f8501601f19908116603f011681019082821181831017156113cf576113cf61134c565b816040528093508581528686860111156113e857600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121561141557600080fd5b82356114208161130a565b9150602083013567ffffffffffffffff81111561143c57600080fd5b8301601f8101851361144d57600080fd5b61145c8582356020840161138c565b9150509250929050565b8035801515811461132a57600080fd5b6000806040838503121561148957600080fd5b82356114948161130a565b91506114a260208401611466565b90509250929050565b600082601f8301126114bc57600080fd5b6111d28383356020850161138c565b6000604082840312156114dd57600080fd5b6040516040810167ffffffffffffffff82821081831117156115015761150161134c565b8160405282935084358352602085013591508082111561152057600080fd5b5061152d858286016114ab565b6020830152505092915050565b60006020828403121561154c57600080fd5b813567ffffffffffffffff8082111561156457600080fd5b908301906101a0828603121561157957600080fd5b611581611362565b61158a8361131f565b81526115986020840161131f565b60208201526040830135604082015260608301356060820152608083013560808201526115c760a0840161131f565b60a08201526115d860c0840161131f565b60c082015260e0830135828111156115ef57600080fd5b6115fb878286016114cb565b60e08301525061010061160f81850161131f565b90820152610120838101358381111561162757600080fd5b611633888287016114ab565b828401525050610140611647818501611466565b90820152610160838101358381111561165f57600080fd5b61166b888287016114ab565b828401525050610180915061168182840161131f565b91810191909152949350505050565b600080604083850312156116a357600080fd5b82356116ae8161130a565b946020939093013593505050565b6000600182016116dc57634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156116fe5781810151838201526020016116e6565b50506000910152565b6000815180845261171f8160208601602086016116e3565b601f01601f19169290920160200192915050565b8051825260006020820151604060208501526112ca6040850182611707565b6020815261176c6020820183516001600160a01b03169052565b6000602083015161178860408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516117c160c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526117f56101c0860184611733565b90860151909250610120611813868201836001600160a01b03169052565b80870151915050601f196101408187860301818801526118338584611707565b94508088015192505061016061184c8188018415159052565b808801519250506101808187860301818801526118698584611707565b94508088015192505050611887828601826001600160a01b03169052565b5090949350505050565b6000602082840312156118a357600080fd5b5051919050565b600082516118bc8184602087016116e3565b9190910192915050565b6020815260006111d2602083018461170756fe60806040523480156200001157600080fd5b506001600090815562000046907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b906200004c565b62000099565b6000828152600160208190526040808320909101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6146a280620000a96000396000f3fe608060405234801561001057600080fd5b506004361061036d5760003560e01c80636c53db9a116101d3578063a230c52411610104578063c8a593e9116100a2578063d7050f071161007c578063d7050f0714610876578063db61d65c1461087f578063ebd7dc5214610892578063f86c5f89146108a557600080fd5b8063c8a593e91461083d578063d547741f14610850578063d6d8428d1461086357600080fd5b8063b64e39af116100de578063b64e39af14610810578063b99b437014610825578063bc063e1a1461082d578063c6d572ae1461083557600080fd5b8063a230c5241461079e578063b3f00674146107f5578063b5058c501461080857600080fd5b80638961be6b116101715780639a72a86f1161014b5780639a72a86f14610724578063a0b21cdf14610754578063a0cf0aea1461077b578063a217fddf1461079657600080fd5b80638961be6b146106cf57806391d14854146106d857806396f0adec1461071157600080fd5b806378a0b8a9116101ad57806378a0b8a91461063d5780637b1039991461064657806382d6a1e71461065957806388cfe6841461066c57600080fd5b80636c53db9a146105de57806373265c37146105f15780637817ee4f1461060457600080fd5b80632f2ff15d116102ad578063477a5cc01161024b5780635ecf71c5116102255780635ecf71c51461057a57806365e3864c1461058d5780636871eb4d146105b857806368decabb146105cb57600080fd5b8063477a5cc014610526578063559de05d146105545780635c94e4d21461056757600080fd5b80633517aa7d116102875780633517aa7d146104d557806336568abe146104dd578063397e2543146104f05780633a871fe11461050357600080fd5b80632f2ff15d146104a657806331f61bca146104b957806333960459146104cc57600080fd5b80631f787d281161031a578063248a9ca3116102f4578063248a9ca31461042357806328c309e9146104475780632b38c69c1461044f5780632c611c4a1461047a57600080fd5b80631f787d28146103f0578063223e5479146103fd57806322bcf9991461041057600080fd5b80630d12bbdb1161034b5780630d12bbdb146103b55780630d4a8b49146103ca578063175188e8146103dd57600080fd5b806301ffc9a7146103725780630331383c1461039a57806308386eba146103ac575b600080fd5b61038561038036600461377d565b6108b8565b60405190151581526020015b60405180910390f35b6003545b604051908152602001610391565b61039e60055481565b6103c86103c33660046137a7565b610908565b005b6103c86103d83660046137e5565b610992565b6103c86103eb36600461381e565b610cf9565b6002546103859060ff1681565b6103c861040b36600461381e565b610d0d565b6103c861041e3660046137e5565b610d1e565b61039e6104313660046137a7565b6000908152600160208190526040909120015490565b61039e610e2d565b61046261045d36600461383b565b610f17565b6040516001600160a01b039091168152602001610391565b61039e61048836600461381e565b6001600160a01b031660009081526013602052604090206001015490565b6103c86104b4366004613867565b610f4f565b6103c86104c73660046137a7565b610f7a565b61039e60095481565b6103c8610fb7565b6103c86104eb366004613867565b6113bc565b6103c86104fe36600461381e565b61144d565b61038561051136600461381e565b60116020526000908152604090205460ff1681565b6103856105343660046137e5565b601560209081526000928352604080842090915290825290205460ff1681565b6103c86105623660046137a7565b6114ba565b600854610462906001600160a01b031681565b6103c86105883660046137a7565b611794565b61039e61059b3660046137e5565b601260209081526000928352604080842090915290825290205481565b6103c86105c63660046137e5565b611b4e565b600a54610462906001600160a01b031681565b600d54610462906001600160a01b031681565b6103c86105ff3660046137a7565b611d59565b61039e6106123660046137e5565b6001600160a01b03918216600090815260126020908152604080832093909416825291909152205490565b61039e60035481565b600b54610462906001600160a01b031681565b6103c86106673660046137a7565b611deb565b6106a861067a36600461381e565b6013602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b0390941684526020840192909252151590820152606001610391565b61039e60045481565b6103856106e6366004613867565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6103c861071f366004613a50565b611e9c565b610737610732366004613ce7565b612388565b604080519283526001600160a01b03909116602083015201610391565b61039e7fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b81565b61046273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b61039e600081565b6103856107ac36600461381e565b6001600160a01b039081166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b600654610462906001600160a01b031681565b6103c86123d2565b61081861241e565b6040516103919190613d9a565b6103c86124ac565b61039e61260f565b61081861261f565b61073761084b366004613dad565b61262c565b6103c861085e366004613867565b6127ab565b600e54610462906001600160a01b031681565b61039e61271081565b600c54610462906001600160a01b031681565b6103856108a036600461381e565b6127d1565b600754610462906001600160a01b031681565b60006001600160e01b031982167f7965db0b00000000000000000000000000000000000000000000000000000000148061090257506301ffc9a760e01b6001600160e01b03198316145b92915050565b610910612811565b61091d612710600a613e39565b811115610956576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60048190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b61099b82612879565b6109a4816128dc565b6109ad8161292e565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff1615610a0d576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0380831660009081526013602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff161515918301919091526003805490846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610a99573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610abd9190613e66565b6003811115610ace57610ace613e50565b03610b4d5760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610b22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b469190613e83565b9050610c3f565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610b8f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bb39190613e66565b6003811115610bc457610bc4613e50565b14610c3f5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610c18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3c9190613e83565b90505b6001600160a01b038581166000818152601260209081526040808320948916808452948252808320869055838352601582528083208584528252808320805460ff19166001908117909155848452601483528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b610d01612811565b610d0a8161296e565b50565b610d15612811565b610d0a816129c8565b610d2782612879565b610d308161292e565b610d3a3382612a6f565b6001600160a01b0380831660009081526015602090815260408083209385168352929052205460ff16610d99576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000818152601560209081526040808320948616808452948252808320805460ff191690559282526012815282822093825292909252812055610de78282612aba565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b910160405180910390a15050565b6007546000906001600160a01b031681610e4a6127106064613e39565b600454600354610e5a9190613e39565b610e649190613e9c565b90506000610e756127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015610eb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610edd9190613e83565b600354610eea9190613e39565b610ef49190613e9c565b90508082600354610f059190613ebe565b610f0f9190613ebe565b935050505090565b60146020528160005260406000208181548110610f3357600080fd5b6000918252602090912001546001600160a01b03169150829050565b60008281526001602081905260409091200154610f6b81612bdc565b610f758383612be6565b505050565b610f82612811565b60038190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610987565b610fbf612c6d565b33600081815260136020526040812060075490916001600160a01b0390911690610fec6127106064613e39565b600454600354610ffc9190613e39565b6110069190613e9c565b905060006110176127106064613e39565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190613e83565b60035461108c9190613e39565b6110969190613e9c565b6001600160a01b038087166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506113ab5760028401805460ff191660019081179091556003549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152600c5461114691906001600160a01b0316612cc6565b6111788530838560035461115a9190613ebe565b6111649190613ebe565b600c546001600160a01b0316929190612d24565b6111b76040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083612da8565b81156112245760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260065461120791906001600160a01b0316612cc6565b600654600c54611224916001600160a01b03918216911684612e06565b6112636040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082612da8565b8015611364576112ec60405180606001604052806026815260200161464760269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112e79190613ed1565b612cc6565b611364836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561132d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113519190613ed1565b600c546001600160a01b03169083612e06565b600354604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506113ba6001600055565b565b6001600160a01b038116331461143f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b6114498282612e36565b5050565b611455612811565b61145e8161292e565b600a80546001600160a01b0319166001600160a01b03838116918217909255600d546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610987565b6114c2612c6d565b6114ca612eb9565b3360008181526014602090815260408083208054825181850281018501909352808352919290919083018282801561152b57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161150d575b50505050509050600080600090505b82518110156116fb5782818151811061155557611555613eee565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af11580156115b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d49190613e83565b915081156116e9576001600160a01b0384166000908152601260205260408120845184929086908590811061160b5761160b613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002060008282546116429190613ebe565b925050819055506116e96040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525060126000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815181106116bb576116bb613eee565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054612da8565b806116f381613f04565b91505061153a565b50600c54611714906001600160a01b0316843087612d24565b6001600160a01b0383166000908152601360205260408120600101805486929061173f908490613ebe565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a1505050610d0a6001600055565b61179c612c6d565b6117a4612eb9565b336000818152601460209081526040808320600354601390935290832060010154909291906117d4908690613f1d565b101561180c576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600c54611823906001600160a01b03168486612e06565b60005b8254811015611ade57600083828154811061184357611843613eee565b6000918252602090912001546001600160a01b0316905061186b8163f1801e6160e01b612f18565b15611a12576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af11580156118d8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118fc9190613e83565b9250600060126000876001600160a01b03166001600160a01b03168152602001908152602001600020600086858154811061193957611939613eee565b60009182526020808320909101546001600160a01b031683528201929092526040019020549050808411156119a4576040517f8a11f3180000000000000000000000000000000000000000000000000000000081526004810185905260248101829052604401611436565b6001600160a01b038616600090815260126020526040812086548692908890879081106119d3576119d3613eee565b60009182526020808320909101546001600160a01b0316835282019290925260400181208054909190611a07908490613f1d565b909155505050611acb565b83548490611a2290600190613f1d565b81548110611a3257611a32613eee565b9060005260206000200160009054906101000a90046001600160a01b0316848381548110611a6257611a62613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555083805480611aa057611aa0613f30565b600082815260209020810160001990810180546001600160a01b0319169055019055611acb8161296e565b5080611ad681613f04565b915050611826565b506001600160a01b03831660009081526013602052604081206001018054869290611b0a908490613f1d565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff8910161177f565b611b56612c6d565b611b5e612811565b60025460ff16611b9a576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052611bfd57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038083166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151590820152611c4b83612f3b565b6001600160a01b03838116600090815260136020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff19169055600c5490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015611cd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cfd9190613f46565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506114496001600055565b611d61612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611dab573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611dd39190810190613f63565b602001519050611de28161292e565b6114498161296e565b611df3612811565b600e5460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa158015611e3d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e659190810190613f63565b602001519050611e748161292e565b611e8e6001600160a01b03821663f1801e6160e01b612f18565b1561144957611449816129c8565b611ea9816020015161292e565b611eb781610100015161292e565b8051611ec29061292e565b611ecf8160a0015161292e565b611edd81610180015161292e565b606081015115611ef457611ef48160c0015161292e565b8051600e80546001600160a01b039283166001600160a01b0319918216179091556020830151600c80549190931691161790556040810151600003611f65576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081015160035560608101516004556101408101516002805460ff1916911515919091179055610120810151600f90611f9f908261410d565b50610160810151601090611fb3908261410d565b5060a0810151600780546001600160a01b03199081166001600160a01b039384161790915560c0830151600680548316918416919091179055610100830151600d8054831682851617905561018084015160088054909316931692909217905561203e907fbc6bbe35ebc64943402c04d2ae016d7bd2bba28e1a11cf66be743c9bd74c720b90612be6565b600e60009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa158015612091573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120b59190613ed1565b600b80546001600160a01b0319166001600160a01b03928316179055600d54604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa15801561212f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261215791908101906141cd565b90506000815160026121699190613ebe565b67ffffffffffffffff8111156121815761218161388c565b6040519080825280602002602001820160405280156121aa578160200160208202803683370190505b50905060005b825181101561220f578281815181106121cb576121cb613eee565b60200260200101518282815181106121e5576121e5613eee565b6001600160a01b03909216602092830291909101909101528061220781613f04565b9150506121b0565b50600d5481516001600160a01b0390911690829061222f90600190613f1d565b8151811061223f5761223f613eee565b60200260200101906001600160a01b031690816001600160a01b03168152505030816002835161226f9190613f1d565b8151811061227f5761227f613eee565b6001600160a01b039283166020918202929092010152600b54608085015160e08601516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f926122e79291600f913090889060040161435f565b6020604051808303816000875af1158015612306573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061232a9190613e83565b60055580516123409060169060208401906136e9565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed03205600554600f8560e0015160405161237b939291906143ad565b60405180910390a1505050565b60085460098054600092839283926123b7926001600160a01b031691846123ae83613f04565b9190505561305d565b90506123c58187878761262c565b9250925050935093915050565b600a546001600160a01b03163314612416576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6113ba6130b1565b6010805461242b90614085565b80601f016020809104026020016040519081016040528092919081815260200182805461245790614085565b80156124a45780601f10612479576101008083540402835291602001916124a4565b820191906000526020600020905b81548152906001019060200180831161248757829003601f168201915b505050505081565b6124b4612c6d565b336124be81612879565b6124c781612f3b565b6001600160a01b0380821660008181526013602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945560149052918220909161253e919061374e565b600c54602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612596573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125ba9190613f46565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506113ba6001600055565b61261c612710600a613e39565b81565b600f805461242b90614085565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b038616156126565750845b869150600060168054806020026020016040519081016040528092919081815260200182805480156126b157602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612693575b5050600e546005546040519596506001600160a01b039091169463e1007d4a94509092508791506126e6908b906020016143f6565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161271c979695949392919061449f565b6020604051808303816000875af115801561273b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061275f9190613e83565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a8960405161279895949392919061450b565b60405180910390a1505094509492505050565b600082815260016020819052604090912001546127c781612bdc565b610f758383612e36565b6001600160a01b03811660009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604081205460ff16610902565b3360009081527fb5ecf5ecfeba8b6e20c37ad4ed6024e3afbcd2e706bee2e266a62cb37e60342c602052604090205460ff166113ba576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038082166000908152601360209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff1615159101819052610d0a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03811660009081526011602052604090205460ff16610d0a576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116610d0a576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6129778161292e565b6001600160a01b038116600081815260116020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610987565b6001600160a01b03811660009081526011602052604090205460ff1615612a1b576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815260116020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610987565b806001600160a01b0316826001600160a01b031614611449576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0382166000908152601460205260408120905b8154811015612bd657826001600160a01b0316828281548110612af957612af9613eee565b6000918252602090912001546001600160a01b031603612bc45781548290612b2390600190613f1d565b81548110612b3357612b33613eee565b9060005260206000200160009054906101000a90046001600160a01b0316828281548110612b6357612b63613eee565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555081805480612ba157612ba1613f30565b600082815260209020810160001990810180546001600160a01b03191690550190555b80612bce81613f04565b915050612ad4565b50505050565b610d0a813361310c565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b600260005403612cbf5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401611436565b6002600055565b6114498282604051602401612cdc929190614545565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b0380851660248301528316604482015260648101829052612bd69085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526131a2565b6114498282604051602401612dbe929190614570565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613181565b6040516001600160a01b038316602482015260448101829052610f7590849063a9059cbb60e01b90606401612d71565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff16156114495760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b33600090815260136020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff16151591018190526113ba57604051636a5cfb6d60e01b815260040160405180910390fd5b6000612f238361328a565b8015612f345750612f3483836132bd565b9392505050565b6001600160a01b038116600090815260146020908152604080832080548251818502810185019093528083529192909190830182828015612fa557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f87575b5050505050905060005b8151811015610f7557818181518110612fca57612fca613eee565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b15801561303257600080fd5b505af1158015613046573d6000803e3d6000fd5b50505050808061305590613f04565b915050612faf565b6040516bffffffffffffffffffffffff193360601b1660208201526034810182905260009081906054016040516020818303038152906040528051906020012090506130a98482613346565b949350505050565b600a8054600d80546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff166114495761313f816133e3565b61314a8360206133f5565b60405160200161315b929190614592565b60408051601f198184030181529082905262461bcd60e51b825261143691600401613d9a565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b60006131f7826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166135d69092919063ffffffff16565b90508051600014806132185750808060200190518101906132189190613f46565b610f755760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f742073756363656564000000000000000000000000000000000000000000006064820152608401611436565b600061329d826301ffc9a760e01b6132bd565b801561090257506132b6826001600160e01b03196132bd565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561332f575060208210155b801561333b5750600081115b979650505050505050565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b0381166109025760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c65640000000000000000006044820152606401611436565b60606109026001600160a01b03831660145b60606000613404836002613e39565b61340f906002613ebe565b67ffffffffffffffff8111156134275761342761388c565b6040519080825280601f01601f191660200182016040528015613451576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061348857613488613eee565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106134d3576134d3613eee565b60200101906001600160f81b031916908160001a90535060006134f7846002613e39565b613502906001613ebe565b90505b6001811115613587577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061354357613543613eee565b1a60f81b82828151811061355957613559613eee565b60200101906001600160f81b031916908160001a90535060049490941c9361358081614613565b9050613505565b508315612f345760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611436565b60606130a9848460008585600080866001600160a01b031685876040516135fd919061462a565b60006040518083038185875af1925050503d806000811461363a576040519150601f19603f3d011682016040523d82523d6000602084013e61363f565b606091505b509150915061333b87838387606083156136ba5782516000036136b3576001600160a01b0385163b6136b35760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401611436565b50816130a9565b6130a983838151156136cf5781518083602001fd5b8060405162461bcd60e51b81526004016114369190613d9a565b82805482825590600052602060002090810192821561373e579160200282015b8281111561373e57825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190613709565b5061374a929150613768565b5090565b5080546000825590600052602060002090810190610d0a91905b5b8082111561374a5760008155600101613769565b60006020828403121561378f57600080fd5b81356001600160e01b031981168114612f3457600080fd5b6000602082840312156137b957600080fd5b5035919050565b6001600160a01b0381168114610d0a57600080fd5b80356137e0816137c0565b919050565b600080604083850312156137f857600080fd5b8235613803816137c0565b91506020830135613813816137c0565b809150509250929050565b60006020828403121561383057600080fd5b8135612f34816137c0565b6000806040838503121561384e57600080fd5b8235613859816137c0565b946020939093013593505050565b6000806040838503121561387a57600080fd5b823591506020830135613813816137c0565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156138c5576138c561388c565b60405290565b6040516101a0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051610120810167ffffffffffffffff811182821017156138c5576138c561388c565b60405160c0810167ffffffffffffffff811182821017156138c5576138c561388c565b604051601f8201601f1916810167ffffffffffffffff8111828210171561395f5761395f61388c565b604052919050565b600067ffffffffffffffff8211156139815761398161388c565b50601f01601f191660200190565b600082601f8301126139a057600080fd5b81356139b36139ae82613967565b613936565b8181528460208386010111156139c857600080fd5b816020850160208301376000918101602001919091529392505050565b6000604082840312156139f757600080fd5b6139ff6138a2565b905081358152602082013567ffffffffffffffff811115613a1f57600080fd5b613a2b8482850161398f565b60208301525092915050565b8015158114610d0a57600080fd5b80356137e081613a37565b600060208284031215613a6257600080fd5b813567ffffffffffffffff80821115613a7a57600080fd5b908301906101a08286031215613a8f57600080fd5b613a976138cb565b613aa0836137d5565b8152613aae602084016137d5565b6020820152604083013560408201526060830135606082015260808301356080820152613add60a084016137d5565b60a0820152613aee60c084016137d5565b60c082015260e083013582811115613b0557600080fd5b613b11878286016139e5565b60e083015250610100613b258185016137d5565b908201526101208381013583811115613b3d57600080fd5b613b498882870161398f565b828401525050610140613b5d818501613a45565b908201526101608381013583811115613b7557600080fd5b613b818882870161398f565b8284015250506101809150613b978284016137d5565b91810191909152949350505050565b8035600381106137e057600080fd5b60048110610d0a57600080fd5b80356137e081613bb5565b600060208284031215613bdf57600080fd5b6040516020810181811067ffffffffffffffff82111715613c0257613c0261388c565b6040529135825250919050565b600060408284031215613c2157600080fd5b613c296138a2565b90508135613c36816137c0565b808252506020820135602082015292915050565b60006101408284031215613c5d57600080fd5b613c656138ef565b9050613c70826137d5565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152613ca660a08301613ba6565b60a0820152613cb760c08301613bc2565b60c0820152613cc98360e08401613bcd565b60e0820152610100613cdd84828501613c0f565b9082015292915050565b60008060006101808486031215613cfd57600080fd5b8335613d08816137c0565b9250613d178560208601613c4a565b915061016084013567ffffffffffffffff811115613d3457600080fd5b613d40868287016139e5565b9150509250925092565b60005b83811015613d65578181015183820152602001613d4d565b50506000910152565b60008151808452613d86816020860160208601613d4a565b601f01601f19169290920160200192915050565b602081526000612f346020830184613d6e565b6000806000806101a08587031215613dc457600080fd5b8435613dcf816137c0565b93506020850135613ddf816137c0565b9250613dee8660408701613c4a565b915061018085013567ffffffffffffffff811115613e0b57600080fd5b613e17878288016139e5565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b808202811582820484141761090257610902613e23565b634e487b7160e01b600052602160045260246000fd5b600060208284031215613e7857600080fd5b8151612f3481613bb5565b600060208284031215613e9557600080fd5b5051919050565b600082613eb957634e487b7160e01b600052601260045260246000fd5b500490565b8082018082111561090257610902613e23565b600060208284031215613ee357600080fd5b8151612f34816137c0565b634e487b7160e01b600052603260045260246000fd5b600060018201613f1657613f16613e23565b5060010190565b8181038181111561090257610902613e23565b634e487b7160e01b600052603160045260246000fd5b600060208284031215613f5857600080fd5b8151612f3481613a37565b60006020808385031215613f7657600080fd5b825167ffffffffffffffff80821115613f8e57600080fd5b9084019060c08287031215613fa257600080fd5b613faa613913565b8251815283830151613fbb816137c0565b818501526040830151613fcd816137c0565b6040820152606083015182811115613fe457600080fd5b830160408189031215613ff657600080fd5b613ffe6138a2565b81518152858201518481111561401357600080fd5b82019350601f8401891361402657600080fd5b835191506140366139ae83613967565b828152898784870101111561404a57600080fd5b61405983888301898801613d4a565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c9082168061409957607f821691505b6020821081036140b957634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115610f7557600081815260208120601f850160051c810160208610156140e65750805b601f850160051c820191505b81811015614105578281556001016140f2565b505050505050565b815167ffffffffffffffff8111156141275761412761388c565b61413b816141358454614085565b846140bf565b602080601f83116001811461417057600084156141585750858301515b600019600386901b1c1916600185901b178555614105565b600085815260208120601f198616915b8281101561419f57888601518255948401946001909101908401614180565b50858210156141bd5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156141e057600080fd5b825167ffffffffffffffff808211156141f857600080fd5b818501915085601f83011261420c57600080fd5b81518181111561421e5761421e61388c565b8060051b915061422f848301613936565b818152918301840191848101908884111561424957600080fd5b938501935b838510156142735784519250614263836137c0565b828252938501939085019061424e565b98975050505050505050565b6000815461428c81614085565b8085526020600183811680156142a957600181146142c3576142f1565b60ff1985168884015283151560051b8801830195506142f1565b866000528260002060005b858110156142e95781548a82018601529083019084016142ce565b890184019650505b505050505092915050565b8051825260006020820151604060208501526130a96040850182613d6e565b600081518084526020808501945080840160005b838110156143545781516001600160a01b03168752958201959082019060010161432f565b509495945050505050565b85815260a06020820152600061437860a083018761427f565b828103604084015261438a81876142fc565b90506001600160a01b03851660608401528281036080840152614273818561431b565b8381526060602082015260006143c6606083018561427f565b82810360408401526143d881856142fc565b9695505050505050565b600481106143f2576143f2613e50565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061444957614449613e50565b8060a08401525060c083015161446260c08401826143e2565b5060e083015161447560e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526144c860e0840189613d6e565b818816606085015286608085015283810360a08501526144e881876142fc565b91505082810360c08401526144fd818561431b565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a0608083015261333b60a08301846142fc565b6040815260006145586040830185613d6e565b90506001600160a01b03831660208301529392505050565b6040815260006145836040830185613d6e565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516145ca816017850160208801613d4a565b7f206973206d697373696e6720726f6c65200000000000000000000000000000006017918401918201528351614607816028840160208801613d4a565b01602801949350505050565b60008161462257614622613e23565b506000190190565b6000825161463c818460208701613d4a565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829a26469706673582212200297cf8dff9b094595b6dc9d95b3192b5cdd1b6fde65c6c69a0974d05344095664736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a829c05816bcf8bf65b73639e9f33110325eff0b3a6dfca252e0fc1468308edb64736f6c63430008130033","sourceMap":"422:639:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3434:249:132;;;;;;;;;;-1:-1:-1;3434:249:132;;;;;:::i;:::-;;:::i;:::-;;;710:25:143;;;698:2;683:18;3434:249:132;;;;;;;;3143:195:67;;;;;;;;;;-1:-1:-1;3143:195:67;;;;;:::i;:::-;;:::i;:::-;;3657:220;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;3070:208:132:-;;;;;;;;;;-1:-1:-1;3070:208:132;;;;;:::i;:::-;;:::i;978:81:133:-;;;;;;;;;;;;;:::i;2085:101:46:-;;;;;;;;;;;;;:::i;2497:222:132:-;;;;;;;;;;-1:-1:-1;2497:222:132;;;;;:::i;:::-;;:::i;1957:534::-;;;;;;;;;;-1:-1:-1;1957:534:132;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5932:55:143;;;5914:74;;5902:2;5887:18;1957:534:132;5768:226:143;1462:85:46;;;;;;;;;;-1:-1:-1;1534:6:46;;-1:-1:-1;;;;;1534:6:46;1462:85;;2725:115:132;;;;;;;;;;-1:-1:-1;2815:18:132;;-1:-1:-1;;;;;2815:18:132;2725:115;;573:20;;;;;;;;;;;;;;;;2846:218;;;;;;;;;;-1:-1:-1;2846:218:132;;;;;:::i;:::-;;:::i;655:33::-;;;;;;;;;;-1:-1:-1;655:33:132;;;;-1:-1:-1;;;;;655:33:132;;;1659:292;;;;;;;;;;-1:-1:-1;1659:292:132;;;;;:::i;:::-;;:::i;2335:198:46:-;;;;;;;;;;-1:-1:-1;2335:198:46;;;;;:::i;:::-;;:::i;3284:144:132:-;;;;;;;;;;-1:-1:-1;3284:144:132;;;;;:::i;:::-;-1:-1:-1;;;;;3388:27:132;3365:4;3388:27;;;:15;:27;;;;;:33;;;;;;3284:144;;;;6580:14:143;;6573:22;6555:41;;6543:2;6528:18;3284:144:132;6415:187:143;3434:249:132;-1:-1:-1;;;;;3533:27:132;;3509:7;3533:27;;;:15;:27;;;;;:33;;;;;3528:100;;3589:28;;;;;-1:-1:-1;;;;;5932:55:143;;3589:28:132;;;5914:74:143;5887:18;;3589:28:132;;;;;;;;3528:100;-1:-1:-1;;;;;;3645:27:132;;;;;:15;:27;;;;;:31;;3434:249::o;3143:195:67:-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:143;1629:80:67;;;6791:21:143;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:143;;;6931:42;6990:19;;1629:80:67;6607:408:143;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:143;1719:87:67;;;7204:21:143;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:143;;;7344:42;7403:19;;1719:87:67;7020:408:143;1719:87:67;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;:::-;3143:195:::0;:::o;3657:220::-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:143;1629:80:67;;;6791:21:143;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:143;;;6931:42;6990:19;;1629:80:67;6607:408:143;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:143;1719:87:67;;;7204:21:143;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:143;;;7344:42;7403:19;;1719:87:67;7020:408:143;1719:87:67;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;:::-;3657:220:::0;;:::o;2762:131::-;2840:7;2080:4;-1:-1:-1;;;;;2089:6:67;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:67;;7635:2:143;2064:92:67;;;7617:21:143;7674:2;7654:18;;;7647:30;7713:34;7693:18;;;7686:62;7784:26;7764:18;;;7757:54;7828:19;;2064:92:67;7433:420:143;2064:92:67;-1:-1:-1;1030:66:64::1;2762:131:67::0;:::o;3070:208:132:-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;3170:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;3170:44:132::1;::::0;::::1;;::::0;;::::1;::::0;;;3229:42;;8026:74:143;;;8116:18;;;8109:50;3229:42:132::1;::::0;7999:18:143;3229:42:132::1;;;;;;;;3070:208:::0;;:::o;978:81:133:-;4882:13:48;;1023:1:133;;4882:13:48;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:48;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:48;;8372:2:143;4873:99:48;;;8354:21:143;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;8521:16;8501:18;;;8494:44;8555:19;;4873:99:48;8170:410:143;4873:99:48;4982:12;:22;;-1:-1:-1;;5014:20:48;4982:22;;;5014:20;4982:22;5014:20;;;1036:16:133::1;:14;:16::i;:::-;5071:5:48::0;5055:21;;-1:-1:-1;;5055:21:48;;;5091:20;;8757:4:143;8745:17;;8727:36;;5091:20:48;;8715:2:143;8700:18;5091:20:48;;;;;;;;978:81:133;:::o;2085:101:46:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2497:222:132:-;1355:13:46;:11;:13::i;:::-;2585:35:132::1;2604:15;2585:18;:35::i;:::-;2630:18;:36:::0;;-1:-1:-1;;2630:36:132::1;-1:-1:-1::0;;;;;2630:36:132;::::1;::::0;;::::1;::::0;;;2681:31:::1;::::0;5914:74:143;;;2681:31:132::1;::::0;5902:2:143;5887:18;2681:31:132::1;5768:226:143::0;1957:534:132;2079:31;2126:35;2164:23;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2213:5:132;:7;;2126:61;;-1:-1:-1;2213:5:132;:7;;;:::i;:::-;;;;-1:-1:-1;2197:13:132;;;:23;2264:4;2230:23;;;:39;2280:36;;;;;-1:-1:-1;;;;;2280:28:132;;;;;:36;;2197:6;;2280:36;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;;;2326:43:132;;;;;;:15;:43;;;;;;;;;2378:4;2326:49;;;:56;;-1:-1:-1;;2326:56:132;;;;;;2397:44;;5914:74:143;;;2397:44:132;;5887:18:143;2397:44:132;;;;;;;2466:17;1957:534;-1:-1:-1;;1957:534:132:o;2846:218::-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;2950:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;3014:43;;11911:74:143;;;12001:18;;11994:34;;;3014:43:132::1;::::0;11884:18:143;3014:43:132::1;11737:297:143::0;1659:292:132;3279:19:48;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:48;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:48;1713:19:51;:23;;;3387:66:48;;-1:-1:-1;3436:12:48;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:48;;8372:2:143;3325:201:48;;;8354:21:143;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;8521:16;8501:18;;;8494:44;8555:19;;3325:201:48;8170:410:143;3325:201:48;3536:12;:16;;-1:-1:-1;;3536:16:48;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:48;;;;;3562:65;1745:16:132::1;:14;:16::i;:::-;1779:1;1771:5;:9:::0;1790:18:::1;:40:::0;;-1:-1:-1;;1790:40:132::1;-1:-1:-1::0;;;;;1790:40:132;::::1;::::0;;::::1;::::0;;;1845:35:::1;::::0;5914:74:143;;;1845:35:132::1;::::0;5902:2:143;5887:18;1845:35:132::1;;;;;;;3651:14:48::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:48;;;3721:14;;-1:-1:-1;8727:36:143;;3721:14:48;;8715:2:143;8700:18;3721:14:48;8585:184:143;2335:198:46;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:46;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:46;;12440:2:143;2415:73:46::1;::::0;::::1;12422:21:143::0;12479:2;12459:18;;;12452:30;12518:34;12498:18;;;12491:62;12589:8;12569:18;;;12562:36;12615:19;;2415:73:46::1;12238:402:143::0;2415:73:46::1;2498:28;2517:8;2498:18;:28::i;3689:66:132:-:0;1355:13:46;:11;:13::i;2494:922:64:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;:::-;2494:922;;;:::o;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:64;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:64;;;;;;;;-1:-1:-1;;3046:52:64;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:64;;13036:2:143;3262:56:64;;;13018:21:143;13075:2;13055:18;;;13048:30;13114:34;13094:18;;;13087:62;13185:16;13165:18;;;13158:44;13219:19;;3262:56:64;12834:410:143;3042:291:64;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:64;;13451:2:143;3140:82:64;;;13433:21:143;13490:2;13470:18;;;13463:30;13529:34;13509:18;;;13502:62;13600:11;13580:18;;;13573:39;13629:19;;3140:82:64;13249:405:143;3140:82:64;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;1620:130:46:-;1534:6;;-1:-1:-1;;;;;1534:6:46;965:10:52;1683:23:46;1675:68;;;;-1:-1:-1;;;1675:68:46;;13861:2:143;1675:68:46;;;13843:21:143;;;13880:18;;;13873:30;13939:34;13919:18;;;13912:62;13991:18;;1675:68:46;13659:356:143;1024:95:46;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14222:2:143;5366:69:48;;;14204:21:143;14261:2;14241:18;;;14234:30;14300:34;14280:18;;;14273:62;-1:-1:-1;;;14351:18:143;;;14344:41;14402:19;;5366:69:48;14020:407:143;5366:69:48;1086:26:46::1;:24;:26::i;2687:187::-:0;2779:6;;;-1:-1:-1;;;;;2795:17:46;;;-1:-1:-1;;2795:17:46;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1520:133:132:-;-1:-1:-1;;;;;1594:22:132;;1590:56;;1625:21;;;;;;;;;;;;;;1406:259:64;-1:-1:-1;;;;;1713:19:51;;;1479:95:64;;;;-1:-1:-1;;;1479:95:64;;14634:2:143;1479:95:64;;;14616:21:143;14673:2;14653:18;;;14646:30;14712:34;14692:18;;;14685:62;14783:15;14763:18;;;14756:43;14816:19;;1479:95:64;14432:409:143;1479:95:64;1030:66;1584:74;;-1:-1:-1;;1584:74:64;-1:-1:-1;;;;;1584:74:64;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2057:265;;;:::o;1125:111:46:-;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14222:2:143;5366:69:48;;;14204:21:143;14261:2;14241:18;;;14234:30;14300:34;14280:18;;;14273:62;-1:-1:-1;;;14351:18:143;;;14344:41;14402:19;;5366:69:48;14020:407:143;5366:69:48;1197:32:46::1;965:10:52::0;1197:18:46::1;:32::i;1771:152:64:-:0;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:64;;;;;;;;1771:152;:::o;6674:198:79:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:79:o;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:79;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:79:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:51;;;8113:60:79;;;;-1:-1:-1;;;8113:60:79;;15340:2:143;8113:60:79;;;15322:21:143;15379:2;15359:18;;;15352:30;15418:31;15398:18;;;15391:59;15467:18;;8113:60:79;15138:353:143;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;:::o;14:154:143:-;-1:-1:-1;;;;;93:5:143;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;746:184::-;-1:-1:-1;;;795:1:143;788:88;895:4;892:1;885:15;919:4;916:1;909:15;935:250;1002:2;996:9;1044:6;1032:19;;1081:18;1066:34;;1102:22;;;1063:62;1060:88;;;1128:18;;:::i;:::-;1164:2;1157:22;935:250;:::o;1190:631::-;1254:5;1284:18;1325:2;1317:6;1314:14;1311:40;;;1331:18;;:::i;:::-;1406:2;1400:9;1374:2;1460:15;;-1:-1:-1;;1456:24:143;;;1482:2;1452:33;1448:42;1436:55;;;1506:18;;;1526:22;;;1503:46;1500:72;;;1552:18;;:::i;:::-;1592:10;1588:2;1581:22;1621:6;1612:15;;1651:6;1643;1636:22;1691:3;1682:6;1677:3;1673:16;1670:25;1667:45;;;1708:1;1705;1698:12;1667:45;1758:6;1753:3;1746:4;1738:6;1734:17;1721:44;1813:1;1806:4;1797:6;1789;1785:19;1781:30;1774:41;;;;1190:631;;;;;:::o;1826:584::-;1903:6;1911;1964:2;1952:9;1943:7;1939:23;1935:32;1932:52;;;1980:1;1977;1970:12;1932:52;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;-1:-1:-1;2144:2:143;2129:18;;2116:32;2171:18;2160:30;;2157:50;;;2203:1;2200;2193:12;2157:50;2226:22;;2279:4;2271:13;;2267:27;-1:-1:-1;2257:55:143;;2308:1;2305;2298:12;2257:55;2331:73;2396:7;2391:2;2378:16;2373:2;2369;2365:11;2331:73;:::i;:::-;2321:83;;;1826:584;;;;;:::o;2597:160::-;2662:20;;2718:13;;2711:21;2701:32;;2691:60;;2747:1;2744;2737:12;2762:315;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;2943:9;2930:23;2962:31;2987:5;2962:31;:::i;:::-;3012:5;-1:-1:-1;3036:35:143;3067:2;3052:18;;3036:35;:::i;:::-;3026:45;;2762:315;;;;;:::o;3082:221::-;3125:5;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;3218:79;3293:3;3284:6;3271:20;3264:4;3256:6;3252:17;3218:79;:::i;3308:610::-;3363:5;3411:4;3399:9;3394:3;3390:19;3386:30;3383:50;;;3429:1;3426;3419:12;3383:50;3462:4;3456:11;3506:4;3498:6;3494:17;3530:18;3598:6;3586:10;3583:22;3578:2;3566:10;3563:18;3560:46;3557:72;;;3609:18;;:::i;:::-;3651:10;3645:4;3638:24;3680:6;3671:15;;3723:9;3710:23;3702:6;3695:39;3785:2;3774:9;3770:18;3757:32;3743:46;;3812:2;3804:6;3801:14;3798:34;;;3828:1;3825;3818:12;3798:34;;3865:46;3907:3;3898:6;3887:9;3883:22;3865:46;:::i;:::-;3860:2;3852:6;3848:15;3841:71;;;3308:610;;;;:::o;3923:1708::-;4017:6;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4126:9;4113:23;4155:18;4196:2;4188:6;4185:14;4182:34;;;4212:1;4209;4202:12;4182:34;4235:22;;;;4291:6;4273:16;;;4269:29;4266:49;;;4311:1;4308;4301:12;4266:49;4337:17;;:::i;:::-;4377:22;4396:2;4377:22;:::i;:::-;4370:5;4363:37;4432:31;4459:2;4455;4451:11;4432:31;:::i;:::-;4427:2;4420:5;4416:14;4409:55;4517:2;4513;4509:11;4496:25;4491:2;4484:5;4480:14;4473:49;4575:2;4571;4567:11;4554:25;4549:2;4542:5;4538:14;4531:49;4634:3;4630:2;4626:12;4613:26;4607:3;4600:5;4596:15;4589:51;4673:32;4700:3;4696:2;4692:12;4673:32;:::i;:::-;4667:3;4660:5;4656:15;4649:57;4739:32;4766:3;4762:2;4758:12;4739:32;:::i;:::-;4733:3;4726:5;4722:15;4715:57;4818:3;4814:2;4810:12;4797:26;4848:2;4838:8;4835:16;4832:36;;;4864:1;4861;4854:12;4832:36;4901:54;4947:7;4936:8;4932:2;4928:17;4901:54;:::i;:::-;4895:3;4888:5;4884:15;4877:79;;4975:3;5010:31;5037:2;5033;5029:11;5010:31;:::i;:::-;4994:14;;;4987:55;5061:3;5102:11;;;5089:25;5126:16;;;5123:36;;;5155:1;5152;5145:12;5123:36;5191:45;5228:7;5217:8;5213:2;5209:17;5191:45;:::i;:::-;5186:2;5179:5;5175:14;5168:69;;;5256:3;5291:28;5315:2;5311;5307:11;5291:28;:::i;:::-;5275:14;;;5268:52;5339:3;5380:11;;;5367:25;5404:16;;;5401:36;;;5433:1;5430;5423:12;5401:36;5469:45;5506:7;5495:8;5491:2;5487:17;5469:45;:::i;:::-;5464:2;5457:5;5453:14;5446:69;;;5534:3;5524:13;;5569:31;5596:2;5592;5588:11;5569:31;:::i;:::-;5553:14;;;5546:55;;;;5557:5;3923:1708;-1:-1:-1;;;;3923:1708:143:o;5999:315::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;6304:2;6289:18;;;;6276:32;;-1:-1:-1;;;5999:315:143:o;8774:289::-;8813:3;8834:17;;;8831:197;;-1:-1:-1;;;8881:1:143;8874:88;8985:4;8982:1;8975:15;9013:4;9010:1;9003:15;8831:197;-1:-1:-1;9055:1:143;9044:13;;8774:289::o;9068:250::-;9153:1;9163:113;9177:6;9174:1;9171:13;9163:113;;;9253:11;;;9247:18;9234:11;;;9227:39;9199:2;9192:10;9163:113;;;-1:-1:-1;;9310:1:143;9292:16;;9285:27;9068:250::o;9323:271::-;9365:3;9403:5;9397:12;9430:6;9425:3;9418:19;9446:76;9515:6;9508:4;9503:3;9499:14;9492:4;9485:5;9481:16;9446:76;:::i;:::-;9576:2;9555:15;-1:-1:-1;;9551:29:143;9542:39;;;;9583:4;9538:50;;9323:271;-1:-1:-1;;9323:271:143:o;9599:252::-;9686:5;9680:12;9675:3;9668:25;9650:3;9739:4;9732:5;9728:16;9722:23;9777:4;9770;9765:3;9761:14;9754:28;9798:47;9839:4;9834:3;9830:14;9816:12;9798:47;:::i;9856:1876::-;10055:2;10044:9;10037:21;10067:53;10116:2;10105:9;10101:18;10092:6;10086:13;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;10067:53;10018:4;10167:2;10159:6;10155:15;10149:22;10180:52;10228:2;10217:9;10213:18;10199:12;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;10180:52;;10286:2;10278:6;10274:15;10268:22;10263:2;10252:9;10248:18;10241:50;10346:2;10338:6;10334:15;10328:22;10322:3;10311:9;10307:19;10300:51;10406:3;10398:6;10394:16;10388:23;10382:3;10371:9;10367:19;10360:52;10461:3;10453:6;10449:16;10443:23;10475:55;10525:3;10514:9;10510:19;10494:14;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;10475:55;-1:-1:-1;10579:3:143;10567:16;;10561:23;-1:-1:-1;;;;;5702:54:143;;10643:3;10628:19;;5690:67;10593:55;10697:3;10689:6;10685:16;10679:23;10721:6;10746:3;10785:2;10780;10769:9;10765:18;10758:30;10811:63;10869:3;10858:9;10854:19;10838:14;10811:63;:::i;:::-;10911:15;;;10905:22;10797:77;;-1:-1:-1;10946:3:143;10958:54;10993:18;;;10905:22;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;10958:54;11061:2;11053:6;11049:15;11043:22;11021:44;;;11088:2;11084:7;11110:3;11177:2;11165:9;11157:6;11153:22;11149:31;11144:2;11133:9;11129:18;11122:59;11204:41;11238:6;11222:14;11204:41;:::i;:::-;11190:55;;11294:2;11286:6;11282:15;11276:22;11254:44;;;11317:3;11329:51;11376:2;11365:9;11361:18;11345:14;6389:13;6382:21;6370:34;;6319:91;11329:51;11429:2;11421:6;11417:15;11411:22;11389:44;;;11452:3;11519:2;11507:9;11499:6;11495:22;11491:31;11486:2;11475:9;11471:18;11464:59;11546:41;11580:6;11564:14;11546:41;:::i;:::-;11532:55;;11636:2;11628:6;11624:15;11618:22;11596:44;;;;11649:54;11699:2;11688:9;11684:18;11668:14;-1:-1:-1;;;;;5702:54:143;5690:67;;5636:127;11649:54;-1:-1:-1;11720:6:143;;9856:1876;-1:-1:-1;;;;9856:1876:143:o;12645:184::-;12715:6;12768:2;12756:9;12747:7;12743:23;12739:32;12736:52;;;12784:1;12781;12774:12;12736:52;-1:-1:-1;12807:16:143;;12645:184;-1:-1:-1;12645:184:143:o;14846:287::-;14975:3;15013:6;15007:13;15029:66;15088:6;15083:3;15076:4;15068:6;15064:17;15029:66;:::i;:::-;15111:16;;;;;14846:287;-1:-1:-1;;14846:287:143:o;15496:220::-;15645:2;15634:9;15627:21;15608:4;15665:45;15706:2;15695:9;15691:18;15683:6;15665:45;:::i","linkReferences":{},"immutableReferences":{"55944":[{"start":987,"length":32},{"start":1120,"length":32},{"start":1366,"length":32},{"start":1499,"length":32},{"start":1733,"length":32}]}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","initialize(address)":"c4d66de8","initializeV2()":"5cd8a76b","nonce()":"affed0e0","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunity.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gardensFeeReceiver\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-from\":\"RegistryFactoryV0_0\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactoryV0_1.sol\":\"RegistryFactoryV0_1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c\",\"dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55\",\"dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/RegistryFactoryV0_0.sol\":{\"keccak256\":\"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587\",\"dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut\"]},\"pkg/contracts/src/RegistryFactoryV0_1.sol\":{\"keccak256\":\"0xd26de80bc3abac11b0c8671a6aaaa9d422fb05b704f61fc3b8fbdb6285dacdc6\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://298ed925474fd1da221c531d775bd0008125fb1bd29e700dca512d62be227b7b\",\"dweb:/ipfs/QmekeaeBg2c4HypDptinsZDrz6KNm5iCE4RTprKJgXAjpa\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunity.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_gardensFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initializeV2"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactoryV0_1.sol":"RegistryFactoryV0_1"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xa92e4fa126feb6907daa0513ddd816b2eb91f30a808de54f63c17d0e162c3439","urls":["bzz-raw://a367861093b74443b137564d3f3c472f70bcf114739e62059c939f25e315706c","dweb:/ipfs/Qmd7JMpcxD9RuQjK3uM3EzJUgSqdN8vzp8eytEiuwxQJ6h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0x1c576e15a5543c06e92cb45f7162a2aa5dac1a276088ec323f5c0438f69c2e52","urls":["bzz-raw://60cb3de95b895d81666b3899a5d73d620742a5c98558ad9799c0464da7b3ab55","dweb:/ipfs/QmReM4jMH5Vc6gGeo7UtHFruHVnqY2rWaecXr1FwDmA6gE"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_0.sol":{"keccak256":"0x42d0b97d7373ad07120bfdd72eaed7e3254b02cc891468e42506612a122b13c9","urls":["bzz-raw://d9948bbf93cecb98e8abda4b7147e8c3211f2a99a79751667924b62157433587","dweb:/ipfs/QmZuuuM4c6i9Qcp3ocqTCjrDvRgXRwLkYNPY3aSbrjS1Ut"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_1.sol":{"keccak256":"0xd26de80bc3abac11b0c8671a6aaaa9d422fb05b704f61fc3b8fbdb6285dacdc6","urls":["bzz-raw://298ed925474fd1da221c531d775bd0008125fb1bd29e700dca512d62be227b7b","dweb:/ipfs/QmekeaeBg2c4HypDptinsZDrz6KNm5iCE4RTprKJgXAjpa"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":52821,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":52941,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":77950,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"nonce","offset":0,"slot":"101","type":"t_uint256"},{"astId":77955,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"communityToInfo","offset":0,"slot":"102","type":"t_mapping(t_address,t_struct(CommunityInfo)77943_storage)"},{"astId":77957,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"gardensFeeReceiver","offset":0,"slot":"103","type":"t_address"},{"astId":78205,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"104","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)77943_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)77943_storage"},"t_struct(CommunityInfo)77943_storage":{"encoding":"inplace","label":"struct CommunityInfo","numberOfBytes":"64","members":[{"astId":77940,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":77942,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactoryV0_1.sol","id":78234,"exportedSymbols":{"CommunityInfo":[78219],"OwnableUpgradeable":[52942],"RegistryCommunity":[77692],"RegistryFactoryV0_0":[78206],"RegistryFactoryV0_1":[78233]},"nodeType":"SourceUnit","src":"42:1020:133","nodes":[{"id":78208,"nodeType":"PragmaDirective","src":"42:24:133","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":78210,"nodeType":"ImportDirective","src":"68:63:133","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":78234,"sourceUnit":77693,"symbolAliases":[{"foreign":{"id":78209,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77692,"src":"76:17:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78212,"nodeType":"ImportDirective","src":"133:67:133","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactoryV0_0.sol","file":"../src/RegistryFactoryV0_0.sol","nameLocation":"-1:-1:-1","scope":78234,"sourceUnit":78207,"symbolAliases":[{"foreign":{"id":78211,"name":"RegistryFactoryV0_0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":78206,"src":"141:19:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78214,"nodeType":"ImportDirective","src":"202:110:133","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":78234,"sourceUnit":52943,"symbolAliases":[{"foreign":{"id":78213,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52942,"src":"210:18:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":78219,"nodeType":"StructDefinition","src":"314:57:133","nodes":[],"canonicalName":"CommunityInfo","members":[{"constant":false,"id":78216,"mutability":"mutable","name":"fee","nameLocation":"349:3:133","nodeType":"VariableDeclaration","scope":78219,"src":"341:11:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":78215,"name":"uint256","nodeType":"ElementaryTypeName","src":"341:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":78218,"mutability":"mutable","name":"valid","nameLocation":"363:5:133","nodeType":"VariableDeclaration","scope":78219,"src":"358:10:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":78217,"name":"bool","nodeType":"ElementaryTypeName","src":"358:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"321:13:133","scope":78234,"visibility":"public"},{"id":78233,"nodeType":"ContractDefinition","src":"422:639:133","nodes":[{"id":78232,"nodeType":"FunctionDefinition","src":"978:81:133","nodes":[],"body":{"id":78231,"nodeType":"Block","src":"1026:33:133","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":78228,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52837,"src":"1036:14:133","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":78229,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:16:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":78230,"nodeType":"ExpressionStatement","src":"1036:16:133"}]},"functionSelector":"5cd8a76b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"32","id":78225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:1:133","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":78226,"kind":"modifierInvocation","modifierName":{"id":78224,"name":"reinitializer","nameLocations":["1009:13:133"],"nodeType":"IdentifierPath","referencedDeclaration":53126,"src":"1009:13:133"},"nodeType":"ModifierInvocation","src":"1009:16:133"}],"name":"initializeV2","nameLocation":"987:12:133","parameters":{"id":78223,"nodeType":"ParameterList","parameters":[],"src":"999:2:133"},"returnParameters":{"id":78227,"nodeType":"ParameterList","parameters":[],"src":"1026:0:133"},"scope":78233,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":78221,"name":"RegistryFactoryV0_0","nameLocations":["454:19:133"],"nodeType":"IdentifierPath","referencedDeclaration":78206,"src":"454:19:133"},"id":78222,"nodeType":"InheritanceSpecifier","src":"454:19:133"}],"canonicalName":"RegistryFactoryV0_1","contractDependencies":[77692],"contractKind":"contract","documentation":{"id":78220,"nodeType":"StructuredDocumentation","src":"372:49:133","text":"@custom:oz-upgrades-from RegistryFactoryV0_0"},"fullyImplemented":true,"linearizedBaseContracts":[78233,78206,56044,55866,55515,55525,52942,53735,53191],"name":"RegistryFactoryV0_1","nameLocation":"431:19:133","scope":78234,"usedErrors":[77981,77983]}],"license":"AGPL-3.0-only"},"id":133} \ No newline at end of file +{"abi":[{"type":"function","name":"createRegistry","inputs":[{"name":"params","type":"tuple","internalType":"struct RegistryCommunityV0_0.InitializeParams","components":[{"name":"_allo","type":"address","internalType":"address"},{"name":"_gardenToken","type":"address","internalType":"contract IERC20"},{"name":"_registerStakeAmount","type":"uint256","internalType":"uint256"},{"name":"_communityFee","type":"uint256","internalType":"uint256"},{"name":"_nonce","type":"uint256","internalType":"uint256"},{"name":"_registryFactory","type":"address","internalType":"address"},{"name":"_feeReceiver","type":"address","internalType":"address"},{"name":"_metadata","type":"tuple","internalType":"struct Metadata","components":[{"name":"protocol","type":"uint256","internalType":"uint256"},{"name":"pointer","type":"string","internalType":"string"}]},{"name":"_councilSafe","type":"address","internalType":"address payable"},{"name":"_communityName","type":"string","internalType":"string"},{"name":"_isKickEnabled","type":"bool","internalType":"bool"},{"name":"covenantIpfsHash","type":"string","internalType":"string"},{"name":"_strategyTemplate","type":"address","internalType":"address"}]}],"outputs":[{"name":"_createdRegistryAddress","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"gardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"getGardensFeeReceiver","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"_gardensFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initializeV2","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"nonce","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"proxiableUUID","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"renounceOwnership","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setCommunityValidity","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_isValid","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setProtocolFee","inputs":[{"name":"_community","type":"address","internalType":"address"},{"name":"_newProtocolFee","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setReceiverAddress","inputs":[{"name":"_newFeeReceiver","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"transferOwnership","inputs":[{"name":"newOwner","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeTo","inputs":[{"name":"newImplementation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"upgradeToAndCall","inputs":[{"name":"newImplementation","type":"address","internalType":"address"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"payable"},{"type":"event","name":"AdminChanged","inputs":[{"name":"previousAdmin","type":"address","indexed":false,"internalType":"address"},{"name":"newAdmin","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeaconUpgraded","inputs":[{"name":"beacon","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityCreated","inputs":[{"name":"_registryCommunity","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"CommunityValiditySet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_isValid","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"FeeReceiverSet","inputs":[{"name":"_newFeeReceiver","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint8","indexed":false,"internalType":"uint8"}],"anonymous":false},{"type":"event","name":"OwnershipTransferred","inputs":[{"name":"previousOwner","type":"address","indexed":true,"internalType":"address"},{"name":"newOwner","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"ProtocolFeeSet","inputs":[{"name":"_community","type":"address","indexed":false,"internalType":"address"},{"name":"_newProtocolFee","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Upgraded","inputs":[{"name":"implementation","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"error","name":"AddressCannotBeZero","inputs":[]},{"type":"error","name":"CommunityInvalid","inputs":[{"name":"_community","type":"address","internalType":"address"}]}],"bytecode":{"object":"0x60a06040523060805234801561001457600080fd5b5060805161780461004c60003960008181610435015281816104bc015281816105b901528181610640015261073101526178046000f3fe608060405260043610620001245760003560e01c80638a16135f11620000b2578063b5b3ca2c116200007d578063c4d66de81162000060578063c4d66de8146200030e578063f2fde38b1462000333578063f5016b5e146200035857600080fd5b8063b5b3ca2c14620002c7578063b8bed90114620002ec57600080fd5b80638a16135f14620002315780638da5cb5b146200026f578063987435be146200028f578063affed0e014620002af57600080fd5b80635a2c8ace11620000f35780635a2c8ace14620001b75780635cd8a76b14620001dc578063715018a614620001f45780638279c7db146200020c57600080fd5b80630a992e0c14620001295780633659cfe614620001615780634f1ef286146200018857806352d1902d146200019f575b600080fd5b3480156200013657600080fd5b506200014e6200014836600462001465565b620003a9565b6040519081526020015b60405180910390f35b3480156200016e57600080fd5b50620001866200018036600462001465565b6200042b565b005b620001866200019936600462001545565b620005af565b348015620001ac57600080fd5b506200014e62000724565b348015620001c457600080fd5b5062000186620001d6366004620015c1565b620007eb565b348015620001e957600080fd5b50620001866200085c565b3480156200020157600080fd5b506200018662000956565b3480156200021957600080fd5b50620001866200022b36600462001465565b6200096e565b3480156200023e57600080fd5b50620002566200025036600462001694565b620009df565b6040516001600160a01b03909116815260200162000158565b3480156200027c57600080fd5b506033546001600160a01b031662000256565b3480156200029c57600080fd5b506067546001600160a01b031662000256565b348015620002bc57600080fd5b506200014e60655481565b348015620002d457600080fd5b5062000186620002e636600462001806565b62000b64565b348015620002f957600080fd5b5060675462000256906001600160a01b031681565b3480156200031b57600080fd5b50620001866200032d36600462001465565b62000bc0565b3480156200034057600080fd5b50620001866200035236600462001465565b62000d46565b3480156200036557600080fd5b50620003986200037736600462001465565b6001600160a01b031660009081526066602052604090206001015460ff1690565b604051901515815260200162000158565b6001600160a01b03811660009081526066602052604081206001015460ff166200040f576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620004ba5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840162000406565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620005167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614620005835760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840162000406565b6200058e8162000dd9565b60408051600080825260208201909252620005ac9183919062000de3565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036200063e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840162000406565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200069a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614620007075760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840162000406565b620007128262000dd9565b620007208282600162000de3565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620007c65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000406565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b620007f562000f94565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b600054600290610100900460ff161580156200087f575060005460ff8083169116105b620008f35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840162000406565b6000805461ffff191660ff8316176101001790556200091162000ff0565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6200096062000f94565b6200096c600062001067565b565b6200097862000f94565b6200098381620010c6565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d906020016200094b565b6065805460009182620009f28362001835565b9091555060808301523060a083015260405160009062000a129062001421565b604051809103906000f08015801562000a2f573d6000803e3d6000fd5b506040517f96f0adec000000000000000000000000000000000000000000000000000000009062000a65908690602401620018d2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905162000ad1906200142f565b62000ade92919062001a1d565b604051809103906000f08015801562000afb573d6000803e3d6000fd5b506001600160a01b0381166000818152606660209081526040918290206001908101805460ff19169091179055905191825291925082917fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a19392505050565b62000b6e62000f94565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c910162000850565b600054610100900460ff161580801562000be15750600054600160ff909116105b8062000bfd5750303b15801562000bfd575060005460ff166001145b62000c715760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840162000406565b6000805460ff19166001179055801562000c95576000805461ff0019166101001790555b62000c9f62000ff0565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a1801562000720576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200162000850565b62000d5062000f94565b6001600160a01b03811662000dce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000406565b620005ac8162001067565b620005ac62000f94565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562000e1e5762000e198362001107565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562000e7b575060408051601f3d908101601f1916820190925262000e789181019062001a41565b60015b62000eef5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840162000406565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811462000f865760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840162000406565b5062000e19838383620011d4565b6033546001600160a01b031633146200096c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000406565b600054610100900460ff166200105d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000406565b6200096c62001205565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620005ac576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381163b620011865760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840162000406565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b620011df836200127d565b600082511180620011ed5750805b1562000e1957620011ff8383620012bf565b50505050565b600054610100900460ff16620012725760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000406565b6200096c3362001067565b620012888162001107565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620012e78383604051806060016040528060278152602001620077a860279139620012ee565b9392505050565b6060600080856001600160a01b0316856040516200130d919062001a5b565b600060405180830381855af49150503d80600081146200134a576040519150601f19603f3d011682016040523d82523d6000602084013e6200134f565b606091505b509150915062001362868383876200136c565b9695505050505050565b60608315620013e0578251600003620013d8576001600160a01b0385163b620013d85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000406565b5081620013ec565b620013ec8383620013f4565b949350505050565b815115620014055781518083602001fd5b8060405162461bcd60e51b815260040162000406919062001a79565b61582b8062001a8f83390190565b6104ee80620072ba83390190565b6001600160a01b0381168114620005ac57600080fd5b803562001460816200143d565b919050565b6000602082840312156200147857600080fd5b8135620012e7816200143d565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715620014c257620014c262001485565b60405290565b600067ffffffffffffffff80841115620014e657620014e662001485565b604051601f8501601f19908116603f0116810190828211818310171562001511576200151162001485565b816040528093508581528686860111156200152b57600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156200155957600080fd5b823562001566816200143d565b9150602083013567ffffffffffffffff8111156200158357600080fd5b8301601f810185136200159557600080fd5b620015a685823560208401620014c8565b9150509250929050565b803580151581146200146057600080fd5b60008060408385031215620015d557600080fd5b8235620015e2816200143d565b9150620015f260208401620015b0565b90509250929050565b600082601f8301126200160d57600080fd5b620012e783833560208501620014c8565b6000604082840312156200163157600080fd5b6040516040810167ffffffffffffffff828210818311171562001658576200165862001485565b816040528293508435835260208501359150808211156200167857600080fd5b506200168785828601620015fb565b6020830152505092915050565b600060208284031215620016a757600080fd5b813567ffffffffffffffff80821115620016c057600080fd5b908301906101a08286031215620016d657600080fd5b620016e06200149b565b620016eb8362001453565b8152620016fb6020840162001453565b60208201526040830135604082015260608301356060820152608083013560808201526200172c60a0840162001453565b60a08201526200173f60c0840162001453565b60c082015260e0830135828111156200175757600080fd5b62001765878286016200161e565b60e0830152506101006200177b81850162001453565b9082015261012083810135838111156200179457600080fd5b620017a288828701620015fb565b828401525050610140620017b8818501620015b0565b908201526101608381013583811115620017d157600080fd5b620017df88828701620015fb565b8284015250506101809150620017f782840162001453565b91810191909152949350505050565b600080604083850312156200181a57600080fd5b823562001827816200143d565b946020939093013593505050565b6000600182016200185657634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156200187a57818101518382015260200162001860565b50506000910152565b600081518084526200189d8160208601602086016200185d565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152620013ec604085018262001883565b60208152620018ed6020820183516001600160a01b03169052565b600060208301516200190a60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516200194460c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526200197a6101c0860184620018b1565b9086015190925061012062001999868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152620019bb858462001883565b945080880151925050610160620019d58188018415159052565b80880151925050610180818786030181880152620019f4858462001883565b9450808801519250505062001a13828601826001600160a01b03169052565b5090949350505050565b6001600160a01b0383168152604060208201526000620013ec604083018462001883565b60006020828403121562001a5457600080fd5b5051919050565b6000825162001a6f8184602087016200185d565b9190910192915050565b602081526000620012e760208301846200188356fe60a06040523060805234801561001457600080fd5b506080516157de6200004d6000396000818161181101528181611896015281816119f801528181611a7d0152611b6301526157de6000f3fe6080604052600436106103a25760003560e01c80636c53db9a116101e7578063a217fddf1161010d578063c8a593e9116100a0578063db61d65c1161006f578063db61d65c14610bdf578063ebd7dc5214610c00578063f2fde38b14610c20578063f86c5f8914610c4057600080fd5b8063c8a593e914610b68578063d547741f14610b88578063d6d8428d14610ba8578063d7050f0714610bc957600080fd5b8063b64e39af116100dc578063b64e39af14610b07578063b99b437014610b29578063bc063e1a14610b3e578063c6d572ae14610b5357600080fd5b8063a217fddf14610a58578063a230c52414610a6d578063b3f0067414610ad2578063b5058c5014610af257600080fd5b806382d6a1e71161018557806391d148541161015457806391d148541461098d57806396f0adec146109d35780639a72a86f146109f3578063a0cf0aea14610a3057600080fd5b806382d6a1e7146108c857806388cfe684146108e85780638961be6b146109595780638da5cb5b1461096f57600080fd5b8063733a2d1f116101c1578063733a2d1f146108165780637817ee4f1461084a57806378a0b8a9146108915780637b103999146108a757600080fd5b80636c53db9a146107c0578063715018a6146107e157806373265c37146107f657600080fd5b806333960459116102cc5780634f1ef2861161026a5780635ecf71c5116102395780635ecf71c51461072657806365e3864c146107465780636871eb4d1461077f57806368decabb1461079f57600080fd5b80634f1ef286146106bd57806352d1902d146106d0578063559de05d146106e55780635c94e4d21461070557600080fd5b80633659cfe6116102a65780633659cfe614610610578063397e2543146106305780633a871fe114610650578063477a5cc01461068157600080fd5b806333960459146105c45780633517aa7d146105db57806336568abe146105f057600080fd5b8063223e5479116103445780632b38c69c116103135780632b38c69c146105125780632c611c4a1461054a5780632f2ff15d1461058457806331f61bca146105a457600080fd5b8063223e54791461048d57806322bcf999146104ad578063248a9ca3146104cd57806328c309e9146104fd57600080fd5b80630d12bbdb116103805780630d12bbdb146104115780630d4a8b4914610433578063175188e8146104535780631f787d281461047357600080fd5b806301ffc9a7146103a75780630331383c146103dc57806308386eba146103fb575b600080fd5b3480156103b357600080fd5b506103c76103c2366004614830565b610c61565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b5060fc545b6040519081526020016103d3565b34801561040757600080fd5b506103ed60fe5481565b34801561041d57600080fd5b5061043161042c36600461485a565b610cb1565b005b34801561043f57600080fd5b5061043161044e366004614898565b610d3b565b34801561045f57600080fd5b5061043161046e3660046148d1565b6110a7565b34801561047f57600080fd5b5060fb546103c79060ff1681565b34801561049957600080fd5b506104316104a83660046148d1565b6110bb565b3480156104b957600080fd5b506104316104c8366004614898565b6110cc565b3480156104d957600080fd5b506103ed6104e836600461485a565b600090815260c9602052604090206001015490565b34801561050957600080fd5b506103ed6111df565b34801561051e57600080fd5b5061053261052d3660046148ee565b6112ca565b6040516001600160a01b0390911681526020016103d3565b34801561055657600080fd5b506103ed6105653660046148d1565b6001600160a01b0316600090815261010c602052604090206001015490565b34801561059057600080fd5b5061043161059f36600461491a565b611303565b3480156105b057600080fd5b506104316105bf36600461485a565b61132d565b3480156105d057600080fd5b506103ed6101025481565b3480156105e757600080fd5b5061043161136a565b3480156105fc57600080fd5b5061043161060b36600461491a565b611776565b34801561061c57600080fd5b5061043161062b3660046148d1565b611807565b34801561063c57600080fd5b5061043161064b3660046148d1565b61197f565b34801561065c57600080fd5b506103c761066b3660046148d1565b61010a6020526000908152604090205460ff1681565b34801561068d57600080fd5b506103c761069c366004614898565b61010e60209081526000928352604080842090915290825290205460ff1681565b6104316106cb366004614a80565b6119ee565b3480156106dc57600080fd5b506103ed611b56565b3480156106f157600080fd5b5061043161070036600461485a565b611c1b565b34801561071157600080fd5b5061010154610532906001600160a01b031681565b34801561073257600080fd5b5061043161074136600461485a565b611efa565b34801561075257600080fd5b506103ed610761366004614898565b61010b60209081526000928352604080842090915290825290205481565b34801561078b57600080fd5b5061043161079a366004614898565b6122ba565b3480156107ab57600080fd5b5061010354610532906001600160a01b031681565b3480156107cc57600080fd5b5061010654610532906001600160a01b031681565b3480156107ed57600080fd5b506104316124c9565b34801561080257600080fd5b5061043161081136600461485a565b6124db565b34801561082257600080fd5b506103ed7f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa81565b34801561085657600080fd5b506103ed610865366004614898565b6001600160a01b03918216600090815261010b6020908152604080832093909416825291909152205490565b34801561089d57600080fd5b506103ed60fc5481565b3480156108b357600080fd5b5061010454610532906001600160a01b031681565b3480156108d457600080fd5b506104316108e336600461485a565b61256e565b3480156108f457600080fd5b506109326109033660046148d1565b61010c602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b03909416845260208401929092521515908201526060016103d3565b34801561096557600080fd5b506103ed60fd5481565b34801561097b57600080fd5b506033546001600160a01b0316610532565b34801561099957600080fd5b506103c76109a836600461491a565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156109df57600080fd5b506104316109ee366004614b6f565b612620565b3480156109ff57600080fd5b50610a13610a0e366004614e06565b612c69565b604080519283526001600160a01b039091166020830152016103d3565b348015610a3c57600080fd5b5061053273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610a6457600080fd5b506103ed600081565b348015610a7957600080fd5b506103c7610a883660046148d1565b6001600160a01b03908116600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b348015610ade57600080fd5b5060ff54610532906001600160a01b031681565b348015610afe57600080fd5b50610431612cb5565b348015610b1357600080fd5b50610b1c612d02565b6040516103d39190614eb9565b348015610b3557600080fd5b50610431612d91565b348015610b4a57600080fd5b506103ed612ef7565b348015610b5f57600080fd5b50610b1c612f07565b348015610b7457600080fd5b50610a13610b83366004614ecc565b612f15565b348015610b9457600080fd5b50610431610ba336600461491a565b613096565b348015610bb457600080fd5b5061010754610532906001600160a01b031681565b348015610bd557600080fd5b506103ed61271081565b348015610beb57600080fd5b5061010554610532906001600160a01b031681565b348015610c0c57600080fd5b506103c7610c1b3660046148d1565b6130bb565b348015610c2c57600080fd5b50610431610c3b3660046148d1565b6130fb565b348015610c4c57600080fd5b5061010054610532906001600160a01b031681565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610cab57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb9613188565b610cc6612710600a614f58565b811115610cff576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fd8190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b610d44826131f0565b610d4d81613254565b610d56816132a7565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff1615610db7576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff1615159183019190915260fc546003846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190614f85565b6003811115610e7957610e79614f6f565b03610ef85760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190614fa2565b9050610fea565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190614f85565b6003811115610f6f57610f6f614f6f565b14610fea5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190614fa2565b90505b6001600160a01b03858116600081815261010b6020908152604080832094891680845294825280832086905583835261010e82528083208584528252808320805460ff1916600190811790915584845261010d83528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b6110af613188565b6110b8816132e7565b50565b6110c3613188565b6110b881613342565b6110d5826131f0565b6110de816132a7565b6110e833826133eb565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff16611148576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600081815261010e60209081526040808320948616808452948252808320805460ff1916905592825261010b8152828220938252929092528120556111988282613436565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b91015b60405180910390a15050565b610100546000906001600160a01b0316816111fd6127106064614f58565b60fd5460fc5461120d9190614f58565b6112179190614fbb565b905060006112286127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190614fa2565b60fc5461129d9190614f58565b6112a79190614fbb565b9050808260fc546112b89190614fdd565b6112c29190614fdd565b935050505090565b61010d60205281600052604060002081815481106112e757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600082815260c9602052604090206001015461131e81613559565b6113288383613563565b505050565b611335613188565b60fc8190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610d30565b611372613605565b33600081815261010c602052604081206101005490916001600160a01b03909116906113a16127106064614f58565b60fd5460fc546113b19190614f58565b6113bb9190614fbb565b905060006113cc6127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190614fa2565b60fc546114419190614f58565b61144b9190614fbb565b6001600160a01b03808716600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506117655760028401805460ff1916600190811790915560fc549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152610105546114fd91906001600160a01b031661365e565b6115308530838560fc546115119190614fdd565b61151b9190614fdd565b610105546001600160a01b03169291906136bc565b61156f6040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083613740565b81156115dd5760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260ff546115bf91906001600160a01b031661365e565b60ff54610105546115dd916001600160a01b0391821691168461379e565b61161c6040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082613740565b801561171e576116a560405180606001604052806026815260200161575c60269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190614ff0565b61365e565b61171e836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190614ff0565b610105546001600160a01b0316908361379e565b60fc54604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506117746001606555565b565b6001600160a01b03811633146117f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61180382826137d5565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118945760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461195a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b61196381613858565b604080516000808252602082019092526110b891839190613860565b611987613188565b611990816132a7565b61010380546001600160a01b0319166001600160a01b03838116918217909255610106546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610d30565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ad67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614611b415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b611b4a82613858565b61180382826001613860565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016117f0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611c23613605565b611c2b613a00565b33600081815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015611c8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c6f575b50505050509050600080600090505b8251811015611e5f57828181518110611cb757611cb761500d565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d369190614fa2565b91508115611e4d576001600160a01b038416600090815261010b602052604081208451849290869085908110611d6e57611d6e61500d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611da59190614fdd565b92505081905550611e4d6040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525061010b6000876001600160a01b03166001600160a01b031681526020019081526020016000206000868581518110611e1f57611e1f61500d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613740565b80611e5781615023565b915050611c9c565b5061010554611e79906001600160a01b03168430876136bc565b6001600160a01b038316600090815261010c602052604081206001018054869290611ea5908490614fdd565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a15050506110b86001606555565b611f02613605565b611f0a613a00565b33600081815261010d6020908152604080832060fc5461010c9093529083206001015490929190611f3c90869061503c565b1015611f74576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010554611f8c906001600160a01b0316848661379e565b60005b8254811015612249576000838281548110611fac57611fac61500d565b6000918252602090912001546001600160a01b03169050611fd48163f1801e6160e01b613a60565b1561217d576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614fa2565b9250600061010b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815481106120a3576120a361500d565b60009182526020808320909101546001600160a01b0316835282019290925260400190205490508084111561210e576040517f8a11f31800000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016117f0565b6001600160a01b038616600090815261010b60205260408120865486929088908790811061213e5761213e61500d565b60009182526020808320909101546001600160a01b031683528201929092526040018120805490919061217290849061503c565b909155505050612236565b8354849061218d9060019061503c565b8154811061219d5761219d61500d565b9060005260206000200160009054906101000a90046001600160a01b03168483815481106121cd576121cd61500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508380548061220b5761220b61504f565b600082815260209020810160001990810180546001600160a01b0319169055019055612236816132e7565b508061224181615023565b915050611f8f565b506001600160a01b038316600090815261010c60205260408120600101805486929061227690849061503c565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff89101611ee5565b6122c2613605565b6122ca613188565b60fb5460ff16612306576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905261236a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515908201526123b983613a83565b6001600160a01b03838116600090815261010c6020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff191690556101055490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615065565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506118036001606555565b6124d1613ba6565b6117746000613c00565b6124e3613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa15801561252e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125569190810190615082565b602001519050612565816132a7565b611803816132e7565b612576613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa1580156125c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125e99190810190615082565b6020015190506125f8816132a7565b6126126001600160a01b03821663f1801e6160e01b613a60565b156118035761180381613342565b600054610100900460ff16158080156126405750600054600160ff909116105b8061265a5750303b15801561265a575060005460ff166001145b6126cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016117f0565b6000805460ff1916600117905580156126ef576000805461ff0019166101001790555b6126f7613c52565b6126ff613cc5565b612707613d38565b6127327f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa6000613da3565b61273f82602001516132a7565b61274d8261010001516132a7565b8151612758906132a7565b6127658260a001516132a7565b6127738261018001516132a7565b60608201511561278a5761278a8260c001516132a7565b815161010780546001600160a01b039283166001600160a01b0319918216179091556020840151610105805491909316911617905560408201516000036127fd576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604082015160fc55606082015160fd5561014082015160fb805460ff191691151591909117905561012082015161010890612838908261522c565b506101608201516101099061284d908261522c565b5060a082015161010080546001600160a01b03199081166001600160a01b0393841617825560c085015160ff805483169185169190911790559084015161010680548316828516179055610180850151610101805490931693169290921790556128d8907f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa90613563565b61010760009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129509190614ff0565b61010480546001600160a01b0319166001600160a01b0392831617905561010654604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906152ec565b9050600081516002612a069190614fdd565b67ffffffffffffffff811115612a1e57612a1e61493f565b604051908082528060200260200182016040528015612a47578160200160208202803683370190505b50905060005b8251811015612aac57828181518110612a6857612a6861500d565b6020026020010151828281518110612a8257612a8261500d565b6001600160a01b039092166020928302919091019091015280612aa481615023565b915050612a4d565b506101065481516001600160a01b03909116908290612acd9060019061503c565b81518110612add57612add61500d565b60200260200101906001600160a01b031690816001600160a01b031681525050308160028351612b0d919061503c565b81518110612b1d57612b1d61500d565b6001600160a01b03928316602091820292909201015261010454608086015160e08701516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f92612b879291610108913090889060040161547e565b6020604051808303816000875af1158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190614fa2565b60fe558051612be19061010f90602084019061479c565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed0320560fe546101088660e00151604051612c1d939291906154cc565b60405180910390a150508015611803576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016111d3565b61010154610102805460009283928392612c9a926001600160a01b03169184612c9183615023565b91905055613dee565b9050612ca881878787612f15565b9250925050935093915050565b610103546001600160a01b03163314612cfa576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611774613e42565b6101098054612d10906151a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3c906151a4565b8015612d895780601f10612d5e57610100808354040283529160200191612d89565b820191906000526020600020905b815481529060010190602001808311612d6c57829003601f168201915b505050505081565b612d99613605565b33612da3816131f0565b612dac81613a83565b6001600160a01b03808216600081815261010c602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945561010d90529182209091612e259190614801565b61010554602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea29190615065565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506117746001606555565b612f04612710600a614f58565b81565b6101088054612d10906151a4565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03861615612f3f5750845b869150600061010f805480602002602001604051908101604052809291908181526020018280548015612f9b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f7d575b50506101075460fe546040519596506001600160a01b039091169463e1007d4a9450909250879150612fd1908b9060200161550b565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161300797969594939291906155b4565b6020604051808303816000875af1158015613026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304a9190614fa2565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a89604051613083959493929190615620565b60405180910390a1505094509492505050565b600082815260c960205260409020600101546130b181613559565b61132883836137d5565b6001600160a01b03811660009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604081205460ff16610cab565b613103613ba6565b6001600160a01b03811661317f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016117f0565b6110b881613c00565b3360009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604090205460ff16611774576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808216600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190526110b857604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038116600090815261010a602052604090205460ff166110b8576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166110b8576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132f0816132a7565b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610d30565b6001600160a01b038116600090815261010a602052604090205460ff1615613396576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610d30565b806001600160a01b0316826001600160a01b031614611803576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600090815261010d60205260408120905b815481101561355357826001600160a01b03168282815481106134765761347661500d565b6000918252602090912001546001600160a01b03160361354157815482906134a09060019061503c565b815481106134b0576134b061500d565b9060005260206000200160009054906101000a90046001600160a01b03168282815481106134e0576134e061500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508180548061351e5761351e61504f565b600082815260209020810160001990810180546001600160a01b03191690550190555b8061354b81615023565b915050613451565b50505050565b6110b88133613e9f565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135c13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6002606554036136575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016117f0565b6002606555565b611803828260405160240161367492919061565a565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03808516602483015283166044820152606481018290526135539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f35565b6118038282604051602401613756929190615685565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03831660248201526044810182905261132890849063a9059cbb60e01b90606401613709565b6001606555565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff161561180357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6110b8613ba6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613893576113288361401d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614fa2565b60015b61395f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146139f45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016117f0565b506113288383836140db565b33600090815261010c6020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff161515910181905261177457604051636a5cfb6d60e01b815260040160405180910390fd5b6000613a6b83614100565b8015613a7c5750613a7c8383614133565b9392505050565b6001600160a01b038116600090815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015613aee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ad0575b5050505050905060005b815181101561132857818181518110613b1357613b1361500d565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b158015613b7b57600080fd5b505af1158015613b8f573d6000803e3d6000fd5b505050508080613b9e90615023565b915050613af8565b6033546001600160a01b031633146117745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016117f0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613cbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6117746141bc565b600054610100900460ff16613d305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b611774614230565b600054610100900460ff166117745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b600082815260c96020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050613e3a848261429b565b949350505050565b610103805461010680546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357613ed281614338565b613edd83602061434a565b604051602001613eee9291906156a7565b60408051601f198184030181529082905262461bcd60e51b82526117f091600401614eb9565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000613f8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661452b9092919063ffffffff16565b9050805160001480613fab575080806020019051810190613fab9190615065565b6113285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016117f0565b6001600160a01b0381163b61409a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6140e48361453a565b6000825111806140f15750805b1561132857613553838361457a565b6000614113826301ffc9a760e01b614133565b8015610cab575061412c826001600160e01b0319614133565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141a5575060208210155b80156141b15750600081115b979650505050505050565b600054610100900460ff166142275760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b61177433613c00565b600054610100900460ff166137ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610cab5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016117f0565b6060610cab6001600160a01b03831660145b60606000614359836002614f58565b614364906002614fdd565b67ffffffffffffffff81111561437c5761437c61493f565b6040519080825280601f01601f1916602001820160405280156143a6576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143dd576143dd61500d565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106144285761442861500d565b60200101906001600160f81b031916908160001a905350600061444c846002614f58565b614457906001614fdd565b90505b60018111156144dc577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106144985761449861500d565b1a60f81b8282815181106144ae576144ae61500d565b60200101906001600160f81b031916908160001a90535060049490941c936144d581615728565b905061445a565b508315613a7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016117f0565b6060613e3a848460008561459f565b6145438161401d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a7c838360405180606001604052806027815260200161578260279139614686565b6060824710156146175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016117f0565b600080866001600160a01b03168587604051614633919061573f565b60006040518083038185875af1925050503d8060008114614670576040519150601f19603f3d011682016040523d82523d6000602084013e614675565b606091505b50915091506141b1878383876146fe565b6060600080856001600160a01b0316856040516146a3919061573f565b600060405180830381855af49150503d80600081146146de576040519150601f19603f3d011682016040523d82523d6000602084013e6146e3565b606091505b50915091506146f4868383876146fe565b9695505050505050565b6060831561476d578251600003614766576001600160a01b0385163b6147665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016117f0565b5081613e3a565b613e3a83838151156147825781518083602001fd5b8060405162461bcd60e51b81526004016117f09190614eb9565b8280548282559060005260206000209081019282156147f1579160200282015b828111156147f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147bc565b506147fd92915061481b565b5090565b50805460008255906000526020600020908101906110b891905b5b808211156147fd576000815560010161481c565b60006020828403121561484257600080fd5b81356001600160e01b031981168114613a7c57600080fd5b60006020828403121561486c57600080fd5b5035919050565b6001600160a01b03811681146110b857600080fd5b803561489381614873565b919050565b600080604083850312156148ab57600080fd5b82356148b681614873565b915060208301356148c681614873565b809150509250929050565b6000602082840312156148e357600080fd5b8135613a7c81614873565b6000806040838503121561490157600080fd5b823561490c81614873565b946020939093013593505050565b6000806040838503121561492d57600080fd5b8235915060208301356148c681614873565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156149785761497861493f565b60405290565b6040516101a0810167ffffffffffffffff811182821017156149785761497861493f565b604051610120810167ffffffffffffffff811182821017156149785761497861493f565b60405160c0810167ffffffffffffffff811182821017156149785761497861493f565b604051601f8201601f1916810167ffffffffffffffff81118282101715614a1257614a1261493f565b604052919050565b600067ffffffffffffffff821115614a3457614a3461493f565b50601f01601f191660200190565b6000614a55614a5084614a1a565b6149e9565b9050828152838383011115614a6957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614a9357600080fd5b8235614a9e81614873565b9150602083013567ffffffffffffffff811115614aba57600080fd5b8301601f81018513614acb57600080fd5b614ada85823560208401614a42565b9150509250929050565b600082601f830112614af557600080fd5b613a7c83833560208501614a42565b600060408284031215614b1657600080fd5b614b1e614955565b905081358152602082013567ffffffffffffffff811115614b3e57600080fd5b614b4a84828501614ae4565b60208301525092915050565b80151581146110b857600080fd5b803561489381614b56565b600060208284031215614b8157600080fd5b813567ffffffffffffffff80821115614b9957600080fd5b908301906101a08286031215614bae57600080fd5b614bb661497e565b614bbf83614888565b8152614bcd60208401614888565b6020820152604083013560408201526060830135606082015260808301356080820152614bfc60a08401614888565b60a0820152614c0d60c08401614888565b60c082015260e083013582811115614c2457600080fd5b614c3087828601614b04565b60e083015250610100614c44818501614888565b908201526101208381013583811115614c5c57600080fd5b614c6888828701614ae4565b828401525050610140614c7c818501614b64565b908201526101608381013583811115614c9457600080fd5b614ca088828701614ae4565b8284015250506101809150614cb6828401614888565b91810191909152949350505050565b80356003811061489357600080fd5b600481106110b857600080fd5b803561489381614cd4565b600060208284031215614cfe57600080fd5b6040516020810181811067ffffffffffffffff82111715614d2157614d2161493f565b6040529135825250919050565b600060408284031215614d4057600080fd5b614d48614955565b90508135614d5581614873565b808252506020820135602082015292915050565b60006101408284031215614d7c57600080fd5b614d846149a2565b9050614d8f82614888565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152614dc560a08301614cc5565b60a0820152614dd660c08301614ce1565b60c0820152614de88360e08401614cec565b60e0820152610100614dfc84828501614d2e565b9082015292915050565b60008060006101808486031215614e1c57600080fd5b8335614e2781614873565b9250614e368560208601614d69565b915061016084013567ffffffffffffffff811115614e5357600080fd5b614e5f86828701614b04565b9150509250925092565b60005b83811015614e84578181015183820152602001614e6c565b50506000910152565b60008151808452614ea5816020860160208601614e69565b601f01601f19169290920160200192915050565b602081526000613a7c6020830184614e8d565b6000806000806101a08587031215614ee357600080fd5b8435614eee81614873565b93506020850135614efe81614873565b9250614f0d8660408701614d69565b915061018085013567ffffffffffffffff811115614f2a57600080fd5b614f3687828801614b04565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610cab57610cab614f42565b634e487b7160e01b600052602160045260246000fd5b600060208284031215614f9757600080fd5b8151613a7c81614cd4565b600060208284031215614fb457600080fd5b5051919050565b600082614fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610cab57610cab614f42565b60006020828403121561500257600080fd5b8151613a7c81614873565b634e487b7160e01b600052603260045260246000fd5b60006001820161503557615035614f42565b5060010190565b81810381811115610cab57610cab614f42565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561507757600080fd5b8151613a7c81614b56565b6000602080838503121561509557600080fd5b825167ffffffffffffffff808211156150ad57600080fd5b9084019060c082870312156150c157600080fd5b6150c96149c6565b82518152838301516150da81614873565b8185015260408301516150ec81614873565b604082015260608301518281111561510357600080fd5b83016040818903121561511557600080fd5b61511d614955565b81518152858201518481111561513257600080fd5b82019350601f8401891361514557600080fd5b83519150615155614a5083614a1a565b828152898784870101111561516957600080fd5b61517883888301898801614e69565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c908216806151b857607f821691505b6020821081036151d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561132857600081815260208120601f850160051c810160208610156152055750805b601f850160051c820191505b8181101561522457828155600101615211565b505050505050565b815167ffffffffffffffff8111156152465761524661493f565b61525a8161525484546151a4565b846151de565b602080601f83116001811461528f57600084156152775750858301515b600019600386901b1c1916600185901b178555615224565b600085815260208120601f198616915b828110156152be5788860151825594840194600190910190840161529f565b50858210156152dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156152ff57600080fd5b825167ffffffffffffffff8082111561531757600080fd5b818501915085601f83011261532b57600080fd5b81518181111561533d5761533d61493f565b8060051b915061534e8483016149e9565b818152918301840191848101908884111561536857600080fd5b938501935b83851015615392578451925061538283614873565b828252938501939085019061536d565b98975050505050505050565b600081546153ab816151a4565b8085526020600183811680156153c857600181146153e257615410565b60ff1985168884015283151560051b880183019550615410565b866000528260002060005b858110156154085781548a82018601529083019084016153ed565b890184019650505b505050505092915050565b805182526000602082015160406020850152613e3a6040850182614e8d565b600081518084526020808501945080840160005b838110156154735781516001600160a01b03168752958201959082019060010161544e565b509495945050505050565b85815260a06020820152600061549760a083018761539e565b82810360408401526154a9818761541b565b90506001600160a01b03851660608401528281036080840152615392818561543a565b8381526060602082015260006154e5606083018561539e565b82810360408401526146f4818561541b565b6004811061550757615507614f6f565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061555e5761555e614f6f565b8060a08401525060c083015161557760c08401826154f7565b5060e083015161558a60e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526155dd60e0840189614e8d565b818816606085015286608085015283810360a08501526155fd818761541b565b91505082810360c0840152615612818561543a565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a060808301526141b160a083018461541b565b60408152600061566d6040830185614e8d565b90506001600160a01b03831660208301529392505050565b6040815260006156986040830185614e8d565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156df816017850160208801614e69565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571c816028840160208801614e69565b01602801949350505050565b60008161573757615737614f42565b506000190190565b60008251615751818460208701614e69565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122051339265b354dd1f0973bfe78d4afe3466e76f16690932b2a80ac453990a8ee864736f6c6343000813003360806040526040516104ee3803806104ee833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c760279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60be806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea2646970667358221220f4cffab674c83839981fe52657fafdf25167bc852fbc2c61b9e46bd7af0d093b64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a1c7e35d475f723d727bf72cc9031220e29ca8a6b8e6260469c5b20cfb7068b064736f6c63430008130033","sourceMap":"422:639:133:-:0;;;1088:4:67;1045:48;;422:639:133;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405260043610620001245760003560e01c80638a16135f11620000b2578063b5b3ca2c116200007d578063c4d66de81162000060578063c4d66de8146200030e578063f2fde38b1462000333578063f5016b5e146200035857600080fd5b8063b5b3ca2c14620002c7578063b8bed90114620002ec57600080fd5b80638a16135f14620002315780638da5cb5b146200026f578063987435be146200028f578063affed0e014620002af57600080fd5b80635a2c8ace11620000f35780635a2c8ace14620001b75780635cd8a76b14620001dc578063715018a614620001f45780638279c7db146200020c57600080fd5b80630a992e0c14620001295780633659cfe614620001615780634f1ef286146200018857806352d1902d146200019f575b600080fd5b3480156200013657600080fd5b506200014e6200014836600462001465565b620003a9565b6040519081526020015b60405180910390f35b3480156200016e57600080fd5b50620001866200018036600462001465565b6200042b565b005b620001866200019936600462001545565b620005af565b348015620001ac57600080fd5b506200014e62000724565b348015620001c457600080fd5b5062000186620001d6366004620015c1565b620007eb565b348015620001e957600080fd5b50620001866200085c565b3480156200020157600080fd5b506200018662000956565b3480156200021957600080fd5b50620001866200022b36600462001465565b6200096e565b3480156200023e57600080fd5b50620002566200025036600462001694565b620009df565b6040516001600160a01b03909116815260200162000158565b3480156200027c57600080fd5b506033546001600160a01b031662000256565b3480156200029c57600080fd5b506067546001600160a01b031662000256565b348015620002bc57600080fd5b506200014e60655481565b348015620002d457600080fd5b5062000186620002e636600462001806565b62000b64565b348015620002f957600080fd5b5060675462000256906001600160a01b031681565b3480156200031b57600080fd5b50620001866200032d36600462001465565b62000bc0565b3480156200034057600080fd5b50620001866200035236600462001465565b62000d46565b3480156200036557600080fd5b50620003986200037736600462001465565b6001600160a01b031660009081526066602052604090206001015460ff1690565b604051901515815260200162000158565b6001600160a01b03811660009081526066602052604081206001015460ff166200040f576040517ff5a6943d0000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024015b60405180910390fd5b506001600160a01b031660009081526066602052604090205490565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620004ba5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840162000406565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620005167f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614620005835760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840162000406565b6200058e8162000dd9565b60408051600080825260208201909252620005ac9183919062000de3565b50565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036200063e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b606482015260840162000406565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200069a7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614620007075760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b606482015260840162000406565b620007128262000dd9565b620007208282600162000de3565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620007c65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c0000000000000000606482015260840162000406565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b620007f562000f94565b6001600160a01b038216600081815260666020908152604091829020600101805460ff19168515159081179091558251938452908301527fecdcd3502799a6c41864ea2682236184e876f63e10f8d56c7768a3d501e89f6291015b60405180910390a15050565b600054600290610100900460ff161580156200087f575060005460ff8083169116105b620008f35760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840162000406565b6000805461ffff191660ff8316176101001790556200091162000ff0565b6000805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a150565b6200096062000f94565b6200096c600062001067565b565b6200097862000f94565b6200098381620010c6565b6067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0383169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d906020016200094b565b6065805460009182620009f28362001835565b9091555060808301523060a083015260405160009062000a129062001421565b604051809103906000f08015801562000a2f573d6000803e3d6000fd5b506040517f96f0adec000000000000000000000000000000000000000000000000000000009062000a65908690602401620018d2565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090941693909317909252905162000ad1906200142f565b62000ade92919062001a1d565b604051809103906000f08015801562000afb573d6000803e3d6000fd5b506001600160a01b0381166000818152606660209081526040918290206001908101805460ff19169091179055905191825291925082917fb4108a188495a1a681cdc0750af164011025a1773b41e93ff3e628adc037dc29910160405180910390a19392505050565b62000b6e62000f94565b6001600160a01b038216600081815260666020908152604091829020849055815192835282018390527fa1ee82e4f177a8017f33ddddac05b7ceab1de9d46f7195e15e8aa2e8b88f3b1c910162000850565b600054610100900460ff161580801562000be15750600054600160ff909116105b8062000bfd5750303b15801562000bfd575060005460ff166001145b62000c715760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a6564000000000000000000000000000000000000606482015260840162000406565b6000805460ff19166001179055801562000c95576000805461ff0019166101001790555b62000c9f62000ff0565b60006065556067805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0384169081179091556040519081527fbdf37c276f641820b141429d245add2552b4118c0866e5a78638e3de5ef18d9d9060200160405180910390a1801562000720576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200162000850565b62000d5062000f94565b6001600160a01b03811662000dce5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840162000406565b620005ac8162001067565b620005ac62000f94565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161562000e1e5762000e198362001107565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801562000e7b575060408051601f3d908101601f1916820190925262000e789181019062001a41565b60015b62000eef5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f742055555053000000000000000000000000000000000000606482015260840162000406565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc811462000f865760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c65555549440000000000000000000000000000000000000000000000606482015260840162000406565b5062000e19838383620011d4565b6033546001600160a01b031633146200096c5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640162000406565b600054610100900460ff166200105d5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000406565b6200096c62001205565b603380546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038116620005ac576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381163b620011865760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e747261637400000000000000000000000000000000000000606482015260840162000406565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b620011df836200127d565b600082511180620011ed5750805b1562000e1957620011ff8383620012bf565b50505050565b600054610100900460ff16620012725760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b606482015260840162000406565b6200096c3362001067565b620012888162001107565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060620012e78383604051806060016040528060278152602001620077a860279139620012ee565b9392505050565b6060600080856001600160a01b0316856040516200130d919062001a5b565b600060405180830381855af49150503d80600081146200134a576040519150601f19603f3d011682016040523d82523d6000602084013e6200134f565b606091505b509150915062001362868383876200136c565b9695505050505050565b60608315620013e0578251600003620013d8576001600160a01b0385163b620013d85760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000406565b5081620013ec565b620013ec8383620013f4565b949350505050565b815115620014055781518083602001fd5b8060405162461bcd60e51b815260040162000406919062001a79565b61582b8062001a8f83390190565b6104ee80620072ba83390190565b6001600160a01b0381168114620005ac57600080fd5b803562001460816200143d565b919050565b6000602082840312156200147857600080fd5b8135620012e7816200143d565b634e487b7160e01b600052604160045260246000fd5b6040516101a0810167ffffffffffffffff81118282101715620014c257620014c262001485565b60405290565b600067ffffffffffffffff80841115620014e657620014e662001485565b604051601f8501601f19908116603f0116810190828211818310171562001511576200151162001485565b816040528093508581528686860111156200152b57600080fd5b858560208301376000602087830101525050509392505050565b600080604083850312156200155957600080fd5b823562001566816200143d565b9150602083013567ffffffffffffffff8111156200158357600080fd5b8301601f810185136200159557600080fd5b620015a685823560208401620014c8565b9150509250929050565b803580151581146200146057600080fd5b60008060408385031215620015d557600080fd5b8235620015e2816200143d565b9150620015f260208401620015b0565b90509250929050565b600082601f8301126200160d57600080fd5b620012e783833560208501620014c8565b6000604082840312156200163157600080fd5b6040516040810167ffffffffffffffff828210818311171562001658576200165862001485565b816040528293508435835260208501359150808211156200167857600080fd5b506200168785828601620015fb565b6020830152505092915050565b600060208284031215620016a757600080fd5b813567ffffffffffffffff80821115620016c057600080fd5b908301906101a08286031215620016d657600080fd5b620016e06200149b565b620016eb8362001453565b8152620016fb6020840162001453565b60208201526040830135604082015260608301356060820152608083013560808201526200172c60a0840162001453565b60a08201526200173f60c0840162001453565b60c082015260e0830135828111156200175757600080fd5b62001765878286016200161e565b60e0830152506101006200177b81850162001453565b9082015261012083810135838111156200179457600080fd5b620017a288828701620015fb565b828401525050610140620017b8818501620015b0565b908201526101608381013583811115620017d157600080fd5b620017df88828701620015fb565b8284015250506101809150620017f782840162001453565b91810191909152949350505050565b600080604083850312156200181a57600080fd5b823562001827816200143d565b946020939093013593505050565b6000600182016200185657634e487b7160e01b600052601160045260246000fd5b5060010190565b60005b838110156200187a57818101518382015260200162001860565b50506000910152565b600081518084526200189d8160208601602086016200185d565b601f01601f19169290920160200192915050565b805182526000602082015160406020850152620013ec604085018262001883565b60208152620018ed6020820183516001600160a01b03169052565b600060208301516200190a60408401826001600160a01b03169052565b506040830151606083015260608301516080830152608083015160a083015260a08301516200194460c08401826001600160a01b03169052565b5060c08301516001600160a01b03811660e08401525060e08301516101a061010081818601526200197a6101c0860184620018b1565b9086015190925061012062001999868201836001600160a01b03169052565b80870151915050601f19610140818786030181880152620019bb858462001883565b945080880151925050610160620019d58188018415159052565b80880151925050610180818786030181880152620019f4858462001883565b9450808801519250505062001a13828601826001600160a01b03169052565b5090949350505050565b6001600160a01b0383168152604060208201526000620013ec604083018462001883565b60006020828403121562001a5457600080fd5b5051919050565b6000825162001a6f8184602087016200185d565b9190910192915050565b602081526000620012e760208301846200188356fe60a06040523060805234801561001457600080fd5b506080516157de6200004d6000396000818161181101528181611896015281816119f801528181611a7d0152611b6301526157de6000f3fe6080604052600436106103a25760003560e01c80636c53db9a116101e7578063a217fddf1161010d578063c8a593e9116100a0578063db61d65c1161006f578063db61d65c14610bdf578063ebd7dc5214610c00578063f2fde38b14610c20578063f86c5f8914610c4057600080fd5b8063c8a593e914610b68578063d547741f14610b88578063d6d8428d14610ba8578063d7050f0714610bc957600080fd5b8063b64e39af116100dc578063b64e39af14610b07578063b99b437014610b29578063bc063e1a14610b3e578063c6d572ae14610b5357600080fd5b8063a217fddf14610a58578063a230c52414610a6d578063b3f0067414610ad2578063b5058c5014610af257600080fd5b806382d6a1e71161018557806391d148541161015457806391d148541461098d57806396f0adec146109d35780639a72a86f146109f3578063a0cf0aea14610a3057600080fd5b806382d6a1e7146108c857806388cfe684146108e85780638961be6b146109595780638da5cb5b1461096f57600080fd5b8063733a2d1f116101c1578063733a2d1f146108165780637817ee4f1461084a57806378a0b8a9146108915780637b103999146108a757600080fd5b80636c53db9a146107c0578063715018a6146107e157806373265c37146107f657600080fd5b806333960459116102cc5780634f1ef2861161026a5780635ecf71c5116102395780635ecf71c51461072657806365e3864c146107465780636871eb4d1461077f57806368decabb1461079f57600080fd5b80634f1ef286146106bd57806352d1902d146106d0578063559de05d146106e55780635c94e4d21461070557600080fd5b80633659cfe6116102a65780633659cfe614610610578063397e2543146106305780633a871fe114610650578063477a5cc01461068157600080fd5b806333960459146105c45780633517aa7d146105db57806336568abe146105f057600080fd5b8063223e5479116103445780632b38c69c116103135780632b38c69c146105125780632c611c4a1461054a5780632f2ff15d1461058457806331f61bca146105a457600080fd5b8063223e54791461048d57806322bcf999146104ad578063248a9ca3146104cd57806328c309e9146104fd57600080fd5b80630d12bbdb116103805780630d12bbdb146104115780630d4a8b4914610433578063175188e8146104535780631f787d281461047357600080fd5b806301ffc9a7146103a75780630331383c146103dc57806308386eba146103fb575b600080fd5b3480156103b357600080fd5b506103c76103c2366004614830565b610c61565b60405190151581526020015b60405180910390f35b3480156103e857600080fd5b5060fc545b6040519081526020016103d3565b34801561040757600080fd5b506103ed60fe5481565b34801561041d57600080fd5b5061043161042c36600461485a565b610cb1565b005b34801561043f57600080fd5b5061043161044e366004614898565b610d3b565b34801561045f57600080fd5b5061043161046e3660046148d1565b6110a7565b34801561047f57600080fd5b5060fb546103c79060ff1681565b34801561049957600080fd5b506104316104a83660046148d1565b6110bb565b3480156104b957600080fd5b506104316104c8366004614898565b6110cc565b3480156104d957600080fd5b506103ed6104e836600461485a565b600090815260c9602052604090206001015490565b34801561050957600080fd5b506103ed6111df565b34801561051e57600080fd5b5061053261052d3660046148ee565b6112ca565b6040516001600160a01b0390911681526020016103d3565b34801561055657600080fd5b506103ed6105653660046148d1565b6001600160a01b0316600090815261010c602052604090206001015490565b34801561059057600080fd5b5061043161059f36600461491a565b611303565b3480156105b057600080fd5b506104316105bf36600461485a565b61132d565b3480156105d057600080fd5b506103ed6101025481565b3480156105e757600080fd5b5061043161136a565b3480156105fc57600080fd5b5061043161060b36600461491a565b611776565b34801561061c57600080fd5b5061043161062b3660046148d1565b611807565b34801561063c57600080fd5b5061043161064b3660046148d1565b61197f565b34801561065c57600080fd5b506103c761066b3660046148d1565b61010a6020526000908152604090205460ff1681565b34801561068d57600080fd5b506103c761069c366004614898565b61010e60209081526000928352604080842090915290825290205460ff1681565b6104316106cb366004614a80565b6119ee565b3480156106dc57600080fd5b506103ed611b56565b3480156106f157600080fd5b5061043161070036600461485a565b611c1b565b34801561071157600080fd5b5061010154610532906001600160a01b031681565b34801561073257600080fd5b5061043161074136600461485a565b611efa565b34801561075257600080fd5b506103ed610761366004614898565b61010b60209081526000928352604080842090915290825290205481565b34801561078b57600080fd5b5061043161079a366004614898565b6122ba565b3480156107ab57600080fd5b5061010354610532906001600160a01b031681565b3480156107cc57600080fd5b5061010654610532906001600160a01b031681565b3480156107ed57600080fd5b506104316124c9565b34801561080257600080fd5b5061043161081136600461485a565b6124db565b34801561082257600080fd5b506103ed7f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa81565b34801561085657600080fd5b506103ed610865366004614898565b6001600160a01b03918216600090815261010b6020908152604080832093909416825291909152205490565b34801561089d57600080fd5b506103ed60fc5481565b3480156108b357600080fd5b5061010454610532906001600160a01b031681565b3480156108d457600080fd5b506104316108e336600461485a565b61256e565b3480156108f457600080fd5b506109326109033660046148d1565b61010c602052600090815260409020805460018201546002909201546001600160a01b03909116919060ff1683565b604080516001600160a01b03909416845260208401929092521515908201526060016103d3565b34801561096557600080fd5b506103ed60fd5481565b34801561097b57600080fd5b506033546001600160a01b0316610532565b34801561099957600080fd5b506103c76109a836600461491a565b600091825260c9602090815260408084206001600160a01b0393909316845291905290205460ff1690565b3480156109df57600080fd5b506104316109ee366004614b6f565b612620565b3480156109ff57600080fd5b50610a13610a0e366004614e06565b612c69565b604080519283526001600160a01b039091166020830152016103d3565b348015610a3c57600080fd5b5061053273eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee81565b348015610a6457600080fd5b506103ed600081565b348015610a7957600080fd5b506103c7610a883660046148d1565b6001600160a01b03908116600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905290565b348015610ade57600080fd5b5060ff54610532906001600160a01b031681565b348015610afe57600080fd5b50610431612cb5565b348015610b1357600080fd5b50610b1c612d02565b6040516103d39190614eb9565b348015610b3557600080fd5b50610431612d91565b348015610b4a57600080fd5b506103ed612ef7565b348015610b5f57600080fd5b50610b1c612f07565b348015610b7457600080fd5b50610a13610b83366004614ecc565b612f15565b348015610b9457600080fd5b50610431610ba336600461491a565b613096565b348015610bb457600080fd5b5061010754610532906001600160a01b031681565b348015610bd557600080fd5b506103ed61271081565b348015610beb57600080fd5b5061010554610532906001600160a01b031681565b348015610c0c57600080fd5b506103c7610c1b3660046148d1565b6130bb565b348015610c2c57600080fd5b50610431610c3b3660046148d1565b6130fb565b348015610c4c57600080fd5b5061010054610532906001600160a01b031681565b60006001600160e01b031982167f7965db0b000000000000000000000000000000000000000000000000000000001480610cab57506301ffc9a760e01b6001600160e01b03198316145b92915050565b610cb9613188565b610cc6612710600a614f58565b811115610cff576040517ffe925f7d00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60fd8190556040518181527f611668bfcf654a99c33cdb66c29ec37a5aae5c1287d2d9715a24e18cb4d806d6906020015b60405180910390a150565b610d44826131f0565b610d4d81613254565b610d56816132a7565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff1615610db7576040517fd5b9bc9600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c602090815260409182902082516060810184528154909416845260018101549184018290526002015460ff1615159183019190915260fc546003846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610e44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e689190614f85565b6003811115610e7957610e79614f6f565b03610ef85760405163782aadff60e01b81526001600160a01b0386811660048301526000602483015285169063782aadff906044016020604051808303816000875af1158015610ecd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ef19190614fa2565b9050610fea565b6000846001600160a01b031663c32921716040518163ffffffff1660e01b81526004016020604051808303816000875af1158015610f3a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5e9190614f85565b6003811115610f6f57610f6f614f6f565b14610fea5760405163782aadff60e01b81526001600160a01b0386811660048301526024820184905285169063782aadff906044016020604051808303816000875af1158015610fc3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fe79190614fa2565b90505b6001600160a01b03858116600081815261010b6020908152604080832094891680845294825280832086905583835261010e82528083208584528252808320805460ff1916600190811790915584845261010d83528184208054918201815584529282902090920180546001600160a01b0319168517905581519283528201929092529081018290527ff56fa57e85e169a12200d12d9921ec069b52e688f6d309d9dab7bceff54614ec9060600160405180910390a15050505050565b6110af613188565b6110b8816132e7565b50565b6110c3613188565b6110b881613342565b6110d5826131f0565b6110de816132a7565b6110e833826133eb565b6001600160a01b03808316600090815261010e602090815260408083209385168352929052205460ff16611148576040517fc12369dc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600081815261010e60209081526040808320948616808452948252808320805460ff1916905592825261010b8152828220938252929092528120556111988282613436565b604080516001600160a01b038085168252831660208201527ede109bef4619f7e2cf00c8e5a50ca55f8deb44f87087eed414a91dbf8d1d1b91015b60405180910390a15050565b610100546000906001600160a01b0316816111fd6127106064614f58565b60fd5460fc5461120d9190614f58565b6112179190614fbb565b905060006112286127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa15801561126c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112909190614fa2565b60fc5461129d9190614f58565b6112a79190614fbb565b9050808260fc546112b89190614fdd565b6112c29190614fdd565b935050505090565b61010d60205281600052604060002081815481106112e757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600082815260c9602052604090206001015461131e81613559565b6113288383613563565b505050565b611335613188565b60fc8190556040518181527f5bcc2c453001fb0e2ba6266d56ecb411e7c6e15c8f9c3d301f93dd36ad25726f90602001610d30565b611372613605565b33600081815261010c602052604081206101005490916001600160a01b03909116906113a16127106064614f58565b60fd5460fc546113b19190614f58565b6113bb9190614fbb565b905060006113cc6127106064614f58565b6040516302a64b8360e21b81523060048201526001600160a01b03851690630a992e0c90602401602060405180830381865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190614fa2565b60fc546114419190614f58565b61144b9190614fbb565b6001600160a01b03808716600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190529091506117655760028401805460ff1916600190811790915560fc549085015560408051808201909152600b81527f67617264656e546f6b656e0000000000000000000000000000000000000000006020820152610105546114fd91906001600160a01b031661365e565b6115308530838560fc546115119190614fdd565b61151b9190614fdd565b610105546001600160a01b03169291906136bc565b61156f6040518060400160405280601281526020017f636f6d6d756e697479466565416d6f756e74000000000000000000000000000081525083613740565b81156115dd5760408051808201909152600b81527f6665655265636569766572000000000000000000000000000000000000000000602082015260ff546115bf91906001600160a01b031661365e565b60ff54610105546115dd916001600160a01b0391821691168461379e565b61161c6040518060400160405280601081526020017f67617264656e73466565416d6f756e740000000000000000000000000000000081525082613740565b801561171e576116a560405180606001604052806026815260200161575c60269139846001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561167c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a09190614ff0565b61365e565b61171e836001600160a01b031663987435be6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156116e6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170a9190614ff0565b610105546001600160a01b0316908361379e565b60fc54604080516001600160a01b038816815260208101929092527f67e0244e28040fec15240cd4b6c04c776a2a0278caef23b59e8ada1df31f7689910160405180910390a15b50505050506117746001606555565b565b6001600160a01b03811633146117f95760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c66000000000000000000000000000000000060648201526084015b60405180910390fd5b61180382826137d5565b5050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036118945760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166118ef7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b03161461195a5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b61196381613858565b604080516000808252602082019092526110b891839190613860565b611987613188565b611990816132a7565b61010380546001600160a01b0319166001600160a01b03838116918217909255610106546040805191909316815260208101919091527f83eac9fdaff0ac1017624b7eddeb9782e3d707cd894073cb7e8301a41c6e5cf89101610d30565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003611a7b5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b60648201526084016117f0565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611ad67f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614611b415760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b60648201526084016117f0565b611b4a82613858565b61180382826001613860565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611bf65760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016117f0565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b611c23613605565b611c2b613a00565b33600081815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015611c8d57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611c6f575b50505050509050600080600090505b8251811015611e5f57828181518110611cb757611cb761500d565b602090810291909101015160405163782aadff60e01b81526001600160a01b038681166004830152602482018890529091169063782aadff906044016020604051808303816000875af1158015611d12573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d369190614fa2565b91508115611e4d576001600160a01b038416600090815261010b602052604081208451849290869085908110611d6e57611d6e61500d565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020016000206000828254611da59190614fdd565b92505081905550611e4d6040518060400160405280600e81526020017f537472617465677920706f77657200000000000000000000000000000000000081525061010b6000876001600160a01b03166001600160a01b031681526020019081526020016000206000868581518110611e1f57611e1f61500d565b60200260200101516001600160a01b03166001600160a01b0316815260200190815260200160002054613740565b80611e5781615023565b915050611c9c565b5061010554611e79906001600160a01b03168430876136bc565b6001600160a01b038316600090815261010c602052604081206001018054869290611ea5908490614fdd565b9091555050604080516001600160a01b0385168152602081018690527f576605f9bfe8911e7508bed3763c7c5c8eb3b86e8b360b90a4bc6abe1104cb7f91015b60405180910390a15050506110b86001606555565b611f02613605565b611f0a613a00565b33600081815261010d6020908152604080832060fc5461010c9093529083206001015490929190611f3c90869061503c565b1015611f74576040517f9c47d02e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61010554611f8c906001600160a01b0316848661379e565b60005b8254811015612249576000838281548110611fac57611fac61500d565b6000918252602090912001546001600160a01b03169050611fd48163f1801e6160e01b613a60565b1561217d576040517f2ed04b2b0000000000000000000000000000000000000000000000000000000081526001600160a01b03868116600483015260248201889052821690632ed04b2b906044016020604051808303816000875af1158015612041573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120659190614fa2565b9250600061010b6000876001600160a01b03166001600160a01b0316815260200190815260200160002060008685815481106120a3576120a361500d565b60009182526020808320909101546001600160a01b0316835282019290925260400190205490508084111561210e576040517f8a11f31800000000000000000000000000000000000000000000000000000000815260048101859052602481018290526044016117f0565b6001600160a01b038616600090815261010b60205260408120865486929088908790811061213e5761213e61500d565b60009182526020808320909101546001600160a01b031683528201929092526040018120805490919061217290849061503c565b909155505050612236565b8354849061218d9060019061503c565b8154811061219d5761219d61500d565b9060005260206000200160009054906101000a90046001600160a01b03168483815481106121cd576121cd61500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508380548061220b5761220b61504f565b600082815260209020810160001990810180546001600160a01b0319169055019055612236816132e7565b508061224181615023565b915050611f8f565b506001600160a01b038316600090815261010c60205260408120600101805486929061227690849061503c565b9091555050604080516001600160a01b0385168152602081018690527f6ee2c70b2d6b89ae808a2313aab43e925c06624271419cd665d85cfa1ae04ff89101611ee5565b6122c2613605565b6122ca613188565b60fb5460ff16612306576040517fcb63dc7200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515910181905261236a57604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b03808316600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff161515908201526123b983613a83565b6001600160a01b03838116600090815261010c6020908152604080832080546001600160a01b031916815560018101939093556002909201805460ff191690556101055490840151915163a9059cbb60e01b8152858416600482015260248101929092529091169063a9059cbb906044016020604051808303816000875af1158015612449573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061246d9190615065565b50602080820151604080516001600160a01b0380881682528616938101939093528201527fb5946f249f8744efe9d14d49a483b54a589b1362944ff6694de93456cceb96a39060600160405180910390a1506118036001606555565b6124d1613ba6565b6117746000613c00565b6124e3613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa15801561252e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125569190810190615082565b602001519050612565816132a7565b611803816132e7565b612576613188565b6101075460405163068bcd8d60e01b8152600481018390526000916001600160a01b03169063068bcd8d90602401600060405180830381865afa1580156125c1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526125e99190810190615082565b6020015190506125f8816132a7565b6126126001600160a01b03821663f1801e6160e01b613a60565b156118035761180381613342565b600054610100900460ff16158080156126405750600054600160ff909116105b8061265a5750303b15801561265a575060005460ff166001145b6126cc5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016117f0565b6000805460ff1916600117905580156126ef576000805461ff0019166101001790555b6126f7613c52565b6126ff613cc5565b612707613d38565b6127327f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa6000613da3565b61273f82602001516132a7565b61274d8261010001516132a7565b8151612758906132a7565b6127658260a001516132a7565b6127738261018001516132a7565b60608201511561278a5761278a8260c001516132a7565b815161010780546001600160a01b039283166001600160a01b0319918216179091556020840151610105805491909316911617905560408201516000036127fd576040517fc70d18aa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604082015160fc55606082015160fd5561014082015160fb805460ff191691151591909117905561012082015161010890612838908261522c565b506101608201516101099061284d908261522c565b5060a082015161010080546001600160a01b03199081166001600160a01b0393841617825560c085015160ff805483169185169190911790559084015161010680548316828516179055610180850151610101805490931693169290921790556128d8907f03be538b6391ddcd7f2649585cc95b120c9e2a613f70714fbb55345057d809fa90613563565b61010760009054906101000a90046001600160a01b03166001600160a01b0316635ab1bd536040518163ffffffff1660e01b8152600401602060405180830381865afa15801561292c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129509190614ff0565b61010480546001600160a01b0319166001600160a01b0392831617905561010654604080517fa0e67e2b0000000000000000000000000000000000000000000000000000000081529051600093929092169163a0e67e2b9160048082019286929091908290030181865afa1580156129cc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129f491908101906152ec565b9050600081516002612a069190614fdd565b67ffffffffffffffff811115612a1e57612a1e61493f565b604051908082528060200260200182016040528015612a47578160200160208202803683370190505b50905060005b8251811015612aac57828181518110612a6857612a6861500d565b6020026020010151828281518110612a8257612a8261500d565b6001600160a01b039092166020928302919091019091015280612aa481615023565b915050612a4d565b506101065481516001600160a01b03909116908290612acd9060019061503c565b81518110612add57612add61500d565b60200260200101906001600160a01b031690816001600160a01b031681525050308160028351612b0d919061503c565b81518110612b1d57612b1d61500d565b6001600160a01b03928316602091820292909201015261010454608086015160e08701516040517f3a92f65f0000000000000000000000000000000000000000000000000000000081529290931692633a92f65f92612b879291610108913090889060040161547e565b6020604051808303816000875af1158015612ba6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bca9190614fa2565b60fe558051612be19061010f90602084019061479c565b507f2f2ffcb06f8a1d35e2716f6b43ef2c19bfa76467d8f66964ae12c2583ed0320560fe546101088660e00151604051612c1d939291906154cc565b60405180910390a150508015611803576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020016111d3565b61010154610102805460009283928392612c9a926001600160a01b03169184612c9183615023565b91905055613dee565b9050612ca881878787612f15565b9250925050935093915050565b610103546001600160a01b03163314612cfa576040517febcd0d6e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611774613e42565b6101098054612d10906151a4565b80601f0160208091040260200160405190810160405280929190818152602001828054612d3c906151a4565b8015612d895780601f10612d5e57610100808354040283529160200191612d89565b820191906000526020600020905b815481529060010190602001808311612d6c57829003601f168201915b505050505081565b612d99613605565b33612da3816131f0565b612dac81613a83565b6001600160a01b03808216600081815261010c602090815260408083208151606081018352815496871681526001820180548286015260028301805460ff81161515848701529787526001600160a01b03199098169092559084905560ff1990941690945561010d90529182209091612e259190614801565b61010554602082015160405163a9059cbb60e01b81526001600160a01b038581166004830152602482019290925291169063a9059cbb906044016020604051808303816000875af1158015612e7e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea29190615065565b50602080820151604080516001600160a01b0386168152928301919091527fa13f4668aacb68c4e9eed8e3f6e1cbec3eca776896ec46b5eabcc3983fc8f5f4910160405180910390a150506117746001606555565b612f04612710600a614f58565b81565b6101088054612d10906151a4565b60008073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6001600160a01b03861615612f3f5750845b869150600061010f805480602002602001604051908101604052809291908181526020018280548015612f9b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311612f7d575b50506101075460fe546040519596506001600160a01b039091169463e1007d4a9450909250879150612fd1908b9060200161550b565b6040516020818303038152906040528660008b886040518863ffffffff1660e01b815260040161300797969594939291906155b4565b6020604051808303816000875af1158015613026573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061304a9190614fa2565b93507f778cac0ae0b66477341553a4a89398c61ccf448313d3354ad0ca85a5a825d2838484308a89604051613083959493929190615620565b60405180910390a1505094509492505050565b600082815260c960205260409020600101546130b181613559565b61132883836137d5565b6001600160a01b03811660009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604081205460ff16610cab565b613103613ba6565b6001600160a01b03811661317f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016117f0565b6110b881613c00565b3360009081527fa867e09674d469ee17077111ff66261f5d2fc5820cc6914676cb47231da58818602052604090205460ff16611774576040517ff62651fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b03808216600090815261010c60209081526040918290208251606081018452815490941684526001810154918401919091526002015460ff16151591018190526110b857604051636a5cfb6d60e01b815260040160405180910390fd5b6001600160a01b038116600090815261010a602052604090205460ff166110b8576040517f46c26e4b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b0381166110b8576040517fe622e04000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6132f0816132a7565b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916905590519182527f09a1db4b80c32706328728508c941a6b954f31eb5affd32f236c1fd405f8fea49101610d30565b6001600160a01b038116600090815261010a602052604090205460ff1615613396576040517f968a4d2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038116600081815261010a6020908152604091829020805460ff1916600117905590519182527f3f008fd510eae7a9e7bee13513d7b83bef8003d488b5a3d0b0da4de71d6846f19101610d30565b806001600160a01b0316826001600160a01b031614611803576040517fbbe7961100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216600090815261010d60205260408120905b815481101561355357826001600160a01b03168282815481106134765761347661500d565b6000918252602090912001546001600160a01b03160361354157815482906134a09060019061503c565b815481106134b0576134b061500d565b9060005260206000200160009054906101000a90046001600160a01b03168282815481106134e0576134e061500d565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055508180548061351e5761351e61504f565b600082815260209020810160001990810180546001600160a01b03191690550190555b8061354b81615023565b915050613451565b50505050565b6110b88133613e9f565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357600082815260c9602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135c13390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6002606554036136575760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016117f0565b6002606555565b611803828260405160240161367492919061565a565b60408051601f198184030181529190526020810180516001600160e01b03167f319af33300000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03808516602483015283166044820152606481018290526135539085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613f35565b6118038282604051602401613756929190615685565b60408051601f198184030181529190526020810180516001600160e01b03167f9710a9d000000000000000000000000000000000000000000000000000000000179052613f14565b6040516001600160a01b03831660248201526044810182905261132890849063a9059cbb60e01b90606401613709565b6001606555565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff161561180357600082815260c9602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6110b8613ba6565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615613893576113288361401d565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156138ed575060408051601f3d908101601f191682019092526138ea91810190614fa2565b60015b61395f5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146139f45760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016117f0565b506113288383836140db565b33600090815261010c6020908152604091829020825160608101845281546001600160a01b031681526001820154928101929092526002015460ff161515910181905261177457604051636a5cfb6d60e01b815260040160405180910390fd5b6000613a6b83614100565b8015613a7c5750613a7c8383614133565b9392505050565b6001600160a01b038116600090815261010d6020908152604080832080548251818502810185019093528083529192909190830182828015613aee57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311613ad0575b5050505050905060005b815181101561132857818181518110613b1357613b1361500d565b60209081029190910101516040517f6453d9c40000000000000000000000000000000000000000000000000000000081526001600160a01b03858116600483015290911690636453d9c490602401600060405180830381600087803b158015613b7b57600080fd5b505af1158015613b8f573d6000803e3d6000fd5b505050508080613b9e90615023565b915050613af8565b6033546001600160a01b031633146117745760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016117f0565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff16613cbd5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6117746141bc565b600054610100900460ff16613d305760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b611774614230565b600054610100900460ff166117745760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b600082815260c96020526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6040516bffffffffffffffffffffffff193360601b166020820152603481018290526000908190605401604051602081830303815290604052805190602001209050613e3a848261429b565b949350505050565b610103805461010680546001600160a01b0383166001600160a01b031991821617909155169055604051600081527fad0399dc40331b9a4977aa89da7a164a3fd482c65e6da73b25a94ea74fb688729060200160405180910390a1565b600082815260c9602090815260408083206001600160a01b038516845290915290205460ff1661180357613ed281614338565b613edd83602061434a565b604051602001613eee9291906156a7565b60408051601f198184030181529082905262461bcd60e51b82526117f091600401614eb9565b80516a636f6e736f6c652e6c6f67602083016000808483855afa5050505050565b6000613f8a826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661452b9092919063ffffffff16565b9050805160001480613fab575080806020019051810190613fab9190615065565b6113285760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084016117f0565b6001600160a01b0381163b61409a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016117f0565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6140e48361453a565b6000825111806140f15750805b1561132857613553838361457a565b6000614113826301ffc9a760e01b614133565b8015610cab575061412c826001600160e01b0319614133565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141a5575060208210155b80156141b15750600081115b979650505050505050565b600054610100900460ff166142275760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b61177433613c00565b600054610100900460ff166137ce5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b60648201526084016117f0565b6000763d602d80600a3d3981f3363d3d373d3d3d363d730000008360601b60e81c176000526e5af43d82803e903d91602b57fd5bf38360781b1760205281603760096000f590506001600160a01b038116610cab5760405162461bcd60e51b815260206004820152601760248201527f455243313136373a2063726561746532206661696c656400000000000000000060448201526064016117f0565b6060610cab6001600160a01b03831660145b60606000614359836002614f58565b614364906002614fdd565b67ffffffffffffffff81111561437c5761437c61493f565b6040519080825280601f01601f1916602001820160405280156143a6576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000816000815181106143dd576143dd61500d565b60200101906001600160f81b031916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106144285761442861500d565b60200101906001600160f81b031916908160001a905350600061444c846002614f58565b614457906001614fdd565b90505b60018111156144dc577f303132333435363738396162636465660000000000000000000000000000000085600f16601081106144985761449861500d565b1a60f81b8282815181106144ae576144ae61500d565b60200101906001600160f81b031916908160001a90535060049490941c936144d581615728565b905061445a565b508315613a7c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016117f0565b6060613e3a848460008561459f565b6145438161401d565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060613a7c838360405180606001604052806027815260200161578260279139614686565b6060824710156146175760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c000000000000000000000000000000000000000000000000000060648201526084016117f0565b600080866001600160a01b03168587604051614633919061573f565b60006040518083038185875af1925050503d8060008114614670576040519150601f19603f3d011682016040523d82523d6000602084013e614675565b606091505b50915091506141b1878383876146fe565b6060600080856001600160a01b0316856040516146a3919061573f565b600060405180830381855af49150503d80600081146146de576040519150601f19603f3d011682016040523d82523d6000602084013e6146e3565b606091505b50915091506146f4868383876146fe565b9695505050505050565b6060831561476d578251600003614766576001600160a01b0385163b6147665760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016117f0565b5081613e3a565b613e3a83838151156147825781518083602001fd5b8060405162461bcd60e51b81526004016117f09190614eb9565b8280548282559060005260206000209081019282156147f1579160200282015b828111156147f157825182546001600160a01b0319166001600160a01b039091161782556020909201916001909101906147bc565b506147fd92915061481b565b5090565b50805460008255906000526020600020908101906110b891905b5b808211156147fd576000815560010161481c565b60006020828403121561484257600080fd5b81356001600160e01b031981168114613a7c57600080fd5b60006020828403121561486c57600080fd5b5035919050565b6001600160a01b03811681146110b857600080fd5b803561489381614873565b919050565b600080604083850312156148ab57600080fd5b82356148b681614873565b915060208301356148c681614873565b809150509250929050565b6000602082840312156148e357600080fd5b8135613a7c81614873565b6000806040838503121561490157600080fd5b823561490c81614873565b946020939093013593505050565b6000806040838503121561492d57600080fd5b8235915060208301356148c681614873565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156149785761497861493f565b60405290565b6040516101a0810167ffffffffffffffff811182821017156149785761497861493f565b604051610120810167ffffffffffffffff811182821017156149785761497861493f565b60405160c0810167ffffffffffffffff811182821017156149785761497861493f565b604051601f8201601f1916810167ffffffffffffffff81118282101715614a1257614a1261493f565b604052919050565b600067ffffffffffffffff821115614a3457614a3461493f565b50601f01601f191660200190565b6000614a55614a5084614a1a565b6149e9565b9050828152838383011115614a6957600080fd5b828260208301376000602084830101529392505050565b60008060408385031215614a9357600080fd5b8235614a9e81614873565b9150602083013567ffffffffffffffff811115614aba57600080fd5b8301601f81018513614acb57600080fd5b614ada85823560208401614a42565b9150509250929050565b600082601f830112614af557600080fd5b613a7c83833560208501614a42565b600060408284031215614b1657600080fd5b614b1e614955565b905081358152602082013567ffffffffffffffff811115614b3e57600080fd5b614b4a84828501614ae4565b60208301525092915050565b80151581146110b857600080fd5b803561489381614b56565b600060208284031215614b8157600080fd5b813567ffffffffffffffff80821115614b9957600080fd5b908301906101a08286031215614bae57600080fd5b614bb661497e565b614bbf83614888565b8152614bcd60208401614888565b6020820152604083013560408201526060830135606082015260808301356080820152614bfc60a08401614888565b60a0820152614c0d60c08401614888565b60c082015260e083013582811115614c2457600080fd5b614c3087828601614b04565b60e083015250610100614c44818501614888565b908201526101208381013583811115614c5c57600080fd5b614c6888828701614ae4565b828401525050610140614c7c818501614b64565b908201526101608381013583811115614c9457600080fd5b614ca088828701614ae4565b8284015250506101809150614cb6828401614888565b91810191909152949350505050565b80356003811061489357600080fd5b600481106110b857600080fd5b803561489381614cd4565b600060208284031215614cfe57600080fd5b6040516020810181811067ffffffffffffffff82111715614d2157614d2161493f565b6040529135825250919050565b600060408284031215614d4057600080fd5b614d48614955565b90508135614d5581614873565b808252506020820135602082015292915050565b60006101408284031215614d7c57600080fd5b614d846149a2565b9050614d8f82614888565b815260208201356020820152604082013560408201526060820135606082015260808201356080820152614dc560a08301614cc5565b60a0820152614dd660c08301614ce1565b60c0820152614de88360e08401614cec565b60e0820152610100614dfc84828501614d2e565b9082015292915050565b60008060006101808486031215614e1c57600080fd5b8335614e2781614873565b9250614e368560208601614d69565b915061016084013567ffffffffffffffff811115614e5357600080fd5b614e5f86828701614b04565b9150509250925092565b60005b83811015614e84578181015183820152602001614e6c565b50506000910152565b60008151808452614ea5816020860160208601614e69565b601f01601f19169290920160200192915050565b602081526000613a7c6020830184614e8d565b6000806000806101a08587031215614ee357600080fd5b8435614eee81614873565b93506020850135614efe81614873565b9250614f0d8660408701614d69565b915061018085013567ffffffffffffffff811115614f2a57600080fd5b614f3687828801614b04565b91505092959194509250565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610cab57610cab614f42565b634e487b7160e01b600052602160045260246000fd5b600060208284031215614f9757600080fd5b8151613a7c81614cd4565b600060208284031215614fb457600080fd5b5051919050565b600082614fd857634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610cab57610cab614f42565b60006020828403121561500257600080fd5b8151613a7c81614873565b634e487b7160e01b600052603260045260246000fd5b60006001820161503557615035614f42565b5060010190565b81810381811115610cab57610cab614f42565b634e487b7160e01b600052603160045260246000fd5b60006020828403121561507757600080fd5b8151613a7c81614b56565b6000602080838503121561509557600080fd5b825167ffffffffffffffff808211156150ad57600080fd5b9084019060c082870312156150c157600080fd5b6150c96149c6565b82518152838301516150da81614873565b8185015260408301516150ec81614873565b604082015260608301518281111561510357600080fd5b83016040818903121561511557600080fd5b61511d614955565b81518152858201518481111561513257600080fd5b82019350601f8401891361514557600080fd5b83519150615155614a5083614a1a565b828152898784870101111561516957600080fd5b61517883888301898801614e69565b95810195909552506060810193909352506080818101519083015260a090810151908201529392505050565b600181811c908216806151b857607f821691505b6020821081036151d857634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561132857600081815260208120601f850160051c810160208610156152055750805b601f850160051c820191505b8181101561522457828155600101615211565b505050505050565b815167ffffffffffffffff8111156152465761524661493f565b61525a8161525484546151a4565b846151de565b602080601f83116001811461528f57600084156152775750858301515b600019600386901b1c1916600185901b178555615224565b600085815260208120601f198616915b828110156152be5788860151825594840194600190910190840161529f565b50858210156152dc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083850312156152ff57600080fd5b825167ffffffffffffffff8082111561531757600080fd5b818501915085601f83011261532b57600080fd5b81518181111561533d5761533d61493f565b8060051b915061534e8483016149e9565b818152918301840191848101908884111561536857600080fd5b938501935b83851015615392578451925061538283614873565b828252938501939085019061536d565b98975050505050505050565b600081546153ab816151a4565b8085526020600183811680156153c857600181146153e257615410565b60ff1985168884015283151560051b880183019550615410565b866000528260002060005b858110156154085781548a82018601529083019084016153ed565b890184019650505b505050505092915050565b805182526000602082015160406020850152613e3a6040850182614e8d565b600081518084526020808501945080840160005b838110156154735781516001600160a01b03168752958201959082019060010161544e565b509495945050505050565b85815260a06020820152600061549760a083018761539e565b82810360408401526154a9818761541b565b90506001600160a01b03851660608401528281036080840152615392818561543a565b8381526060602082015260006154e5606083018561539e565b82810360408401526146f4818561541b565b6004811061550757615507614f6f565b9052565b6000610140820190506001600160a01b0383511682526020830151602083015260408301516040830152606083015160608301526080830151608083015260a08301516003811061555e5761555e614f6f565b8060a08401525060c083015161557760c08401826154f7565b5060e083015161558a60e0840182519052565b506101008381015180516001600160a01b0316848301526020810151610120850152505092915050565b87815260006001600160a01b03808916602084015260e060408401526155dd60e0840189614e8d565b818816606085015286608085015283810360a08501526155fd818761541b565b91505082810360c0840152615612818561543a565b9a9950505050505050505050565b85815260006001600160a01b038087166020840152808616604084015280851660608401525060a060808301526141b160a083018461541b565b60408152600061566d6040830185614e8d565b90506001600160a01b03831660208301529392505050565b6040815260006156986040830185614e8d565b90508260208301529392505050565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516156df816017850160208801614e69565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000601791840191820152835161571c816028840160208801614e69565b01602801949350505050565b60008161573757615737614f42565b506000190190565b60008251615751818460208701614e69565b919091019291505056fe67617264656e73466163746f72792e67657447617264656e7346656552656365697665722829416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122051339265b354dd1f0973bfe78d4afe3466e76f16690932b2a80ac453990a8ee864736f6c6343000813003360806040526040516104ee3803806104ee833981016040819052610022916102de565b61002e82826000610035565b50506103fb565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c760279139610180565b9392505050565b6001600160a01b0381163b61013f5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019d91906103ac565b600060405180830381855af49150503d80600081146101d8576040519150601f19603f3d011682016040523d82523d6000602084013e6101dd565b606091505b5090925090506101ef868383876101f9565b9695505050505050565b60608315610268578251600003610261576001600160a01b0385163b6102615760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610136565b5081610272565b610272838361027a565b949350505050565b81511561028a5781518083602001fd5b8060405162461bcd60e51b815260040161013691906103c8565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102d55781810151838201526020016102bd565b50506000910152565b600080604083850312156102f157600080fd5b82516001600160a01b038116811461030857600080fd5b60208401519092506001600160401b038082111561032557600080fd5b818501915085601f83011261033957600080fd5b81518181111561034b5761034b6102a4565b604051601f8201601f19908116603f01168101908382118183101715610373576103736102a4565b8160405282815288602084870101111561038c57600080fd5b61039d8360208301602088016102ba565b80955050505050509250929050565b600082516103be8184602087016102ba565b9190910192915050565b60208152600082518060208401526103e78160408501602087016102ba565b601f01601f19169190910160400192915050565b60be806104096000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6065565b565b600060607f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156083573d6000f35b3d6000fdfea2646970667358221220f4cffab674c83839981fe52657fafdf25167bc852fbc2c61b9e46bd7af0d093b64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a1c7e35d475f723d727bf72cc9031220e29ca8a6b8e6260469c5b20cfb7068b064736f6c63430008130033","sourceMap":"422:639:133:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3758:249:132;;;;;;;;;;-1:-1:-1;3758:249:132;;;;;:::i;:::-;;:::i;:::-;;;710:25:145;;;698:2;683:18;3758:249:132;;;;;;;;3143:195:67;;;;;;;;;;-1:-1:-1;3143:195:67;;;;;:::i;:::-;;:::i;:::-;;3657:220;;;;;;:::i;:::-;;:::i;2762:131::-;;;;;;;;;;;;;:::i;3394:208:132:-;;;;;;;;;;-1:-1:-1;3394:208:132;;;;;:::i;:::-;;:::i;978:81:133:-;;;;;;;;;;;;;:::i;2085:101:46:-;;;;;;;;;;;;;:::i;2821:222:132:-;;;;;;;;;;-1:-1:-1;2821:222:132;;;;;:::i;:::-;;:::i;2051:764::-;;;;;;;;;;-1:-1:-1;2051:764:132;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;5932:55:145;;;5914:74;;5902:2;5887:18;2051:764:132;5768:226:145;1462:85:46;;;;;;;;;;-1:-1:-1;1534:6:46;;-1:-1:-1;;;;;1534:6:46;1462:85;;3049:115:132;;;;;;;;;;-1:-1:-1;3139:18:132;;-1:-1:-1;;;;;3139:18:132;3049:115;;667:20;;;;;;;;;;;;;;;;3170:218;;;;;;;;;;-1:-1:-1;3170:218:132;;;;;:::i;:::-;;:::i;749:33::-;;;;;;;;;;-1:-1:-1;749:33:132;;;;-1:-1:-1;;;;;749:33:132;;;1753:292;;;;;;;;;;-1:-1:-1;1753:292:132;;;;;:::i;:::-;;:::i;2335:198:46:-;;;;;;;;;;-1:-1:-1;2335:198:46;;;;;:::i;:::-;;:::i;3608:144:132:-;;;;;;;;;;-1:-1:-1;3608:144:132;;;;;:::i;:::-;-1:-1:-1;;;;;3712:27:132;3689:4;3712:27;;;:15;:27;;;;;:33;;;;;;3608:144;;;;6580:14:145;;6573:22;6555:41;;6543:2;6528:18;3608:144:132;6415:187:145;3758:249:132;-1:-1:-1;;;;;3857:27:132;;3833:7;3857:27;;;:15;:27;;;;;:33;;;;;3852:100;;3913:28;;;;;-1:-1:-1;;;;;5932:55:145;;3913:28:132;;;5914:74:145;5887:18;;3913:28:132;;;;;;;;3852:100;-1:-1:-1;;;;;;3969:27:132;;;;;:15;:27;;;;;:31;;3758:249::o;3143:195:67:-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:145;1629:80:67;;;6791:21:145;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:145;;;6931:42;6990:19;;1629:80:67;6607:408:145;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:145;1719:87:67;;;7204:21:145;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:145;;;7344:42;7403:19;;1719:87:67;7020:408:145;1719:87:67;3224:36:::1;3242:17;3224;:36::i;:::-;3311:12;::::0;;3321:1:::1;3311:12:::0;;;::::1;::::0;::::1;::::0;;;3270:61:::1;::::0;3292:17;;3311:12;3270:21:::1;:61::i;:::-;3143:195:::0;:::o;3657:220::-;-1:-1:-1;;;;;1654:6:67;1637:23;1645:4;1637:23;1629:80;;;;-1:-1:-1;;;1629:80:67;;6809:2:145;1629:80:67;;;6791:21:145;6848:2;6828:18;;;6821:30;6887:34;6867:18;;;6860:62;-1:-1:-1;;;6938:18:145;;;6931:42;6990:19;;1629:80:67;6607:408:145;1629:80:67;1751:6;-1:-1:-1;;;;;1727:30:67;:20;1030:66:64;1254:54;-1:-1:-1;;;;;1254:54:64;;1175:140;1727:20:67;-1:-1:-1;;;;;1727:30:67;;1719:87;;;;-1:-1:-1;;;1719:87:67;;7222:2:145;1719:87:67;;;7204:21:145;7261:2;7241:18;;;7234:30;7300:34;7280:18;;;7273:62;-1:-1:-1;;;7351:18:145;;;7344:42;7403:19;;1719:87:67;7020:408:145;1719:87:67;3772:36:::1;3790:17;3772;:36::i;:::-;3818:52;3840:17;3859:4;3865;3818:21;:52::i;:::-;3657:220:::0;;:::o;2762:131::-;2840:7;2080:4;-1:-1:-1;;;;;2089:6:67;2072:23;;2064:92;;;;-1:-1:-1;;;2064:92:67;;7635:2:145;2064:92:67;;;7617:21:145;7674:2;7654:18;;;7647:30;7713:34;7693:18;;;7686:62;7784:26;7764:18;;;7757:54;7828:19;;2064:92:67;7433:420:145;2064:92:67;-1:-1:-1;1030:66:64::1;2762:131:67::0;:::o;3394:208:132:-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;3494:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:33:::1;;:44:::0;;-1:-1:-1;;3494:44:132::1;::::0;::::1;;::::0;;::::1;::::0;;;3553:42;;8026:74:145;;;8116:18;;;8109:50;3553:42:132::1;::::0;7999:18:145;3553:42:132::1;;;;;;;;3394:208:::0;;:::o;978:81:133:-;4882:13:48;;1023:1:133;;4882:13:48;;;;;4881:14;:40;;;;-1:-1:-1;4899:12:48;;:22;;;;:12;;:22;4881:40;4873:99;;;;-1:-1:-1;;;4873:99:48;;8372:2:145;4873:99:48;;;8354:21:145;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;8521:16;8501:18;;;8494:44;8555:19;;4873:99:48;8170:410:145;4873:99:48;4982:12;:22;;-1:-1:-1;;5014:20:48;4982:22;;;5014:20;4982:22;5014:20;;;1036:16:133::1;:14;:16::i;:::-;5071:5:48::0;5055:21;;-1:-1:-1;;5055:21:48;;;5091:20;;8757:4:145;8745:17;;8727:36;;5091:20:48;;8715:2:145;8700:18;5091:20:48;;;;;;;;978:81:133;:::o;2085:101:46:-;1355:13;:11;:13::i;:::-;2149:30:::1;2176:1;2149:18;:30::i;:::-;2085:101::o:0;2821:222:132:-;1355:13:46;:11;:13::i;:::-;2909:35:132::1;2928:15;2909:18;:35::i;:::-;2954:18;:36:::0;;-1:-1:-1;;2954:36:132::1;-1:-1:-1::0;;;;;2954:36:132;::::1;::::0;;::::1;::::0;;;3005:31:::1;::::0;5914:74:145;;;3005:31:132::1;::::0;5902:2:145;5887:18;3005:31:132::1;5768:226:145::0;2051:764:132;2240:5;:7;;2177:31;;;2240:7;;;:::i;:::-;;;;-1:-1:-1;2224:13:132;;;:23;2291:4;2257:23;;;:39;2366:27;;-1:-1:-1;;2366:27:132;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2408:73:132;;2431:41;;2408:73;;2474:6;;2408:73;;;:::i;:::-;;;;-1:-1:-1;;2408:73:132;;;;;;;;;;;;;;;;;;;;;;;;;;;2328:163;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;2650:43:132;;2502:39;2650:43;;;:15;:43;;;;;;;;;2702:4;2650:49;;;:56;;-1:-1:-1;;2650:56:132;;;;;;2721:44;;5914:74:145;;;2650:43:132;;-1:-1:-1;2650:43:132;;2721:44;;5887:18:145;2721:44:132;;;;;;;2790:17;2051:764;-1:-1:-1;;;2051:764:132:o;3170:218::-;1355:13:46;:11;:13::i;:::-;-1:-1:-1;;;;;3274:27:132;::::1;;::::0;;;:15:::1;:27;::::0;;;;;;;;:49;;;3338:43;;12254:74:145;;;12344:18;;12337:34;;;3338:43:132::1;::::0;12227:18:145;3338:43:132::1;12080:297:145::0;1753:292:132;3279:19:48;3302:13;;;;;;3301:14;;3347:34;;;;-1:-1:-1;3365:12:48;;3380:1;3365:12;;;;:16;3347:34;3346:108;;;-1:-1:-1;3426:4:48;1713:19:51;:23;;;3387:66:48;;-1:-1:-1;3436:12:48;;;;;:17;3387:66;3325:201;;;;-1:-1:-1;;;3325:201:48;;8372:2:145;3325:201:48;;;8354:21:145;8411:2;8391:18;;;8384:30;8450:34;8430:18;;;8423:62;8521:16;8501:18;;;8494:44;8555:19;;3325:201:48;8170:410:145;3325:201:48;3536:12;:16;;-1:-1:-1;;3536:16:48;3551:1;3536:16;;;3562:65;;;;3596:13;:20;;-1:-1:-1;;3596:20:48;;;;;3562:65;1839:16:132::1;:14;:16::i;:::-;1873:1;1865:5;:9:::0;1884:18:::1;:40:::0;;-1:-1:-1;;1884:40:132::1;-1:-1:-1::0;;;;;1884:40:132;::::1;::::0;;::::1;::::0;;;1939:35:::1;::::0;5914:74:145;;;1939:35:132::1;::::0;5902:2:145;5887:18;1939:35:132::1;;;;;;;3651:14:48::0;3647:99;;;3697:5;3681:21;;-1:-1:-1;;3681:21:48;;;3721:14;;-1:-1:-1;8727:36:145;;3721:14:48;;8715:2:145;8700:18;3721:14:48;8585:184:145;2335:198:46;1355:13;:11;:13::i;:::-;-1:-1:-1;;;;;2423:22:46;::::1;2415:73;;;::::0;-1:-1:-1;;;2415:73:46;;12783:2:145;2415:73:46::1;::::0;::::1;12765:21:145::0;12822:2;12802:18;;;12795:30;12861:34;12841:18;;;12834:62;12932:8;12912:18;;;12905:36;12958:19;;2415:73:46::1;12581:402:145::0;2415:73:46::1;2498:28;2517:8;2498:18;:28::i;4013:66:132:-:0;1355:13:46;:11;:13::i;2494:922:64:-;689:66;2910:48;;;2906:504;;;2974:37;2993:17;2974:18;:37::i;:::-;2494:922;;;:::o;2906:504::-;3064:17;-1:-1:-1;;;;;3046:50:64;;:52;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3046:52:64;;;;;;;;-1:-1:-1;;3046:52:64;;;;;;;;;;;;:::i;:::-;;;3042:291;;3262:56;;-1:-1:-1;;;3262:56:64;;13379:2:145;3262:56:64;;;13361:21:145;13418:2;13398:18;;;13391:30;13457:34;13437:18;;;13430:62;13528:16;13508:18;;;13501:44;13562:19;;3262:56:64;13177:410:145;3042:291:64;1030:66;3148:28;;3140:82;;;;-1:-1:-1;;;3140:82:64;;13794:2:145;3140:82:64;;;13776:21:145;13833:2;13813:18;;;13806:30;13872:34;13852:18;;;13845:62;13943:11;13923:18;;;13916:39;13972:19;;3140:82:64;13592:405:145;3140:82:64;3099:138;3346:53;3364:17;3383:4;3389:9;3346:17;:53::i;1620:130:46:-;1534:6;;-1:-1:-1;;;;;1534:6:46;965:10:52;1683:23:46;1675:68;;;;-1:-1:-1;;;1675:68:46;;14204:2:145;1675:68:46;;;14186:21:145;;;14223:18;;;14216:30;14282:34;14262:18;;;14255:62;14334:18;;1675:68:46;14002:356:145;1024:95:46;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14565:2:145;5366:69:48;;;14547:21:145;14604:2;14584:18;;;14577:30;14643:34;14623:18;;;14616:62;-1:-1:-1;;;14694:18:145;;;14687:41;14745:19;;5366:69:48;14363:407:145;5366:69:48;1086:26:46::1;:24;:26::i;2687:187::-:0;2779:6;;;-1:-1:-1;;;;;2795:17:46;;;-1:-1:-1;;2795:17:46;;;;;;;2827:40;;2779:6;;;2795:17;2779:6;;2827:40;;2760:16;;2827:40;2750:124;2687:187;:::o;1614:133:132:-;-1:-1:-1;;;;;1688:22:132;;1684:56;;1719:21;;;;;;;;;;;;;;1406:259:64;-1:-1:-1;;;;;1713:19:51;;;1479:95:64;;;;-1:-1:-1;;;1479:95:64;;14977:2:145;1479:95:64;;;14959:21:145;15016:2;14996:18;;;14989:30;15055:34;15035:18;;;15028:62;15126:15;15106:18;;;15099:43;15159:19;;1479:95:64;14775:409:145;1479:95:64;1030:66;1584:74;;-1:-1:-1;;1584:74:64;-1:-1:-1;;;;;1584:74:64;;;;;;;;;;1406:259::o;2057:265::-;2165:29;2176:17;2165:10;:29::i;:::-;2222:1;2208:4;:11;:15;:28;;;;2227:9;2208:28;2204:112;;;2252:53;2281:17;2300:4;2252:28;:53::i;:::-;;2057:265;;;:::o;1125:111:46:-;5374:13:48;;;;;;;5366:69;;;;-1:-1:-1;;;5366:69:48;;14565:2:145;5366:69:48;;;14547:21:145;14604:2;14584:18;;;14577:30;14643:34;14623:18;;;14616:62;-1:-1:-1;;;14694:18:145;;;14687:41;14745:19;;5366:69:48;14363:407:145;5366:69:48;1197:32:46::1;965:10:52::0;1197:18:46::1;:32::i;1771:152:64:-:0;1837:37;1856:17;1837:18;:37::i;:::-;1889:27;;-1:-1:-1;;;;;1889:27:64;;;;;;;;1771:152;:::o;6674:198:79:-;6757:12;6788:77;6809:6;6817:4;6788:77;;;;;;;;;;;;;;;;;:20;:77::i;:::-;6781:84;6674:198;-1:-1:-1;;;6674:198:79:o;7058:325::-;7199:12;7224;7238:23;7265:6;-1:-1:-1;;;;;7265:19:79;7285:4;7265:25;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7223:67;;;;7307:69;7334:6;7342:7;7351:10;7363:12;7307:26;:69::i;:::-;7300:76;7058:325;-1:-1:-1;;;;;;7058:325:79:o;7671:628::-;7851:12;7879:7;7875:418;;;7906:10;:17;7927:1;7906:22;7902:286;;-1:-1:-1;;;;;1713:19:51;;;8113:60:79;;;;-1:-1:-1;;;8113:60:79;;15683:2:145;8113:60:79;;;15665:21:145;15722:2;15702:18;;;15695:30;15761:31;15741:18;;;15734:59;15810:18;;8113:60:79;15481:353:145;8113:60:79;-1:-1:-1;8208:10:79;8201:17;;7875:418;8249:33;8257:10;8269:12;8249:7;:33::i;:::-;7671:628;;;;;;:::o;8821:540::-;8980:17;;:21;8976:379;;9208:10;9202:17;9264:15;9251:10;9247:2;9243:19;9236:44;8976:379;9331:12;9324:20;;-1:-1:-1;;;9324:20:79;;;;;;;;:::i;-1:-1:-1:-;;;;;;;;:::o;:::-;;;;;;;;:::o;14:154:145:-;-1:-1:-1;;;;;93:5:145;89:54;82:5;79:65;69:93;;158:1;155;148:12;173:134;241:20;;270:31;241:20;270:31;:::i;:::-;173:134;;;:::o;312:247::-;371:6;424:2;412:9;403:7;399:23;395:32;392:52;;;440:1;437;430:12;392:52;479:9;466:23;498:31;523:5;498:31;:::i;746:184::-;-1:-1:-1;;;795:1:145;788:88;895:4;892:1;885:15;919:4;916:1;909:15;935:250;1002:2;996:9;1044:6;1032:19;;1081:18;1066:34;;1102:22;;;1063:62;1060:88;;;1128:18;;:::i;:::-;1164:2;1157:22;935:250;:::o;1190:631::-;1254:5;1284:18;1325:2;1317:6;1314:14;1311:40;;;1331:18;;:::i;:::-;1406:2;1400:9;1374:2;1460:15;;-1:-1:-1;;1456:24:145;;;1482:2;1452:33;1448:42;1436:55;;;1506:18;;;1526:22;;;1503:46;1500:72;;;1552:18;;:::i;:::-;1592:10;1588:2;1581:22;1621:6;1612:15;;1651:6;1643;1636:22;1691:3;1682:6;1677:3;1673:16;1670:25;1667:45;;;1708:1;1705;1698:12;1667:45;1758:6;1753:3;1746:4;1738:6;1734:17;1721:44;1813:1;1806:4;1797:6;1789;1785:19;1781:30;1774:41;;;;1190:631;;;;;:::o;1826:584::-;1903:6;1911;1964:2;1952:9;1943:7;1939:23;1935:32;1932:52;;;1980:1;1977;1970:12;1932:52;2019:9;2006:23;2038:31;2063:5;2038:31;:::i;:::-;2088:5;-1:-1:-1;2144:2:145;2129:18;;2116:32;2171:18;2160:30;;2157:50;;;2203:1;2200;2193:12;2157:50;2226:22;;2279:4;2271:13;;2267:27;-1:-1:-1;2257:55:145;;2308:1;2305;2298:12;2257:55;2331:73;2396:7;2391:2;2378:16;2373:2;2369;2365:11;2331:73;:::i;:::-;2321:83;;;1826:584;;;;;:::o;2597:160::-;2662:20;;2718:13;;2711:21;2701:32;;2691:60;;2747:1;2744;2737:12;2762:315;2827:6;2835;2888:2;2876:9;2867:7;2863:23;2859:32;2856:52;;;2904:1;2901;2894:12;2856:52;2943:9;2930:23;2962:31;2987:5;2962:31;:::i;:::-;3012:5;-1:-1:-1;3036:35:145;3067:2;3052:18;;3036:35;:::i;:::-;3026:45;;2762:315;;;;;:::o;3082:221::-;3125:5;3178:3;3171:4;3163:6;3159:17;3155:27;3145:55;;3196:1;3193;3186:12;3145:55;3218:79;3293:3;3284:6;3271:20;3264:4;3256:6;3252:17;3218:79;:::i;3308:610::-;3363:5;3411:4;3399:9;3394:3;3390:19;3386:30;3383:50;;;3429:1;3426;3419:12;3383:50;3462:4;3456:11;3506:4;3498:6;3494:17;3530:18;3598:6;3586:10;3583:22;3578:2;3566:10;3563:18;3560:46;3557:72;;;3609:18;;:::i;:::-;3651:10;3645:4;3638:24;3680:6;3671:15;;3723:9;3710:23;3702:6;3695:39;3785:2;3774:9;3770:18;3757:32;3743:46;;3812:2;3804:6;3801:14;3798:34;;;3828:1;3825;3818:12;3798:34;;3865:46;3907:3;3898:6;3887:9;3883:22;3865:46;:::i;:::-;3860:2;3852:6;3848:15;3841:71;;;3308:610;;;;:::o;3923:1708::-;4017:6;4070:2;4058:9;4049:7;4045:23;4041:32;4038:52;;;4086:1;4083;4076:12;4038:52;4126:9;4113:23;4155:18;4196:2;4188:6;4185:14;4182:34;;;4212:1;4209;4202:12;4182:34;4235:22;;;;4291:6;4273:16;;;4269:29;4266:49;;;4311:1;4308;4301:12;4266:49;4337:17;;:::i;:::-;4377:22;4396:2;4377:22;:::i;:::-;4370:5;4363:37;4432:31;4459:2;4455;4451:11;4432:31;:::i;:::-;4427:2;4420:5;4416:14;4409:55;4517:2;4513;4509:11;4496:25;4491:2;4484:5;4480:14;4473:49;4575:2;4571;4567:11;4554:25;4549:2;4542:5;4538:14;4531:49;4634:3;4630:2;4626:12;4613:26;4607:3;4600:5;4596:15;4589:51;4673:32;4700:3;4696:2;4692:12;4673:32;:::i;:::-;4667:3;4660:5;4656:15;4649:57;4739:32;4766:3;4762:2;4758:12;4739:32;:::i;:::-;4733:3;4726:5;4722:15;4715:57;4818:3;4814:2;4810:12;4797:26;4848:2;4838:8;4835:16;4832:36;;;4864:1;4861;4854:12;4832:36;4901:54;4947:7;4936:8;4932:2;4928:17;4901:54;:::i;:::-;4895:3;4888:5;4884:15;4877:79;;4975:3;5010:31;5037:2;5033;5029:11;5010:31;:::i;:::-;4994:14;;;4987:55;5061:3;5102:11;;;5089:25;5126:16;;;5123:36;;;5155:1;5152;5145:12;5123:36;5191:45;5228:7;5217:8;5213:2;5209:17;5191:45;:::i;:::-;5186:2;5179:5;5175:14;5168:69;;;5256:3;5291:28;5315:2;5311;5307:11;5291:28;:::i;:::-;5275:14;;;5268:52;5339:3;5380:11;;;5367:25;5404:16;;;5401:36;;;5433:1;5430;5423:12;5401:36;5469:45;5506:7;5495:8;5491:2;5487:17;5469:45;:::i;:::-;5464:2;5457:5;5453:14;5446:69;;;5534:3;5524:13;;5569:31;5596:2;5592;5588:11;5569:31;:::i;:::-;5553:14;;;5546:55;;;;5557:5;3923:1708;-1:-1:-1;;;;3923:1708:145:o;5999:315::-;6067:6;6075;6128:2;6116:9;6107:7;6103:23;6099:32;6096:52;;;6144:1;6141;6134:12;6096:52;6183:9;6170:23;6202:31;6227:5;6202:31;:::i;:::-;6252:5;6304:2;6289:18;;;;6276:32;;-1:-1:-1;;;5999:315:145:o;8774:289::-;8813:3;8834:17;;;8831:197;;-1:-1:-1;;;8881:1:145;8874:88;8985:4;8982:1;8975:15;9013:4;9010:1;9003:15;8831:197;-1:-1:-1;9055:1:145;9044:13;;8774:289::o;9068:250::-;9153:1;9163:113;9177:6;9174:1;9171:13;9163:113;;;9253:11;;;9247:18;9234:11;;;9227:39;9199:2;9192:10;9163:113;;;-1:-1:-1;;9310:1:145;9292:16;;9285:27;9068:250::o;9323:271::-;9365:3;9403:5;9397:12;9430:6;9425:3;9418:19;9446:76;9515:6;9508:4;9503:3;9499:14;9492:4;9485:5;9481:16;9446:76;:::i;:::-;9576:2;9555:15;-1:-1:-1;;9551:29:145;9542:39;;;;9583:4;9538:50;;9323:271;-1:-1:-1;;9323:271:145:o;9599:252::-;9686:5;9680:12;9675:3;9668:25;9650:3;9739:4;9732:5;9728:16;9722:23;9777:4;9770;9765:3;9761:14;9754:28;9798:47;9839:4;9834:3;9830:14;9816:12;9798:47;:::i;9856:1876::-;10055:2;10044:9;10037:21;10067:53;10116:2;10105:9;10101:18;10092:6;10086:13;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;10067:53;10018:4;10167:2;10159:6;10155:15;10149:22;10180:52;10228:2;10217:9;10213:18;10199:12;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;10180:52;;10286:2;10278:6;10274:15;10268:22;10263:2;10252:9;10248:18;10241:50;10346:2;10338:6;10334:15;10328:22;10322:3;10311:9;10307:19;10300:51;10406:3;10398:6;10394:16;10388:23;10382:3;10371:9;10367:19;10360:52;10461:3;10453:6;10449:16;10443:23;10475:55;10525:3;10514:9;10510:19;10494:14;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;10475:55;-1:-1:-1;10579:3:145;10567:16;;10561:23;-1:-1:-1;;;;;5702:54:145;;10643:3;10628:19;;5690:67;10593:55;10697:3;10689:6;10685:16;10679:23;10721:6;10746:3;10785:2;10780;10769:9;10765:18;10758:30;10811:63;10869:3;10858:9;10854:19;10838:14;10811:63;:::i;:::-;10911:15;;;10905:22;10797:77;;-1:-1:-1;10946:3:145;10958:54;10993:18;;;10905:22;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;10958:54;11061:2;11053:6;11049:15;11043:22;11021:44;;;11088:2;11084:7;11110:3;11177:2;11165:9;11157:6;11153:22;11149:31;11144:2;11133:9;11129:18;11122:59;11204:41;11238:6;11222:14;11204:41;:::i;:::-;11190:55;;11294:2;11286:6;11282:15;11276:22;11254:44;;;11317:3;11329:51;11376:2;11365:9;11361:18;11345:14;6389:13;6382:21;6370:34;;6319:91;11329:51;11429:2;11421:6;11417:15;11411:22;11389:44;;;11452:3;11519:2;11507:9;11499:6;11495:22;11491:31;11486:2;11475:9;11471:18;11464:59;11546:41;11580:6;11564:14;11546:41;:::i;:::-;11532:55;;11636:2;11628:6;11624:15;11618:22;11596:44;;;;11649:54;11699:2;11688:9;11684:18;11668:14;-1:-1:-1;;;;;5702:54:145;5690:67;;5636:127;11649:54;-1:-1:-1;11720:6:145;;9856:1876;-1:-1:-1;;;;9856:1876:145:o;11737:338::-;-1:-1:-1;;;;;11916:6:145;11912:55;11901:9;11894:74;12004:2;11999;11988:9;11984:18;11977:30;11875:4;12024:45;12065:2;12054:9;12050:18;12042:6;12024:45;:::i;12988:184::-;13058:6;13111:2;13099:9;13090:7;13086:23;13082:32;13079:52;;;13127:1;13124;13117:12;13079:52;-1:-1:-1;13150:16:145;;12988:184;-1:-1:-1;12988:184:145:o;15189:287::-;15318:3;15356:6;15350:13;15372:66;15431:6;15426:3;15419:4;15411:6;15407:17;15372:66;:::i;:::-;15454:16;;;;;15189:287;-1:-1:-1;;15189:287:145:o;15839:220::-;15988:2;15977:9;15970:21;15951:4;16008:45;16049:2;16038:9;16034:18;16026:6;16008:45;:::i","linkReferences":{},"immutableReferences":{"55944":[{"start":1077,"length":32},{"start":1212,"length":32},{"start":1465,"length":32},{"start":1600,"length":32},{"start":1841,"length":32}]}},"methodIdentifiers":{"createRegistry((address,address,uint256,uint256,uint256,address,address,(uint256,string),address,string,bool,string,address))":"8a16135f","gardensFeeReceiver()":"b8bed901","getCommunityValidity(address)":"f5016b5e","getGardensFeeReceiver()":"987435be","getProtocolFee(address)":"0a992e0c","initialize(address)":"c4d66de8","initializeV2()":"5cd8a76b","nonce()":"affed0e0","owner()":"8da5cb5b","proxiableUUID()":"52d1902d","renounceOwnership()":"715018a6","setCommunityValidity(address,bool)":"5a2c8ace","setProtocolFee(address,uint256)":"b5b3ca2c","setReceiverAddress(address)":"8279c7db","transferOwnership(address)":"f2fde38b","upgradeTo(address)":"3659cfe6","upgradeToAndCall(address,bytes)":"4f1ef286"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"name\":\"AddressCannotBeZero\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"CommunityInvalid\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"previousAdmin\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"newAdmin\",\"type\":\"address\"}],\"name\":\"AdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"beacon\",\"type\":\"address\"}],\"name\":\"BeaconUpgraded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_registryCommunity\",\"type\":\"address\"}],\"name\":\"CommunityCreated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"CommunityValiditySet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"FeeReceiverSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"ProtocolFeeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"implementation\",\"type\":\"address\"}],\"name\":\"Upgraded\",\"type\":\"event\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"_allo\",\"type\":\"address\"},{\"internalType\":\"contract IERC20\",\"name\":\"_gardenToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_registerStakeAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_communityFee\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_nonce\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"_registryFactory\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_feeReceiver\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"protocol\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"pointer\",\"type\":\"string\"}],\"internalType\":\"struct Metadata\",\"name\":\"_metadata\",\"type\":\"tuple\"},{\"internalType\":\"address payable\",\"name\":\"_councilSafe\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"_communityName\",\"type\":\"string\"},{\"internalType\":\"bool\",\"name\":\"_isKickEnabled\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"covenantIpfsHash\",\"type\":\"string\"},{\"internalType\":\"address\",\"name\":\"_strategyTemplate\",\"type\":\"address\"}],\"internalType\":\"struct RegistryCommunityV0_0.InitializeParams\",\"name\":\"params\",\"type\":\"tuple\"}],\"name\":\"createRegistry\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"_createdRegistryAddress\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"gardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getCommunityValidity\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getGardensFeeReceiver\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"}],\"name\":\"getProtocolFee\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_gardensFeeReceiver\",\"type\":\"address\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initializeV2\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nonce\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"proxiableUUID\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isValid\",\"type\":\"bool\"}],\"name\":\"setCommunityValidity\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_community\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_newProtocolFee\",\"type\":\"uint256\"}],\"name\":\"setProtocolFee\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newFeeReceiver\",\"type\":\"address\"}],\"name\":\"setReceiverAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"}],\"name\":\"upgradeTo\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newImplementation\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"upgradeToAndCall\",\"outputs\":[],\"stateMutability\":\"payable\",\"type\":\"function\"}],\"devdoc\":{\"custom:oz-upgrades-from\":\"RegistryFactoryV0_0\",\"events\":{\"AdminChanged(address,address)\":{\"details\":\"Emitted when the admin account has changed.\"},\"BeaconUpgraded(address)\":{\"details\":\"Emitted when the beacon is changed.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"Upgraded(address)\":{\"details\":\"Emitted when the implementation is upgraded.\"}},\"kind\":\"dev\",\"methods\":{\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"proxiableUUID()\":{\"details\":\"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier.\"},\"renounceOwnership()\":{\"details\":\"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"upgradeTo(address)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"},\"upgradeToAndCall(address,bytes)\":{\"custom:oz-upgrades-unsafe-allow-reachable\":\"delegatecall\",\"details\":\"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/src/RegistryFactoryV0_1.sol\":\"RegistryFactoryV0_1\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/interfaces/IAllo.sol\":{\"keccak256\":\"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7\",\"dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/interfaces/IStrategy.sol\":{\"keccak256\":\"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487\",\"dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH\"]},\"lib/allo-v2/contracts/core/libraries/Clone.sol\":{\"keccak256\":\"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067\",\"dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/contracts/strategies/BaseStrategy.sol\":{\"keccak256\":\"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974\",\"dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol\":{\"keccak256\":\"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c\",\"dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol\":{\"keccak256\":\"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964\",\"dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol\":{\"keccak256\":\"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f\",\"dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb\",\"dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"lib/openzeppelin-contracts/contracts/access/Ownable.sol\":{\"keccak256\":\"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32\",\"dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol\":{\"keccak256\":\"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263\",\"dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol\":{\"keccak256\":\"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688\",\"dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol\":{\"keccak256\":\"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5\",\"dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn\"]},\"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol\":{\"keccak256\":\"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2\",\"dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82\"]},\"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472\",\"dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN\"]},\"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol\":{\"keccak256\":\"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354\",\"dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce\"]},\"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol\":{\"keccak256\":\"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1\",\"dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM\"]},\"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol\":{\"keccak256\":\"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34\",\"dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol\":{\"keccak256\":\"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15\",\"dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol\":{\"keccak256\":\"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd\",\"dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]},\"lib/openzeppelin-contracts/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol\":{\"keccak256\":\"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da\",\"dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f\",\"dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol\":{\"keccak256\":\"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd\",\"dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c\",\"dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7\",\"dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6\"]},\"pkg/contracts/src/CVStrategy.sol\":{\"keccak256\":\"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be\",\"dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY\"]},\"pkg/contracts/src/RegistryCommunity.sol\":{\"keccak256\":\"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3\",\"dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf\"]},\"pkg/contracts/src/RegistryCommunityV0_0.sol\":{\"keccak256\":\"0x16c0522a7583d5bc911fb96831c62ec3b0377d6454345e0e45f2e23fa4411dd4\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://926e9d52972a2ef1aa7a39dc853e7d2f1f0472c22817437263faa55b1bf3f979\",\"dweb:/ipfs/QmXGmeFSJNDo2V5TQC6twGVL92KtqHMhKy1z22MXB5Ec3a\"]},\"pkg/contracts/src/RegistryFactory.sol\":{\"keccak256\":\"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6\",\"dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo\"]},\"pkg/contracts/src/RegistryFactoryV0_0.sol\":{\"keccak256\":\"0x59a6e49b42141bc51d6748cedcb7f4ce3d5359dd345763f62804ccdf72221b53\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://74fd049e24d60225b20494b700df91393dc2b0ea1ddeb578ace20304e3d0e6d3\",\"dweb:/ipfs/QmSU7eeB25waPDyoxNTKogyxFaysjbQgresn9sebLNBSSt\"]},\"pkg/contracts/src/RegistryFactoryV0_1.sol\":{\"keccak256\":\"0xd26de80bc3abac11b0c8671a6aaaa9d422fb05b704f61fc3b8fbdb6285dacdc6\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://298ed925474fd1da221c531d775bd0008125fb1bd29e700dca512d62be227b7b\",\"dweb:/ipfs/QmekeaeBg2c4HypDptinsZDrz6KNm5iCE4RTprKJgXAjpa\"]},\"pkg/contracts/src/interfaces/FAllo.sol\":{\"keccak256\":\"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458\",\"dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM\"]},\"pkg/contracts/src/interfaces/ISafe.sol\":{\"keccak256\":\"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143\",\"license\":\"LGPL-3.0-only\",\"urls\":[\"bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef\",\"dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[],"type":"error","name":"AddressCannotBeZero"},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"type":"error","name":"CommunityInvalid"},{"inputs":[{"internalType":"address","name":"previousAdmin","type":"address","indexed":false},{"internalType":"address","name":"newAdmin","type":"address","indexed":false}],"type":"event","name":"AdminChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"beacon","type":"address","indexed":true}],"type":"event","name":"BeaconUpgraded","anonymous":false},{"inputs":[{"internalType":"address","name":"_registryCommunity","type":"address","indexed":false}],"type":"event","name":"CommunityCreated","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"bool","name":"_isValid","type":"bool","indexed":false}],"type":"event","name":"CommunityValiditySet","anonymous":false},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address","indexed":false}],"type":"event","name":"FeeReceiverSet","anonymous":false},{"inputs":[{"internalType":"uint8","name":"version","type":"uint8","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"address","name":"previousOwner","type":"address","indexed":true},{"internalType":"address","name":"newOwner","type":"address","indexed":true}],"type":"event","name":"OwnershipTransferred","anonymous":false},{"inputs":[{"internalType":"address","name":"_community","type":"address","indexed":false},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256","indexed":false}],"type":"event","name":"ProtocolFeeSet","anonymous":false},{"inputs":[{"internalType":"address","name":"implementation","type":"address","indexed":true}],"type":"event","name":"Upgraded","anonymous":false},{"inputs":[{"internalType":"struct RegistryCommunityV0_0.InitializeParams","name":"params","type":"tuple","components":[{"internalType":"address","name":"_allo","type":"address"},{"internalType":"contract IERC20","name":"_gardenToken","type":"address"},{"internalType":"uint256","name":"_registerStakeAmount","type":"uint256"},{"internalType":"uint256","name":"_communityFee","type":"uint256"},{"internalType":"uint256","name":"_nonce","type":"uint256"},{"internalType":"address","name":"_registryFactory","type":"address"},{"internalType":"address","name":"_feeReceiver","type":"address"},{"internalType":"struct Metadata","name":"_metadata","type":"tuple","components":[{"internalType":"uint256","name":"protocol","type":"uint256"},{"internalType":"string","name":"pointer","type":"string"}]},{"internalType":"address payable","name":"_councilSafe","type":"address"},{"internalType":"string","name":"_communityName","type":"string"},{"internalType":"bool","name":"_isKickEnabled","type":"bool"},{"internalType":"string","name":"covenantIpfsHash","type":"string"},{"internalType":"address","name":"_strategyTemplate","type":"address"}]}],"stateMutability":"nonpayable","type":"function","name":"createRegistry","outputs":[{"internalType":"address","name":"_createdRegistryAddress","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"gardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getCommunityValidity","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"getGardensFeeReceiver","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"address","name":"_community","type":"address"}],"stateMutability":"view","type":"function","name":"getProtocolFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"_gardensFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initializeV2"},{"inputs":[],"stateMutability":"view","type":"function","name":"nonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"renounceOwnership"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"bool","name":"_isValid","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setCommunityValidity"},{"inputs":[{"internalType":"address","name":"_community","type":"address"},{"internalType":"uint256","name":"_newProtocolFee","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"setProtocolFee"},{"inputs":[{"internalType":"address","name":"_newFeeReceiver","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"setReceiverAddress"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"transferOwnership"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"upgradeTo"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"payable","type":"function","name":"upgradeToAndCall"}],"devdoc":{"kind":"dev","methods":{"owner()":{"details":"Returns the address of the current owner."},"proxiableUUID()":{"details":"Implementation of the ERC1822 {proxiableUUID} function. This returns the storage slot used by the implementation. It is used to validate the implementation's compatibility when performing an upgrade. IMPORTANT: A proxy pointing at a proxiable contract should not be considered proxiable itself, because this risks bricking a proxy that upgrades to it, by delegating to itself until out of gas. Thus it is critical that this function revert if invoked through a proxy. This is guaranteed by the `notDelegated` modifier."},"renounceOwnership()":{"details":"Leaves the contract without owner. It will not be possible to call `onlyOwner` functions. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby disabling any functionality that is only available to the owner."},"transferOwnership(address)":{"details":"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."},"upgradeTo(address)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."},"upgradeToAndCall(address,bytes)":{"custom:oz-upgrades-unsafe-allow-reachable":"delegatecall","details":"Upgrade the implementation of the proxy to `newImplementation`, and subsequently execute the function call encoded in `data`. Calls {_authorizeUpgrade}. Emits an {Upgraded} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/src/RegistryFactoryV0_1.sol":"RegistryFactoryV0_1"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/interfaces/IAllo.sol":{"keccak256":"0x752bbf7be2275b2d0e6323063775fc5afe3c360a2dae9b879452a42e8b2280ce","urls":["bzz-raw://a41b95501d44b11718ec5df990595335d44bd6bba883e4879bdce35261ee93a7","dweb:/ipfs/QmcRbrYjcibhDqsKJZM3HLceB4Kdd4tKDXqDaaVzbTkza1"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/interfaces/IStrategy.sol":{"keccak256":"0xebd143a6729d7fe650ffd83a2dc1941e19ce9285526e5cb4d6c32adba3f3cf23","urls":["bzz-raw://994ed7ab48860e92ffd369e6741149760a725c5ddf4fc55e33c31f408bd25487","dweb:/ipfs/QmV6bzxJQo5T13Kynv7mqGJQSbNyZ4ZJfTEjWUymxmpfpH"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Clone.sol":{"keccak256":"0xc348b24b7d8a98c4faa5f2aa37ce9264a74f81dbdef1a9bae2eaa125585c3c7e","urls":["bzz-raw://1335b3ec59ec7e3d12ea7c90b3aa56f4c26e0d44d342f54412933be9d4f16067","dweb:/ipfs/QmXNFo2wCyq9cpvfgbdHvBUQecThFSEoUnMuZNS6WinDrr"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/strategies/BaseStrategy.sol":{"keccak256":"0x3f1382dc6c35d50545e327e7ed6016f2bd752357d446bd698014073f0b812873","urls":["bzz-raw://99500abcd617fa43f6dde49e2c7802821ceaf54a65a8055cbbf2695ecd107974","dweb:/ipfs/QmUktZkWuu3GCMEijY1fqt7NMy7BzpTvEtcmpB1fuoa7zt"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol":{"keccak256":"0x359a1ab89b46b9aba7bcad3fb651924baf4893d15153049b9976b0fc9be1358e","urls":["bzz-raw://e89863421b4014b96a4b62be76eb3b9f0a8afe9684664a6f389124c0964bfe5c","dweb:/ipfs/Qmbk7xr1irpDuU1WdxXgxELBXxs61rHhCgod7heVcvFx16"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/ClonesUpgradeable.sol":{"keccak256":"0x3d98edeb5d5be8410fca707b73dabe7544d1dd11e35b73dd907c473fe43cc3ae","urls":["bzz-raw://1a3fa9fc3aec149b8ad0dd8895277ab11e9244e9d2b7adc8404b22de974fc964","dweb:/ipfs/QmRggzxs1WjuvGJSAKb2Nw5r7P3VDMefCWKTbkNPKRkv2j"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/security/ReentrancyGuardUpgradeable.sol":{"keccak256":"0x2025ccf05f6f1f2fd4e078e552836f525a1864e3854ed555047cd732320ab29b","urls":["bzz-raw://d27f4b23c2dee42394aebaf42bf238285230f472dfd3282a39c3f000ec28214f","dweb:/ipfs/QmQa3DnvccwdWJeWrjgXPnFMTWbzWQWR39hVqC7eEwo2PC"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/AccessControl.sol":{"keccak256":"0x0dd6e52cb394d7f5abe5dca2d4908a6be40417914720932de757de34a99ab87f","urls":["bzz-raw://dc117ce50ea746cab6b97ed1a1facee17a715ae0cb95d67b943dacbaf15176fb","dweb:/ipfs/QmYRZ2UGNYwsHwfNu7Wjr8L2j1LBZ1mKv6NvbwgterYMXc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57","urls":["bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a","dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/Ownable.sol":{"keccak256":"0xba43b97fba0d32eb4254f6a5a297b39a19a247082a02d6e69349e071e2946218","urls":["bzz-raw://fc980984badf3984b6303b377711220e067722bbd6a135b24669ff5069ef9f32","dweb:/ipfs/QmPHXMSXj99XjSVM21YsY6aNtLLjLVXDbyN76J5HQYvvrz"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC1967.sol":{"keccak256":"0x3cbef5ebc24b415252e2f8c0c9254555d30d9f085603b4b80d9b5ed20ab87e90","urls":["bzz-raw://e8fa670c3bdce78e642cc6ae11c4cb38b133499cdce5e1990a9979d424703263","dweb:/ipfs/QmVxeCUk4jL2pXQyhsoNJwyU874wRufS2WvGe8TgPKPqhE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC1822.sol":{"keccak256":"0x1d4afe6cb24200cc4545eed814ecf5847277dfe5d613a1707aad5fceecebcfff","urls":["bzz-raw://383fb7b8181016ac5ccf07bc9cdb7c1b5045ea36e2cc4df52bcbf20396fc7688","dweb:/ipfs/QmYJ7Cg4WmE3rR8KGQxjUCXFfTH6TcwZ2Z1f6tPrq7jHFr"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Proxy.sol":{"keccak256":"0xa2b22da3032e50b55f95ec1d13336102d675f341167aa76db571ef7f8bb7975d","urls":["bzz-raw://96b6d77a20bebd4eb06b801d3d020c7e82be13bd535cb0d0a6b7181c51dab5d5","dweb:/ipfs/QmPUR9Cv9jNFdQX6PtBfaBW1ZCnKwiu65R2VD5kbdanDyn"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/ERC1967/ERC1967Upgrade.sol":{"keccak256":"0x3b21ae06bf5957f73fa16754b0669c77b7abd8ba6c072d35c3281d446fdb86c2","urls":["bzz-raw://2db8e18505e86e02526847005d7287a33e397ed7fb9eaba3fd4a4a197add16e2","dweb:/ipfs/QmW9BSuKTzHWHBNSHF4L8XfVuU1uJrP2vLg84YtBd8mL82"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc130fe33f1b2132158531a87734153293f6d07bc263ff4ac90e85da9c82c0e27","urls":["bzz-raw://8831721b6f4cc26534d190f9f1631c3f59c9ff38efdd911f85e0882b8e360472","dweb:/ipfs/QmQZnLErZNStirSQ13ZNWQgvEYUtGE5tXYwn4QUPaVUfPN"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/beacon/IBeacon.sol":{"keccak256":"0xd50a3421ac379ccb1be435fa646d66a65c986b4924f0849839f08692f39dde61","urls":["bzz-raw://ada1e030c0231db8d143b44ce92b4d1158eedb087880cad6d8cc7bd7ebe7b354","dweb:/ipfs/QmWZ2NHZweRpz1U9GF6R1h65ri76dnX7fNxLBeM2t5N5Ce"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/proxy/utils/UUPSUpgradeable.sol":{"keccak256":"0xc6619957bcc6641fe8984bfaf9ff11a9e4b97d8149c0495f608f9a2416d7c5cf","urls":["bzz-raw://543be67f7fa43b1b932637c1c7f12035f0f4b0f7ee2bd3c33841186f79c165c1","dweb:/ipfs/QmSBPM2UVKbmJqWfD9i6hSiqbaE8TV4TSqfuiivziRRLKM"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/security/ReentrancyGuard.sol":{"keccak256":"0xa535a5df777d44e945dd24aa43a11e44b024140fc340ad0dfe42acf4002aade1","urls":["bzz-raw://41319e7f621f2dc3733511332c4fd032f8e32ad2aa7fd6f665c19741d9941a34","dweb:/ipfs/QmcYR3bd862GD1Bc7jwrU9bGxrhUu5na1oP964bDCu2id1"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/ERC20.sol":{"keccak256":"0xa56ca923f70c1748830700250b19c61b70db9a683516dc5e216694a50445d99c","urls":["bzz-raw://cac938788bc4be12101e59d45588b4e059579f4e61062e1cda8d6b06c0191b15","dweb:/ipfs/QmV2JKCyjTVH3rkWNrfdJRhAT7tZ3usAN2XcnD4h53Mvih"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Metadata.sol":{"keccak256":"0x8de418a5503946cabe331f35fe242d3201a73f67f77aaeb7110acb1f30423aca","urls":["bzz-raw://5a376d3dda2cb70536c0a45c208b29b34ac560c4cb4f513a42079f96ba47d2dd","dweb:/ipfs/QmZQg6gn1sUpM8wHzwNvSnihumUCAhxD119MpXeKp8B9s8"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Context.sol":{"keccak256":"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7","urls":["bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92","dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/StorageSlot.sol":{"keccak256":"0xf09e68aa0dc6722a25bc46490e8d48ed864466d17313b8a0b254c36b54e49899","urls":["bzz-raw://e26daf81e2252dc1fe1ce0e4b55c2eb7c6d1ee84ae6558d1a9554432ea1d32da","dweb:/ipfs/Qmb1UANWiWq5pCKbmHSu772hd4nt374dVaghGmwSVNuk8Q"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x3088eb2868e8d13d89d16670b5f8612c4ab9ff8956272837d8e90106c59c14a0","urls":["bzz-raw://b81d9ff6559ea5c47fc573e17ece6d9ba5d6839e213e6ebc3b4c5c8fe4199d7f","dweb:/ipfs/QmPCW1bFisUzJkyjroY3yipwfism9RRCigCcK1hbXtVM8n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165Checker.sol":{"keccak256":"0x5a08ad61f4e82b8a3323562661a86fb10b10190848073fdc13d4ac43710ffba5","urls":["bzz-raw://6f7bb74cf88fd88daa34e118bc6e363381d05044f34f391d39a10c0c9dac3ebd","dweb:/ipfs/QmNbQ3v8v4zuDtg7VeLAbdhAm3tCzUodNoDZZ8ekmCHWZX"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0xe4455ac1eb7fc497bb7402579e7b4d64d928b846fce7d2b6fde06d366f21c2b3","urls":["bzz-raw://cc8841b3cd48ad125e2f46323c8bad3aa0e88e399ec62acb9e57efa7e7c8058c","dweb:/ipfs/QmSqE4mXHA2BXW58deDbXE8MTcsL5JSKNDbm23sVQxRLPS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0xf92515413956f529d95977adc9b0567d583c6203fc31ab1c23824c35187e3ddc","urls":["bzz-raw://c50fcc459e49a9858b6d8ad5f911295cb7c9ab57567845a250bf0153f84a95c7","dweb:/ipfs/QmcEW85JRzvDkQggxiBBLVAasXWdkhEysqypj9EaB6H2g6"],"license":"MIT"},"pkg/contracts/src/CVStrategy.sol":{"keccak256":"0x3032ef966b217c359e29a9735604ee4e8e6529a9a0632369abdd7a7ae285dbd7","urls":["bzz-raw://788c0a1deb7c53faedadc5efc152107ba22db81aaa9cffa1ba52d1427adfe2be","dweb:/ipfs/QmQGANoMw4kb87y8JGCEgndo888YVDfRKMCepTJ2NVWUmY"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunity.sol":{"keccak256":"0xc735f4d2635149f2db9bff291da56e08c3c312d9eb1b767b8a1e3e51584d5734","urls":["bzz-raw://247b33b78abface6a7e2da38174386de9b543f6a27e8340e26d854bff57184a3","dweb:/ipfs/QmedNdqkqeboGzz9w868uGf7KnXUaYZe6i1YcdUPPkJnnf"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryCommunityV0_0.sol":{"keccak256":"0x16c0522a7583d5bc911fb96831c62ec3b0377d6454345e0e45f2e23fa4411dd4","urls":["bzz-raw://926e9d52972a2ef1aa7a39dc853e7d2f1f0472c22817437263faa55b1bf3f979","dweb:/ipfs/QmXGmeFSJNDo2V5TQC6twGVL92KtqHMhKy1z22MXB5Ec3a"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactory.sol":{"keccak256":"0x888b7f5eb1079f90ccfa0b41d8a970bffd8d4d469f9b31917a58279b358dbda5","urls":["bzz-raw://af25fd783de00adf01d1c7caa572801fed0d474306a43b862535b08e65ec10c6","dweb:/ipfs/Qmeb2nEaMQLV86y1CYAAV2c6BYpBDTbpLuC1SigeNjdqLo"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_0.sol":{"keccak256":"0x59a6e49b42141bc51d6748cedcb7f4ce3d5359dd345763f62804ccdf72221b53","urls":["bzz-raw://74fd049e24d60225b20494b700df91393dc2b0ea1ddeb578ace20304e3d0e6d3","dweb:/ipfs/QmSU7eeB25waPDyoxNTKogyxFaysjbQgresn9sebLNBSSt"],"license":"AGPL-3.0-only"},"pkg/contracts/src/RegistryFactoryV0_1.sol":{"keccak256":"0xd26de80bc3abac11b0c8671a6aaaa9d422fb05b704f61fc3b8fbdb6285dacdc6","urls":["bzz-raw://298ed925474fd1da221c531d775bd0008125fb1bd29e700dca512d62be227b7b","dweb:/ipfs/QmekeaeBg2c4HypDptinsZDrz6KNm5iCE4RTprKJgXAjpa"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/FAllo.sol":{"keccak256":"0x32f38cb4400a07a99ae68a9beb91e5649886487172fd50561da6763464efc437","urls":["bzz-raw://cb4f0cee2f3fbede7be5e8e1d7ee8034086359cd07b9dab49c4a991388e5c458","dweb:/ipfs/QmS26kA8cZ9shWwxcbF17Kes8L7Jgw85EQVydDmwb34mjM"],"license":"AGPL-3.0-only"},"pkg/contracts/src/interfaces/ISafe.sol":{"keccak256":"0x878a210809bb684c42157a10f3f90350a67d0a4863f130499942b06f0f2c9143","urls":["bzz-raw://fa2d71bd427c3415e98a2ee15ff673f3cc61c17f14d7087c5eedc83b55f6b0ef","dweb:/ipfs/QmesVSmJQQzi6ys1cvhQFCJyDXchb736mT5bXks4Yp6Cbj"],"license":"LGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":53029,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_initialized","offset":0,"slot":"0","type":"t_uint8"},{"astId":53032,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_initializing","offset":1,"slot":"0","type":"t_bool"},{"astId":53734,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"1","type":"t_array(t_uint256)50_storage"},{"astId":52821,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"_owner","offset":0,"slot":"51","type":"t_address"},{"astId":52941,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"52","type":"t_array(t_uint256)49_storage"},{"astId":79878,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"nonce","offset":0,"slot":"101","type":"t_uint256"},{"astId":79883,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"communityToInfo","offset":0,"slot":"102","type":"t_mapping(t_address,t_struct(CommunityInfo)79871_storage)"},{"astId":79885,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"gardensFeeReceiver","offset":0,"slot":"103","type":"t_address"},{"astId":80154,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"__gap","offset":0,"slot":"104","type":"t_array(t_uint256)50_storage"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_uint256)49_storage":{"encoding":"inplace","label":"uint256[49]","numberOfBytes":"1568","base":"t_uint256"},"t_array(t_uint256)50_storage":{"encoding":"inplace","label":"uint256[50]","numberOfBytes":"1600","base":"t_uint256"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_mapping(t_address,t_struct(CommunityInfo)79871_storage)":{"encoding":"mapping","key":"t_address","label":"mapping(address => struct CommunityInfo)","numberOfBytes":"32","value":"t_struct(CommunityInfo)79871_storage"},"t_struct(CommunityInfo)79871_storage":{"encoding":"inplace","label":"struct CommunityInfo","numberOfBytes":"64","members":[{"astId":79868,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"fee","offset":0,"slot":"0","type":"t_uint256"},{"astId":79870,"contract":"pkg/contracts/src/RegistryFactoryV0_1.sol:RegistryFactoryV0_1","label":"valid","offset":0,"slot":"1","type":"t_bool"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/src/RegistryFactoryV0_1.sol","id":80183,"exportedSymbols":{"CommunityInfo":[80168],"OwnableUpgradeable":[52942],"RegistryCommunity":[77675],"RegistryFactoryV0_0":[80155],"RegistryFactoryV0_1":[80182]},"nodeType":"SourceUnit","src":"42:1020:133","nodes":[{"id":80157,"nodeType":"PragmaDirective","src":"42:24:133","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":80159,"nodeType":"ImportDirective","src":"68:63:133","nodes":[],"absolutePath":"pkg/contracts/src/RegistryCommunity.sol","file":"../src/RegistryCommunity.sol","nameLocation":"-1:-1:-1","scope":80183,"sourceUnit":77676,"symbolAliases":[{"foreign":{"id":80158,"name":"RegistryCommunity","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":77675,"src":"76:17:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80161,"nodeType":"ImportDirective","src":"133:67:133","nodes":[],"absolutePath":"pkg/contracts/src/RegistryFactoryV0_0.sol","file":"../src/RegistryFactoryV0_0.sol","nameLocation":"-1:-1:-1","scope":80183,"sourceUnit":80156,"symbolAliases":[{"foreign":{"id":80160,"name":"RegistryFactoryV0_0","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":80155,"src":"141:19:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80163,"nodeType":"ImportDirective","src":"202:110:133","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","file":"openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol","nameLocation":"-1:-1:-1","scope":80183,"sourceUnit":52943,"symbolAliases":[{"foreign":{"id":80162,"name":"OwnableUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52942,"src":"210:18:133","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":80168,"nodeType":"StructDefinition","src":"314:57:133","nodes":[],"canonicalName":"CommunityInfo","members":[{"constant":false,"id":80165,"mutability":"mutable","name":"fee","nameLocation":"349:3:133","nodeType":"VariableDeclaration","scope":80168,"src":"341:11:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":80164,"name":"uint256","nodeType":"ElementaryTypeName","src":"341:7:133","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":80167,"mutability":"mutable","name":"valid","nameLocation":"363:5:133","nodeType":"VariableDeclaration","scope":80168,"src":"358:10:133","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":80166,"name":"bool","nodeType":"ElementaryTypeName","src":"358:4:133","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"name":"CommunityInfo","nameLocation":"321:13:133","scope":80183,"visibility":"public"},{"id":80182,"nodeType":"ContractDefinition","src":"422:639:133","nodes":[{"id":80181,"nodeType":"FunctionDefinition","src":"978:81:133","nodes":[],"body":{"id":80180,"nodeType":"Block","src":"1026:33:133","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":80177,"name":"__Ownable_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52837,"src":"1036:14:133","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":80178,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1036:16:133","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":80179,"nodeType":"ExpressionStatement","src":"1036:16:133"}]},"functionSelector":"5cd8a76b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"hexValue":"32","id":80174,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1023:1:133","typeDescriptions":{"typeIdentifier":"t_rational_2_by_1","typeString":"int_const 2"},"value":"2"}],"id":80175,"kind":"modifierInvocation","modifierName":{"id":80173,"name":"reinitializer","nameLocations":["1009:13:133"],"nodeType":"IdentifierPath","referencedDeclaration":53126,"src":"1009:13:133"},"nodeType":"ModifierInvocation","src":"1009:16:133"}],"name":"initializeV2","nameLocation":"987:12:133","parameters":{"id":80172,"nodeType":"ParameterList","parameters":[],"src":"999:2:133"},"returnParameters":{"id":80176,"nodeType":"ParameterList","parameters":[],"src":"1026:0:133"},"scope":80182,"stateMutability":"nonpayable","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":80170,"name":"RegistryFactoryV0_0","nameLocations":["454:19:133"],"nodeType":"IdentifierPath","referencedDeclaration":80155,"src":"454:19:133"},"id":80171,"nodeType":"InheritanceSpecifier","src":"454:19:133"}],"canonicalName":"RegistryFactoryV0_1","contractDependencies":[55562,79618],"contractKind":"contract","documentation":{"id":80169,"nodeType":"StructuredDocumentation","src":"372:49:133","text":"@custom:oz-upgrades-from RegistryFactoryV0_0"},"fullyImplemented":true,"linearizedBaseContracts":[80182,80155,56044,55866,55515,55525,52942,53735,53191],"name":"RegistryFactoryV0_1","nameLocation":"431:19:133","scope":80183,"usedErrors":[79909,79911]}],"license":"AGPL-3.0-only"},"id":133} \ No newline at end of file diff --git a/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json b/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json index 321ef3fd8..b1071822a 100644 --- a/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json +++ b/pkg/contracts/out/RegistrySetup.sol/RegistrySetup.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b5061177b8061003d6000396000f3fe608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212202b8cd3d1abe5e7164277d6a0e7426e5a1338d8616d8e34f04ec577cab2c85bfe64736f6c63430008130033","sourceMap":"393:304:17:-:0;;;3126:44:23;;;3166:4;-1:-1:-1;;3126:44:23;;;;;;;;1016:26:33;;;;;;;;;;;393:304:17;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212202b8cd3d1abe5e7164277d6a0e7426e5a1338d8616d8e34f04ec577cab2c85bfe64736f6c63430008130033","sourceMap":"393:304:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:143;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;2452:134:26:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;1331:118:15:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:26:-;;;:::i;:::-;;;;;;;:::i;1876:107:15:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:17:-;678:10;;;;;-1:-1:-1;;;;;678:10:17;610:85;;2673:113:15;;;:::i;439:101::-;;;:::i;2592:140:26:-;;;:::i;:::-;;;;;;;:::i;1537:101:15:-;;;:::i;3485:113::-;;;:::i;3069:146:26:-;;;:::i;3604:241:15:-;;;:::i;3938:101::-;;;:::i;2157:141:26:-;;;:::i;1243:204:22:-;;;:::i;:::-;;;6098:14:143;;6091:22;6073:41;;6061:2;6046:18;1243:204:22;5933:187:143;1644:113:15;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:26:-;;;:::i;3241:119:15:-;;;:::i;1016:26:33:-;;;;;;;;;1763:107:15;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:26:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:26;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:26;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:26;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:26:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:15;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:26:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:15;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:26:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:15;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:26:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:22;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:22;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7366:74:143;;;1398:17:22;7456:18:143;;;7449:34;1428:1:22;;1377:7;;7339:18:143;;1377:39:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:15:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:26:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:26;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;8123:25:143;;;20293:33:24;-1:-1:-1;20344:7:24;;;;8096:18:143;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;245:681:143:-;416:2;468:21;;;538:13;;441:18;;;560:22;;;387:4;;416:2;639:15;;;;613:2;598:18;;;387:4;682:218;696:6;693:1;690:13;682:218;;;761:13;;-1:-1:-1;;;;;757:62:143;745:75;;875:15;;;;840:12;;;;718:1;711:9;682:218;;;-1:-1:-1;917:3:143;;245:681;-1:-1:-1;;;;;;245:681:143:o;931:250::-;1016:1;1026:113;1040:6;1037:1;1034:13;1026:113;;;1116:11;;;1110:18;1097:11;;;1090:39;1062:2;1055:10;1026:113;;;-1:-1:-1;;1173:1:143;1155:16;;1148:27;931:250::o;1186:271::-;1228:3;1266:5;1260:12;1293:6;1288:3;1281:19;1309:76;1378:6;1371:4;1366:3;1362:14;1355:4;1348:5;1344:16;1309:76;:::i;:::-;1439:2;1418:15;-1:-1:-1;;1414:29:143;1405:39;;;;1446:4;1401:50;;1186:271;-1:-1:-1;;1186:271:143:o;1462:1767::-;1697:2;1749:21;;;1819:13;;1722:18;;;1841:22;;;1668:4;;1697:2;1882;;1900:18;;;;1937:1;1980:15;;;1965:31;;1961:40;;2024:15;;;1668:4;;2088:1112;2104:6;2099:3;2096:15;2088:1112;;;-1:-1:-1;;2173:22:143;;;2169:36;2157:49;;2229:13;;2316:9;;-1:-1:-1;;;;;2312:58:143;2297:74;;2410:11;;2404:18;2442:15;;;2435:27;;;2523:19;;2269:15;;;2555:24;;;2736:21;;;;2602:2;2684:17;;;2672:30;;2668:39;;;2626:15;;;;2781:1;2795:296;2811:8;2806:3;2803:17;2795:296;;;2917:2;2913:7;2904:6;2896;2892:19;2888:33;2881:5;2874:48;2949:42;2984:6;2973:8;2967:15;2949:42;:::i;:::-;3020:17;;;;2939:52;-1:-1:-1;3063:14:143;;;;2839:1;2830:11;2795:296;;;-1:-1:-1;;;3178:12:143;;;;3114:6;-1:-1:-1;;3143:15:143;;;;2130:1;2121:11;2088:1112;;;-1:-1:-1;3217:6:143;;1462:1767;-1:-1:-1;;;;;;;;;;1462:1767:143:o;3234:1638::-;3438:4;3467:2;3507;3496:9;3492:18;3537:2;3526:9;3519:21;3560:6;3595;3589:13;3626:6;3618;3611:22;3652:2;3642:12;;3685:2;3674:9;3670:18;3663:25;;3747:2;3737:6;3734:1;3730:14;3719:9;3715:30;3711:39;3785:2;3777:6;3773:15;3806:1;3827;3837:1006;3853:6;3848:3;3845:15;3837:1006;;;3922:22;;;-1:-1:-1;;3918:36:143;3906:49;;3978:13;;4065:9;;-1:-1:-1;;;;;4061:58:143;4046:74;;4159:11;;4153:18;4191:15;;;4184:27;;;4272:19;;4018:15;;;4304:24;;;4394:21;;;;4439:1;;4362:2;4350:15;;;4453:282;4469:8;4464:3;4461:17;4453:282;;;4550:15;;4567:66;4546:88;4532:103;;4704:17;;;;4497:1;4488:11;;;;;4661:14;;;;4453:282;;;-1:-1:-1;4821:12:143;;;;4758:5;-1:-1:-1;;;4786:15:143;;;;3879:1;3870:11;3837:1006;;;-1:-1:-1;4860:6:143;;3234:1638;-1:-1:-1;;;;;;;;;3234:1638:143:o;5125:803::-;5287:4;5316:2;5356;5345:9;5341:18;5386:2;5375:9;5368:21;5409:6;5444;5438:13;5475:6;5467;5460:22;5513:2;5502:9;5498:18;5491:25;;5575:2;5565:6;5562:1;5558:14;5547:9;5543:30;5539:39;5525:53;;5613:2;5605:6;5601:15;5634:1;5644:255;5658:6;5655:1;5652:13;5644:255;;;5751:2;5747:7;5735:9;5727:6;5723:22;5719:36;5714:3;5707:49;5779:40;5812:6;5803;5797:13;5779:40;:::i;:::-;5769:50;-1:-1:-1;5877:12:143;;;;5842:15;;;;5680:1;5673:9;5644:255;;;-1:-1:-1;5916:6:143;;5125:803;-1:-1:-1;;;;;;;5125:803:143:o;6372:437::-;6451:1;6447:12;;;;6494;;;6515:61;;6569:4;6561:6;6557:17;6547:27;;6515:61;6622:2;6614:6;6611:14;6591:18;6588:38;6585:218;;-1:-1:-1;;;6656:1:143;6649:88;6760:4;6757:1;6750:15;6788:4;6785:1;6778:15;6585:218;;6372:437;;;:::o;7003:184::-;-1:-1:-1;;;7052:1:143;7045:88;7152:4;7149:1;7142:15;7176:4;7173:1;7166:15;7494:184;7564:6;7617:2;7605:9;7596:7;7592:23;7588:32;7585:52;;;7633:1;7630;7623:12;7585:52;-1:-1:-1;7656:16:143;;7494:184;-1:-1:-1;7494:184:143:o;7683:289::-;7814:3;7852:6;7846:13;7868:66;7927:6;7922:3;7915:4;7907:6;7903:17;7868:66;:::i;:::-;7950:16;;;;;7683:289;-1:-1:-1;;7683:289:143:o;8159:313::-;8229:6;8282:2;8270:9;8261:7;8257:23;8253:32;8250:52;;;8298:1;8295;8288:12;8250:52;8330:9;8324:16;-1:-1:-1;;;;;8373:5:143;8369:54;8362:5;8359:65;8349:93;;8438:1;8435;8428:12;8349:93;8461:5;8159:313;-1:-1:-1;;;8159:313:143:o;8477:340::-;-1:-1:-1;;;;;8658:6:143;8654:55;8643:9;8636:74;8746:2;8741;8730:9;8726:18;8719:30;8617:4;8766:45;8807:2;8796:9;8792:18;8784:6;8766:45;:::i;:::-;8758:53;8477:340;-1:-1:-1;;;;8477:340:143:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetup\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup an empty Registry contract for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetup\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetup"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5830,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13235_storage"},{"astId":6026,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8527,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8548,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)"},{"astId":8552,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8556,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8559,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9317,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11354,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13235_storage"},{"astId":12222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12225,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12231,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12237,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12241,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12245,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12249,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage"},{"astId":17834,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":5104,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_registry_","offset":1,"slot":"30","type":"t_contract(Registry)2295"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12219_storage"},"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12213_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(Registry)2295":{"encoding":"inplace","label":"contract Registry","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8543_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8543_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8536,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8538,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8540,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8542,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12219_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12215,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12218,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12213_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12212,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol","id":5297,"exportedSymbols":{"Accounts":[5026],"Metadata":[3098],"Registry":[2295],"RegistrySetup":[5132],"RegistrySetupFull":[5296],"StdAssertions":[8503],"StdChains":[9285],"StdCheats":[12138],"StdInvariant":[12463],"StdStorage":[13235],"StdStyle":[16405],"StdUtils":[17783],"Test":[17835],"TestBase":[5834],"Vm":[21485],"console":[29549],"console2":[37674],"safeconsole":[52399],"stdError":[12204],"stdJson":[13055],"stdMath":[13197],"stdStorage":[15194],"stdToml":[16997]},"nodeType":"SourceUnit","src":"42:2823:17","nodes":[{"id":5089,"nodeType":"PragmaDirective","src":"42:24:17","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5090,"nodeType":"ImportDirective","src":"68:28:17","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":17836,"symbolAliases":[],"unitAlias":""},{"id":5092,"nodeType":"ImportDirective","src":"98:62:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","file":"../../../contracts/core/Registry.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":2296,"symbolAliases":[{"foreign":{"id":5091,"name":"Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"106:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"161:72:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../../../contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":5093,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"169:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5096,"nodeType":"ImportDirective","src":"234:40:17","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"./Accounts.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":5095,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"242:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ContractDefinition","src":"393:304:17","nodes":[{"id":5104,"nodeType":"VariableDeclaration","src":"440:28:17","nodes":[],"constant":false,"mutability":"mutable","name":"_registry_","nameLocation":"458:10:17","scope":5132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5103,"nodeType":"UserDefinedTypeName","pathNode":{"id":5102,"name":"Registry","nameLocations":["440:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"440:8:17"},"referencedDeclaration":2295,"src":"440:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"},{"id":5122,"nodeType":"FunctionDefinition","src":"475:129:17","nodes":[],"body":{"id":5121,"nodeType":"Block","src":"511:93:17","nodes":[],"statements":[{"expression":{"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5107,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"521:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"534:12:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Registry_$2295_$","typeString":"function () returns (contract Registry)"},"typeName":{"id":5109,"nodeType":"UserDefinedTypeName","pathNode":{"id":5108,"name":"Registry","nameLocations":["538:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"538:8:17"},"referencedDeclaration":2295,"src":"538:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"src":"521:27:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5113,"nodeType":"ExpressionStatement","src":"521:27:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5117,"name":"registry_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"580:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5114,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"558:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1578,"src":"558:21:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5120,"nodeType":"ExpressionStatement","src":"558:39:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetup","nameLocation":"484:15:17","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[],"src":"499:2:17"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[],"src":"511:0:17"},"scope":5132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5131,"nodeType":"FunctionDefinition","src":"610:85:17","nodes":[],"body":{"id":5130,"nodeType":"Block","src":"661:34:17","nodes":[],"statements":[{"expression":{"id":5128,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"678:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"functionReturnParameters":5127,"id":5129,"nodeType":"Return","src":"671:17:17"}]},"functionSelector":"7b103999","implemented":true,"kind":"function","modifiers":[],"name":"registry","nameLocation":"619:8:17","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[],"src":"627:2:17"},"returnParameters":{"id":5127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5131,"src":"651:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5125,"nodeType":"UserDefinedTypeName","pathNode":{"id":5124,"name":"Registry","nameLocations":["651:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"651:8:17"},"referencedDeclaration":2295,"src":"651:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"}],"src":"650:10:17"},"scope":5132,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5098,"name":"Test","nameLocations":["419:4:17"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"419:4:17"},"id":5099,"nodeType":"InheritanceSpecifier","src":"419:4:17"},{"baseName":{"id":5100,"name":"Accounts","nameLocations":["425:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"425:8:17"},"id":5101,"nodeType":"InheritanceSpecifier","src":"425:8:17"}],"canonicalName":"RegistrySetup","contractDependencies":[],"contractKind":"contract","documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"276:117:17","text":"@title RegistrySetup\n @notice This contract is used to setup an empty Registry contract for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetup","nameLocation":"402:13:17","scope":5297,"usedErrors":[]},{"id":5296,"nodeType":"ContractDefinition","src":"833:2031:17","nodes":[{"id":5137,"nodeType":"VariableDeclaration","src":"883:32:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId_","nameLocation":"900:15:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5139,"nodeType":"VariableDeclaration","src":"921:36:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileAnchor_","nameLocation":"938:19:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5138,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5141,"nodeType":"VariableDeclaration","src":"964:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Id_","nameLocation":"981:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5143,"nodeType":"VariableDeclaration","src":"999:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Anchor_","nameLocation":"1016:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5142,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5145,"nodeType":"VariableDeclaration","src":"1039:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Id_","nameLocation":"1056:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5147,"nodeType":"VariableDeclaration","src":"1074:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Anchor_","nameLocation":"1091:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5146,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5247,"nodeType":"FunctionDefinition","src":"1114:930:17","nodes":[],"body":{"id":5246,"nodeType":"Block","src":"1154:890:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5150,"name":"__RegistrySetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"1164:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"ExpressionStatement","src":"1164:17:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5156,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1201:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1192:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1195:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1192:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5159,"nodeType":"ExpressionStatement","src":"1192:22:17"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5160,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1224:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"506f6f6c2050726f66696c652031","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":5165,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1301:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1311:8:17","1324:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1301:48:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5169,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1351:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5171,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"1365:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5161,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1242:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1242:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:148:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1224:166:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"1224:166:17"},{"expression":{"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5176,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"1400:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5179,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1448:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5177,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1422:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1422:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1465:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1422:49:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1400:71:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5183,"nodeType":"ExpressionStatement","src":"1400:71:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5187,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1491:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1482:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1485:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1482:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5190,"nodeType":"ExpressionStatement","src":"1482:26:17"},{"expression":{"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5191,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1518:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652031","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1574:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},"value":"Profile 1"},{"arguments":[{"hexValue":"31","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6531","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""},"value":"Profile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""}],"id":5196,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1587:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1597:8:17","1610:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1587:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5200,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1633:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5202,"name":"profile1_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"1651:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5192,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1533:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1533:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1533:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1518:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5206,"nodeType":"ExpressionStatement","src":"1518:161:17"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5207,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"1689:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5210,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1734:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5208,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1708:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1708:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1708:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1689:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5214,"nodeType":"ExpressionStatement","src":"1689:65:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5218,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1774:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1765:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1765:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"1765:26:17"},{"expression":{"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"1801:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652032","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},"value":"Profile 2"},{"arguments":[{"hexValue":"31","id":5228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6532","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""},"value":"Profile2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""}],"id":5227,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1870:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1880:8:17","1893:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1870:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5231,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1916:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5233,"name":"profile2_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"1934:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5223,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1816:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1816:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1801:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5237,"nodeType":"ExpressionStatement","src":"1801:161:17"},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5238,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"1972:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5241,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2017:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5239,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1991:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2002:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1991:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2031:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1991:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1972:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"1972:65:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetupFull","nameLocation":"1123:19:17","parameters":{"id":5148,"nodeType":"ParameterList","parameters":[],"src":"1142:2:17"},"returnParameters":{"id":5149,"nodeType":"ParameterList","parameters":[],"src":"1154:0:17"},"scope":5296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5255,"nodeType":"FunctionDefinition","src":"2050:103:17","nodes":[],"body":{"id":5254,"nodeType":"Block","src":"2114:39:17","nodes":[],"statements":[{"expression":{"id":5252,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"2131:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5251,"id":5253,"nodeType":"Return","src":"2124:22:17"}]},"functionSelector":"fd325c60","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id","nameLocation":"2059:14:17","parameters":{"id":5248,"nodeType":"ParameterList","parameters":[],"src":"2073:2:17"},"returnParameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5255,"src":"2105:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2105:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2104:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5263,"nodeType":"FunctionDefinition","src":"2159:111:17","nodes":[],"body":{"id":5262,"nodeType":"Block","src":"2227:43:17","nodes":[],"statements":[{"expression":{"id":5260,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2244:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5259,"id":5261,"nodeType":"Return","src":"2237:26:17"}]},"functionSelector":"176effb3","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_anchor","nameLocation":"2168:18:17","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[],"src":"2186:2:17"},"returnParameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5263,"src":"2218:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5271,"nodeType":"FunctionDefinition","src":"2276:97:17","nodes":[],"body":{"id":5270,"nodeType":"Block","src":"2337:36:17","nodes":[],"statements":[{"expression":{"id":5268,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2354:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5267,"id":5269,"nodeType":"Return","src":"2347:19:17"}]},"functionSelector":"39f56f7f","implemented":true,"kind":"function","modifiers":[],"name":"profile1_id","nameLocation":"2285:11:17","parameters":{"id":5264,"nodeType":"ParameterList","parameters":[],"src":"2296:2:17"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5271,"src":"2328:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2328:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2327:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5279,"nodeType":"FunctionDefinition","src":"2461:105:17","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"2526:40:17","nodes":[],"statements":[{"expression":{"id":5276,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2543:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5275,"id":5277,"nodeType":"Return","src":"2536:23:17"}]},"functionSelector":"c5d7d73b","implemented":true,"kind":"function","modifiers":[],"name":"profile1_anchor","nameLocation":"2470:15:17","parameters":{"id":5272,"nodeType":"ParameterList","parameters":[],"src":"2485:2:17"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5279,"src":"2517:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2516:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5287,"nodeType":"FunctionDefinition","src":"2572:97:17","nodes":[],"body":{"id":5286,"nodeType":"Block","src":"2633:36:17","nodes":[],"statements":[{"expression":{"id":5284,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2650:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5283,"id":5285,"nodeType":"Return","src":"2643:19:17"}]},"functionSelector":"18540361","implemented":true,"kind":"function","modifiers":[],"name":"profile2_id","nameLocation":"2581:11:17","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"2592:2:17"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5287,"src":"2624:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"2757:105:17","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"2822:40:17","nodes":[],"statements":[{"expression":{"id":5292,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2839:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5291,"id":5293,"nodeType":"Return","src":"2832:23:17"}]},"functionSelector":"3554642a","implemented":true,"kind":"function","modifiers":[],"name":"profile2_anchor","nameLocation":"2766:15:17","parameters":{"id":5288,"nodeType":"ParameterList","parameters":[],"src":"2781:2:17"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"2813:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"2813:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2812:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5134,"name":"RegistrySetup","nameLocations":["863:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":5132,"src":"863:13:17"},"id":5135,"nodeType":"InheritanceSpecifier","src":"863:13:17"}],"canonicalName":"RegistrySetupFull","contractDependencies":[],"contractKind":"contract","documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"699:134:17","text":"@title RegistrySetupFull\n @notice This contract is used to setup a Registry contract with two identities for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5296,5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetupFull","nameLocation":"842:17:17","scope":5297,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":17} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b5061177b8061003d6000396000f3fe608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212202b8cd3d1abe5e7164277d6a0e7426e5a1338d8616d8e34f04ec577cab2c85bfe64736f6c63430008130033","sourceMap":"393:304:17:-:0;;;3126:44:23;;;3166:4;-1:-1:-1;;3126:44:23;;;;;;;;1016:26:33;;;;;;;;;;;393:304:17;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106102dd5760003560e01c80637b10399911610186578063aa3744bd116100e3578063d5bee9f511610097578063e20c9f7111610071578063e20c9f711461046e578063ef0d790f14610476578063fa7626d41461047e57600080fd5b8063d5bee9f514610456578063da4bf0871461045e578063dac4eb161461046657600080fd5b8063ba414fa6116100c8578063ba414fa61461042e578063d1e82b5814610446578063d1f2cd881461044e57600080fd5b8063aa3744bd1461041e578063b5508aa91461042657600080fd5b80638c7408c41161013a5780638e3c24931161011f5780638e3c249314610406578063916a17c61461040e578063a407c67a1461041657600080fd5b80638c7408c41461031d5780638e0d1a50146103fe57600080fd5b80637cbe79ed1161016b5780637cbe79ed146103e1578063829e423f1461031d57806385226c81146103e957600080fd5b80637b103999146103c35780637b2edf32146103d957600080fd5b80633f7286f41161023f57806366d9a9a0116101f357806374d9284e116101cd57806374d9284e1461031d578063759c9a86146103b357806379e62d0d146103bb57600080fd5b806366d9a9a01461038e5780636a38dd0a146103a357806370a32944146103ab57600080fd5b8063587c124311610224578063587c1243146103765780635aff59991461037e57806366d003ac1461038657600080fd5b80633f7286f4146103665780634bf4ba211461036e57600080fd5b80631b96dce6116102965780631ed7831c1161027b5780631ed7831c146103345780632ade3880146103495780633e5e3c231461035e57600080fd5b80631b96dce6146103245780631e7bcb2e1461032c57600080fd5b80630688b135116102c75780630688b1351461030f5780630f166ad414610317578063174eedde1461031d57600080fd5b8062b1fad7146102e2578063030e400614610307575b600080fd5b6102ea61048b565b6040516001600160a01b0390911681526020015b60405180910390f35b6102ea6104d0565b6102ea610510565b306102ea565b60006102ea565b6102ea610550565b6102ea610590565b61033c6105d0565b6040516102fe91906113dc565b610351610632565b6040516102fe9190611479565b61033c610774565b61033c6107d4565b61033c610834565b6102ea610857565b6102ea610897565b6102ea6108d7565b610396610917565b6040516102fe9190611539565b6102ea610a12565b61033c610a52565b6102ea610aea565b61033c610b2a565b601e5461010090046001600160a01b03166102ea565b6102ea610b92565b6102ea610bd2565b6103f1610c12565b6040516102fe9190611604565b6102ea610ce2565b6102ea610d22565b610396610d62565b61033c610e5d565b6102ea610ec5565b6103f1610f05565b610436610fd5565b60405190151581526020016102fe565b6102ea6110a9565b6102ea6110e9565b6102ea611129565b6102ea611169565b6102ea6111a9565b61033c6111e9565b6102ea611249565b601e546104369060ff1681565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723100000000000000000000000000000000000000815250611285565b905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d62657200000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f726563697069656e743200000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65325f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723100000000000000000000000000000000815250611285565b6060601680548060200260200160405190810160405280929190818152602001828054801561062857602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161060a575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561076b57600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107545783829060005260206000200180546106c790611666565b80601f01602080910402602001604051908101604052809291908181526020018280546106f390611666565b80156107405780601f1061071557610100808354040283529160200191610740565b820191906000526020600020905b81548152906001019060200180831161072357829003601f168201915b5050505050815260200190600101906106a8565b505050508152505081526020019060010190610656565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723100000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f726563697069656e744164647265737300000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600981526020017f726563697069656e740000000000000000000000000000000000000000000000815250611285565b6060601b805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b031683526001810180548351818702810187019094528084529394919385830193928301828280156109fa57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116109a75790505b5050505050815250508152602001906001019061093b565b60006104cb6040518060400160405280600d81526020017f706f6f6c5f6d616e616765723200000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610a7f610590565b81600081518110610a9257610a926116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610b92565b81600181518110610acd57610acd6116a0565b6001600160a01b0390921660209283029190910190910152919050565b60006104cb6040518060400160405280600c81526020017f6e6f5f726563697069656e740000000000000000000000000000000000000000815250611285565b60408051600280825260608083018452926000929190602083019080368337019050509050610b5761048b565b81600081518110610b6a57610b6a6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610a12565b60006104cb6040518060400160405280601081526020017f70726f66696c65315f6d656d6265723200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600a81526020017f616c6c6f5f6f776e657200000000000000000000000000000000000000000000815250611285565b6060601a805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610c5590611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8190611666565b8015610cce5780601f10610ca357610100808354040283529160200191610cce565b820191906000526020600020905b815481529060010190602001808311610cb157829003601f168201915b505050505081526020019060010190610c36565b60006104cb6040518060400160405280600a81526020017f706f6f6c5f61646d696e00000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280601081526020017f70726f66696c65325f6d656d6265723200000000000000000000000000000000815250611285565b6060601c805480602002602001604051908101604052809291908181526020016000905b8282101561076b5760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610e4557602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610df25790505b50505050508152505081526020019060010190610d86565b60408051600280825260608083018452926000929190602083019080368337019050509050610e8a610857565b81600081518110610e9d57610e9d6116a0565b60200260200101906001600160a01b031690816001600160a01b031681525050610aba610d22565b60006104cb6040518060400160405280600a81526020017f726563697069656e743100000000000000000000000000000000000000000000815250611285565b60606019805480602002602001604051908101604052809291908181526020016000905b8282101561076b578382906000526020600020018054610f4890611666565b80601f0160208091040260200160405190810160405280929190818152602001828054610f7490611666565b8015610fc15780601f10610f9657610100808354040283529160200191610fc1565b820191906000526020600020905b815481529060010190602001808311610fa457829003601f168201915b505050505081526020019060010190610f29565b60085460009060ff1615610fed575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa15801561107e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a291906116b6565b1415905090565b60006104cb6040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e6167657200000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f70726f66696c65315f6f776e6572000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600b81526020017f72616e646f6d2063686164000000000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600d81526020017f616c6c6f5f747265617375727900000000000000000000000000000000000000815250611285565b60006104cb6040518060400160405280600e81526020017f72656769737472795f6f776e6572000000000000000000000000000000000000815250611285565b60606015805480602002602001604051908101604052809291908181526020018280548015610628576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161060a575050505050905090565b60006104cb6040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b600061129082611297565b5092915050565b600080826040516020016112ab91906116cf565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa15801561132c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061135091906116eb565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c718906113a5908590879060040161171b565b600060405180830381600087803b1580156113bf57600080fd5b505af11580156113d3573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b8181101561141d5783516001600160a01b0316835292840192918401916001016113f8565b50909695505050505050565b60005b8381101561144457818101518382015260200161142c565b50506000910152565b60008151808452611465816020860160208601611429565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b8581101561152957603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b8181101561151357605f1989850301835261150184865161144d565b948e01949350918d01916001016114e5565b505050978a0197945050918801916001016114a0565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b848110156115f557898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156115e05783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b019061159e565b50978a01979550505091870191600101611561565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561165957603f1988860301845261164785835161144d565b9450928501929085019060010161162b565b5092979650505050505050565b600181811c9082168061167a57607f821691505b60208210810361169a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156116c857600080fd5b5051919050565b600082516116e1818460208701611429565b9190910192915050565b6000602082840312156116fd57600080fd5b81516001600160a01b038116811461171457600080fd5b9392505050565b6001600160a01b038316815260406020820152600061173d604083018461144d565b94935050505056fea26469706673582212202b8cd3d1abe5e7164277d6a0e7426e5a1338d8616d8e34f04ec577cab2c85bfe64736f6c63430008130033","sourceMap":"393:304:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:145;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;3126:109;;;:::i;2554:113::-;;;:::i;2452:134:26:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;3221:133::-;;;:::i;2922:141::-;;;:::i;1331:118:15:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:26:-;;;:::i;:::-;;;;;;;:::i;1876:107:15:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:17:-;678:10;;;;;-1:-1:-1;;;;;678:10:17;610:85;;2673:113:15;;;:::i;439:101::-;;;:::i;2592:140:26:-;;;:::i;:::-;;;;;;;:::i;1537:101:15:-;;;:::i;3485:113::-;;;:::i;3069:146:26:-;;;:::i;3604:241:15:-;;;:::i;3938:101::-;;;:::i;2157:141:26:-;;;:::i;1243:204:22:-;;;:::i;:::-;;;6098:14:145;;6091:22;6073:41;;6061:2;6046:18;1243:204:22;5933:187:145;1644:113:15;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:26:-;;;:::i;3241:119:15:-;;;:::i;1016:26:33:-;;;;;;;;;1763:107:15;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:26:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:26;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:26;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:26;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:26:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:15;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:26:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:15;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:26:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:15;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:26:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:22;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:22;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7366:74:145;;;1398:17:22;7456:18:145;;;7449:34;1428:1:22;;1377:7;;7339:18:145;;1377:39:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:15:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:26:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:26;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;8123:25:145;;;20293:33:24;-1:-1:-1;20344:7:24;;;;8096:18:145;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;245:681:145:-;416:2;468:21;;;538:13;;441:18;;;560:22;;;387:4;;416:2;639:15;;;;613:2;598:18;;;387:4;682:218;696:6;693:1;690:13;682:218;;;761:13;;-1:-1:-1;;;;;757:62:145;745:75;;875:15;;;;840:12;;;;718:1;711:9;682:218;;;-1:-1:-1;917:3:145;;245:681;-1:-1:-1;;;;;;245:681:145:o;931:250::-;1016:1;1026:113;1040:6;1037:1;1034:13;1026:113;;;1116:11;;;1110:18;1097:11;;;1090:39;1062:2;1055:10;1026:113;;;-1:-1:-1;;1173:1:145;1155:16;;1148:27;931:250::o;1186:271::-;1228:3;1266:5;1260:12;1293:6;1288:3;1281:19;1309:76;1378:6;1371:4;1366:3;1362:14;1355:4;1348:5;1344:16;1309:76;:::i;:::-;1439:2;1418:15;-1:-1:-1;;1414:29:145;1405:39;;;;1446:4;1401:50;;1186:271;-1:-1:-1;;1186:271:145:o;1462:1767::-;1697:2;1749:21;;;1819:13;;1722:18;;;1841:22;;;1668:4;;1697:2;1882;;1900:18;;;;1937:1;1980:15;;;1965:31;;1961:40;;2024:15;;;1668:4;;2088:1112;2104:6;2099:3;2096:15;2088:1112;;;-1:-1:-1;;2173:22:145;;;2169:36;2157:49;;2229:13;;2316:9;;-1:-1:-1;;;;;2312:58:145;2297:74;;2410:11;;2404:18;2442:15;;;2435:27;;;2523:19;;2269:15;;;2555:24;;;2736:21;;;;2602:2;2684:17;;;2672:30;;2668:39;;;2626:15;;;;2781:1;2795:296;2811:8;2806:3;2803:17;2795:296;;;2917:2;2913:7;2904:6;2896;2892:19;2888:33;2881:5;2874:48;2949:42;2984:6;2973:8;2967:15;2949:42;:::i;:::-;3020:17;;;;2939:52;-1:-1:-1;3063:14:145;;;;2839:1;2830:11;2795:296;;;-1:-1:-1;;;3178:12:145;;;;3114:6;-1:-1:-1;;3143:15:145;;;;2130:1;2121:11;2088:1112;;;-1:-1:-1;3217:6:145;;1462:1767;-1:-1:-1;;;;;;;;;;1462:1767:145:o;3234:1638::-;3438:4;3467:2;3507;3496:9;3492:18;3537:2;3526:9;3519:21;3560:6;3595;3589:13;3626:6;3618;3611:22;3652:2;3642:12;;3685:2;3674:9;3670:18;3663:25;;3747:2;3737:6;3734:1;3730:14;3719:9;3715:30;3711:39;3785:2;3777:6;3773:15;3806:1;3827;3837:1006;3853:6;3848:3;3845:15;3837:1006;;;3922:22;;;-1:-1:-1;;3918:36:145;3906:49;;3978:13;;4065:9;;-1:-1:-1;;;;;4061:58:145;4046:74;;4159:11;;4153:18;4191:15;;;4184:27;;;4272:19;;4018:15;;;4304:24;;;4394:21;;;;4439:1;;4362:2;4350:15;;;4453:282;4469:8;4464:3;4461:17;4453:282;;;4550:15;;4567:66;4546:88;4532:103;;4704:17;;;;4497:1;4488:11;;;;;4661:14;;;;4453:282;;;-1:-1:-1;4821:12:145;;;;4758:5;-1:-1:-1;;;4786:15:145;;;;3879:1;3870:11;3837:1006;;;-1:-1:-1;4860:6:145;;3234:1638;-1:-1:-1;;;;;;;;;3234:1638:145:o;5125:803::-;5287:4;5316:2;5356;5345:9;5341:18;5386:2;5375:9;5368:21;5409:6;5444;5438:13;5475:6;5467;5460:22;5513:2;5502:9;5498:18;5491:25;;5575:2;5565:6;5562:1;5558:14;5547:9;5543:30;5539:39;5525:53;;5613:2;5605:6;5601:15;5634:1;5644:255;5658:6;5655:1;5652:13;5644:255;;;5751:2;5747:7;5735:9;5727:6;5723:22;5719:36;5714:3;5707:49;5779:40;5812:6;5803;5797:13;5779:40;:::i;:::-;5769:50;-1:-1:-1;5877:12:145;;;;5842:15;;;;5680:1;5673:9;5644:255;;;-1:-1:-1;5916:6:145;;5125:803;-1:-1:-1;;;;;;;5125:803:145:o;6372:437::-;6451:1;6447:12;;;;6494;;;6515:61;;6569:4;6561:6;6557:17;6547:27;;6515:61;6622:2;6614:6;6611:14;6591:18;6588:38;6585:218;;-1:-1:-1;;;6656:1:145;6649:88;6760:4;6757:1;6750:15;6788:4;6785:1;6778:15;6585:218;;6372:437;;;:::o;7003:184::-;-1:-1:-1;;;7052:1:145;7045:88;7152:4;7149:1;7142:15;7176:4;7173:1;7166:15;7494:184;7564:6;7617:2;7605:9;7596:7;7592:23;7588:32;7585:52;;;7633:1;7630;7623:12;7585:52;-1:-1:-1;7656:16:145;;7494:184;-1:-1:-1;7494:184:145:o;7683:289::-;7814:3;7852:6;7846:13;7868:66;7927:6;7922:3;7915:4;7907:6;7903:17;7868:66;:::i;:::-;7950:16;;;;;7683:289;-1:-1:-1;;7683:289:145:o;8159:313::-;8229:6;8282:2;8270:9;8261:7;8257:23;8253:32;8250:52;;;8298:1;8295;8288:12;8250:52;8330:9;8324:16;-1:-1:-1;;;;;8373:5:145;8369:54;8362:5;8359:65;8349:93;;8438:1;8435;8428:12;8349:93;8461:5;8159:313;-1:-1:-1;;;8159:313:145:o;8477:340::-;-1:-1:-1;;;;;8658:6:145;8654:55;8643:9;8636:74;8746:2;8741;8730:9;8726:18;8719:30;8617:4;8766:45;8807:2;8796:9;8792:18;8784:6;8766:45;:::i;:::-;8758:53;8477:340;-1:-1:-1;;;;8477:340:145:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetup\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup an empty Registry contract for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetup\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetup"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5830,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13235_storage"},{"astId":6026,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8527,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8548,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)"},{"astId":8552,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8556,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8559,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9317,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11354,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13235_storage"},{"astId":12222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12225,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12231,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12237,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12241,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12245,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12249,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage"},{"astId":17834,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":5104,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_registry_","offset":1,"slot":"30","type":"t_contract(Registry)2295"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12219_storage"},"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12213_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(Registry)2295":{"encoding":"inplace","label":"contract Registry","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8543_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8543_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8536,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8538,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8540,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8542,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12219_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12215,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12218,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12213_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12212,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetup","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol","id":5297,"exportedSymbols":{"Accounts":[5026],"Metadata":[3098],"Registry":[2295],"RegistrySetup":[5132],"RegistrySetupFull":[5296],"StdAssertions":[8503],"StdChains":[9285],"StdCheats":[12138],"StdInvariant":[12463],"StdStorage":[13235],"StdStyle":[16405],"StdUtils":[17783],"Test":[17835],"TestBase":[5834],"Vm":[21485],"console":[29549],"console2":[37674],"safeconsole":[52399],"stdError":[12204],"stdJson":[13055],"stdMath":[13197],"stdStorage":[15194],"stdToml":[16997]},"nodeType":"SourceUnit","src":"42:2823:17","nodes":[{"id":5089,"nodeType":"PragmaDirective","src":"42:24:17","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5090,"nodeType":"ImportDirective","src":"68:28:17","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":17836,"symbolAliases":[],"unitAlias":""},{"id":5092,"nodeType":"ImportDirective","src":"98:62:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","file":"../../../contracts/core/Registry.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":2296,"symbolAliases":[{"foreign":{"id":5091,"name":"Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"106:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"161:72:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../../../contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":5093,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"169:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5096,"nodeType":"ImportDirective","src":"234:40:17","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"./Accounts.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":5095,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"242:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ContractDefinition","src":"393:304:17","nodes":[{"id":5104,"nodeType":"VariableDeclaration","src":"440:28:17","nodes":[],"constant":false,"mutability":"mutable","name":"_registry_","nameLocation":"458:10:17","scope":5132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5103,"nodeType":"UserDefinedTypeName","pathNode":{"id":5102,"name":"Registry","nameLocations":["440:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"440:8:17"},"referencedDeclaration":2295,"src":"440:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"},{"id":5122,"nodeType":"FunctionDefinition","src":"475:129:17","nodes":[],"body":{"id":5121,"nodeType":"Block","src":"511:93:17","nodes":[],"statements":[{"expression":{"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5107,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"521:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"534:12:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Registry_$2295_$","typeString":"function () returns (contract Registry)"},"typeName":{"id":5109,"nodeType":"UserDefinedTypeName","pathNode":{"id":5108,"name":"Registry","nameLocations":["538:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"538:8:17"},"referencedDeclaration":2295,"src":"538:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"src":"521:27:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5113,"nodeType":"ExpressionStatement","src":"521:27:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5117,"name":"registry_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"580:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5114,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"558:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1578,"src":"558:21:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5120,"nodeType":"ExpressionStatement","src":"558:39:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetup","nameLocation":"484:15:17","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[],"src":"499:2:17"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[],"src":"511:0:17"},"scope":5132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5131,"nodeType":"FunctionDefinition","src":"610:85:17","nodes":[],"body":{"id":5130,"nodeType":"Block","src":"661:34:17","nodes":[],"statements":[{"expression":{"id":5128,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"678:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"functionReturnParameters":5127,"id":5129,"nodeType":"Return","src":"671:17:17"}]},"functionSelector":"7b103999","implemented":true,"kind":"function","modifiers":[],"name":"registry","nameLocation":"619:8:17","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[],"src":"627:2:17"},"returnParameters":{"id":5127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5131,"src":"651:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5125,"nodeType":"UserDefinedTypeName","pathNode":{"id":5124,"name":"Registry","nameLocations":["651:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"651:8:17"},"referencedDeclaration":2295,"src":"651:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"}],"src":"650:10:17"},"scope":5132,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5098,"name":"Test","nameLocations":["419:4:17"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"419:4:17"},"id":5099,"nodeType":"InheritanceSpecifier","src":"419:4:17"},{"baseName":{"id":5100,"name":"Accounts","nameLocations":["425:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"425:8:17"},"id":5101,"nodeType":"InheritanceSpecifier","src":"425:8:17"}],"canonicalName":"RegistrySetup","contractDependencies":[],"contractKind":"contract","documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"276:117:17","text":"@title RegistrySetup\n @notice This contract is used to setup an empty Registry contract for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetup","nameLocation":"402:13:17","scope":5297,"usedErrors":[]},{"id":5296,"nodeType":"ContractDefinition","src":"833:2031:17","nodes":[{"id":5137,"nodeType":"VariableDeclaration","src":"883:32:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId_","nameLocation":"900:15:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5139,"nodeType":"VariableDeclaration","src":"921:36:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileAnchor_","nameLocation":"938:19:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5138,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5141,"nodeType":"VariableDeclaration","src":"964:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Id_","nameLocation":"981:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5143,"nodeType":"VariableDeclaration","src":"999:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Anchor_","nameLocation":"1016:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5142,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5145,"nodeType":"VariableDeclaration","src":"1039:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Id_","nameLocation":"1056:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5147,"nodeType":"VariableDeclaration","src":"1074:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Anchor_","nameLocation":"1091:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5146,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5247,"nodeType":"FunctionDefinition","src":"1114:930:17","nodes":[],"body":{"id":5246,"nodeType":"Block","src":"1154:890:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5150,"name":"__RegistrySetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"1164:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"ExpressionStatement","src":"1164:17:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5156,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1201:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1192:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1195:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1192:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5159,"nodeType":"ExpressionStatement","src":"1192:22:17"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5160,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1224:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"506f6f6c2050726f66696c652031","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":5165,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1301:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1311:8:17","1324:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1301:48:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5169,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1351:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5171,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"1365:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5161,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1242:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1242:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:148:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1224:166:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"1224:166:17"},{"expression":{"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5176,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"1400:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5179,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1448:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5177,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1422:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1422:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1465:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1422:49:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1400:71:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5183,"nodeType":"ExpressionStatement","src":"1400:71:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5187,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1491:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1482:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1485:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1482:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5190,"nodeType":"ExpressionStatement","src":"1482:26:17"},{"expression":{"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5191,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1518:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652031","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1574:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},"value":"Profile 1"},{"arguments":[{"hexValue":"31","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6531","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""},"value":"Profile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""}],"id":5196,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1587:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1597:8:17","1610:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1587:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5200,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1633:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5202,"name":"profile1_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"1651:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5192,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1533:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1533:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1533:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1518:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5206,"nodeType":"ExpressionStatement","src":"1518:161:17"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5207,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"1689:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5210,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1734:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5208,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1708:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1708:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1708:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1689:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5214,"nodeType":"ExpressionStatement","src":"1689:65:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5218,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1774:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1765:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1765:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"1765:26:17"},{"expression":{"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"1801:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652032","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},"value":"Profile 2"},{"arguments":[{"hexValue":"31","id":5228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6532","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""},"value":"Profile2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""}],"id":5227,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1870:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1880:8:17","1893:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1870:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5231,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1916:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5233,"name":"profile2_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"1934:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5223,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1816:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1816:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1801:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5237,"nodeType":"ExpressionStatement","src":"1801:161:17"},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5238,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"1972:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5241,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2017:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5239,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1991:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2002:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1991:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2031:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1991:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1972:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"1972:65:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetupFull","nameLocation":"1123:19:17","parameters":{"id":5148,"nodeType":"ParameterList","parameters":[],"src":"1142:2:17"},"returnParameters":{"id":5149,"nodeType":"ParameterList","parameters":[],"src":"1154:0:17"},"scope":5296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5255,"nodeType":"FunctionDefinition","src":"2050:103:17","nodes":[],"body":{"id":5254,"nodeType":"Block","src":"2114:39:17","nodes":[],"statements":[{"expression":{"id":5252,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"2131:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5251,"id":5253,"nodeType":"Return","src":"2124:22:17"}]},"functionSelector":"fd325c60","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id","nameLocation":"2059:14:17","parameters":{"id":5248,"nodeType":"ParameterList","parameters":[],"src":"2073:2:17"},"returnParameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5255,"src":"2105:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2105:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2104:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5263,"nodeType":"FunctionDefinition","src":"2159:111:17","nodes":[],"body":{"id":5262,"nodeType":"Block","src":"2227:43:17","nodes":[],"statements":[{"expression":{"id":5260,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2244:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5259,"id":5261,"nodeType":"Return","src":"2237:26:17"}]},"functionSelector":"176effb3","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_anchor","nameLocation":"2168:18:17","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[],"src":"2186:2:17"},"returnParameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5263,"src":"2218:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5271,"nodeType":"FunctionDefinition","src":"2276:97:17","nodes":[],"body":{"id":5270,"nodeType":"Block","src":"2337:36:17","nodes":[],"statements":[{"expression":{"id":5268,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2354:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5267,"id":5269,"nodeType":"Return","src":"2347:19:17"}]},"functionSelector":"39f56f7f","implemented":true,"kind":"function","modifiers":[],"name":"profile1_id","nameLocation":"2285:11:17","parameters":{"id":5264,"nodeType":"ParameterList","parameters":[],"src":"2296:2:17"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5271,"src":"2328:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2328:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2327:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5279,"nodeType":"FunctionDefinition","src":"2461:105:17","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"2526:40:17","nodes":[],"statements":[{"expression":{"id":5276,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2543:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5275,"id":5277,"nodeType":"Return","src":"2536:23:17"}]},"functionSelector":"c5d7d73b","implemented":true,"kind":"function","modifiers":[],"name":"profile1_anchor","nameLocation":"2470:15:17","parameters":{"id":5272,"nodeType":"ParameterList","parameters":[],"src":"2485:2:17"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5279,"src":"2517:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2516:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5287,"nodeType":"FunctionDefinition","src":"2572:97:17","nodes":[],"body":{"id":5286,"nodeType":"Block","src":"2633:36:17","nodes":[],"statements":[{"expression":{"id":5284,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2650:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5283,"id":5285,"nodeType":"Return","src":"2643:19:17"}]},"functionSelector":"18540361","implemented":true,"kind":"function","modifiers":[],"name":"profile2_id","nameLocation":"2581:11:17","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"2592:2:17"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5287,"src":"2624:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"2757:105:17","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"2822:40:17","nodes":[],"statements":[{"expression":{"id":5292,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2839:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5291,"id":5293,"nodeType":"Return","src":"2832:23:17"}]},"functionSelector":"3554642a","implemented":true,"kind":"function","modifiers":[],"name":"profile2_anchor","nameLocation":"2766:15:17","parameters":{"id":5288,"nodeType":"ParameterList","parameters":[],"src":"2781:2:17"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"2813:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"2813:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2812:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5134,"name":"RegistrySetup","nameLocations":["863:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":5132,"src":"863:13:17"},"id":5135,"nodeType":"InheritanceSpecifier","src":"863:13:17"}],"canonicalName":"RegistrySetupFull","contractDependencies":[],"contractKind":"contract","documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"699:134:17","text":"@title RegistrySetupFull\n @notice This contract is used to setup a Registry contract with two identities for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5296,5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetupFull","nameLocation":"842:17:17","scope":5297,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":17} \ No newline at end of file diff --git a/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json b/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json index a8d47e1aa..523ccc6a9 100644 --- a/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json +++ b/pkg/contracts/out/RegistrySetup.sol/RegistrySetupFull.json @@ -1 +1 @@ -{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolProfile_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile1_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile2_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b506118128061003d6000396000f3fe608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220fd5e37107c9def1683e5026978f0bbf09feec6f0e6adcb3f3c224149b73ed48b64736f6c63430008130033","sourceMap":"833:2031:17:-:0;;;3126:44:23;;;3166:4;-1:-1:-1;;3126:44:23;;;;;;;;1016:26:33;;;;;;;;;;;833:2031:17;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220fd5e37107c9def1683e5026978f0bbf09feec6f0e6adcb3f3c224149b73ed48b64736f6c63430008130033","sourceMap":"833:2031:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:143;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;2159:111:17;2244:19;;-1:-1:-1;;;;;2244:19:17;2159:111;;2572:97;2650:12;;2572:97;;;391:25:143;;;379:2;364:18;2572:97:17;245:177:143;3126:109:15;;;:::i;2554:113::-;;;:::i;2452:134:26:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;2757:105:17:-;2839:16;;-1:-1:-1;;;;;2839:16:17;2757:105;;2276:97;2354:12;;2276:97;;3221:133:26;;;:::i;2922:141::-;;;:::i;1331:118:15:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:26:-;;;:::i;:::-;;;;;;;:::i;1876:107:15:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:17:-;678:10;;;;;-1:-1:-1;;;;;678:10:17;610:85;;2673:113:15;;;:::i;439:101::-;;;:::i;2592:140:26:-;;;:::i;:::-;;;;;;;:::i;1537:101:15:-;;;:::i;3485:113::-;;;:::i;3069:146:26:-;;;:::i;3604:241:15:-;;;:::i;3938:101::-;;;:::i;2157:141:26:-;;;:::i;1243:204:22:-;;;:::i;:::-;;;6280:14:143;;6273:22;6255:41;;6243:2;6228:18;1243:204:22;6115:187:143;2461:105:17;2543:16;;-1:-1:-1;;;;;2543:16:17;2461:105;;1644:113:15;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:26:-;;;:::i;3241:119:15:-;;;:::i;1016:26:33:-;;;;;;;;;2050:103:17;2131:15;;2050:103;;1763:107:15;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:26:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:26;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:26;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:26;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:26:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:15;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:26:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:15;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:26:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:15;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:26:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:22;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:22;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7548:74:143;;;1398:17:22;7638:18:143;;;7631:34;1428:1:22;;1377:7;;7521:18:143;;1377:39:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:15:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:26:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:26;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:143;;;20293:33:24;-1:-1:-1;20344:7:24;;;;364:18:143;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;427:681:143:-;598:2;650:21;;;720:13;;623:18;;;742:22;;;569:4;;598:2;821:15;;;;795:2;780:18;;;569:4;864:218;878:6;875:1;872:13;864:218;;;943:13;;-1:-1:-1;;;;;939:62:143;927:75;;1057:15;;;;1022:12;;;;900:1;893:9;864:218;;;-1:-1:-1;1099:3:143;;427:681;-1:-1:-1;;;;;;427:681:143:o;1113:250::-;1198:1;1208:113;1222:6;1219:1;1216:13;1208:113;;;1298:11;;;1292:18;1279:11;;;1272:39;1244:2;1237:10;1208:113;;;-1:-1:-1;;1355:1:143;1337:16;;1330:27;1113:250::o;1368:271::-;1410:3;1448:5;1442:12;1475:6;1470:3;1463:19;1491:76;1560:6;1553:4;1548:3;1544:14;1537:4;1530:5;1526:16;1491:76;:::i;:::-;1621:2;1600:15;-1:-1:-1;;1596:29:143;1587:39;;;;1628:4;1583:50;;1368:271;-1:-1:-1;;1368:271:143:o;1644:1767::-;1879:2;1931:21;;;2001:13;;1904:18;;;2023:22;;;1850:4;;1879:2;2064;;2082:18;;;;2119:1;2162:15;;;2147:31;;2143:40;;2206:15;;;1850:4;;2270:1112;2286:6;2281:3;2278:15;2270:1112;;;-1:-1:-1;;2355:22:143;;;2351:36;2339:49;;2411:13;;2498:9;;-1:-1:-1;;;;;2494:58:143;2479:74;;2592:11;;2586:18;2624:15;;;2617:27;;;2705:19;;2451:15;;;2737:24;;;2918:21;;;;2784:2;2866:17;;;2854:30;;2850:39;;;2808:15;;;;2963:1;2977:296;2993:8;2988:3;2985:17;2977:296;;;3099:2;3095:7;3086:6;3078;3074:19;3070:33;3063:5;3056:48;3131:42;3166:6;3155:8;3149:15;3131:42;:::i;:::-;3202:17;;;;3121:52;-1:-1:-1;3245:14:143;;;;3021:1;3012:11;2977:296;;;-1:-1:-1;;;3360:12:143;;;;3296:6;-1:-1:-1;;3325:15:143;;;;2312:1;2303:11;2270:1112;;;-1:-1:-1;3399:6:143;;1644:1767;-1:-1:-1;;;;;;;;;;1644:1767:143:o;3416:1638::-;3620:4;3649:2;3689;3678:9;3674:18;3719:2;3708:9;3701:21;3742:6;3777;3771:13;3808:6;3800;3793:22;3834:2;3824:12;;3867:2;3856:9;3852:18;3845:25;;3929:2;3919:6;3916:1;3912:14;3901:9;3897:30;3893:39;3967:2;3959:6;3955:15;3988:1;4009;4019:1006;4035:6;4030:3;4027:15;4019:1006;;;4104:22;;;-1:-1:-1;;4100:36:143;4088:49;;4160:13;;4247:9;;-1:-1:-1;;;;;4243:58:143;4228:74;;4341:11;;4335:18;4373:15;;;4366:27;;;4454:19;;4200:15;;;4486:24;;;4576:21;;;;4621:1;;4544:2;4532:15;;;4635:282;4651:8;4646:3;4643:17;4635:282;;;4732:15;;4749:66;4728:88;4714:103;;4886:17;;;;4679:1;4670:11;;;;;4843:14;;;;4635:282;;;-1:-1:-1;5003:12:143;;;;4940:5;-1:-1:-1;;;4968:15:143;;;;4061:1;4052:11;4019:1006;;;-1:-1:-1;5042:6:143;;3416:1638;-1:-1:-1;;;;;;;;;3416:1638:143:o;5307:803::-;5469:4;5498:2;5538;5527:9;5523:18;5568:2;5557:9;5550:21;5591:6;5626;5620:13;5657:6;5649;5642:22;5695:2;5684:9;5680:18;5673:25;;5757:2;5747:6;5744:1;5740:14;5729:9;5725:30;5721:39;5707:53;;5795:2;5787:6;5783:15;5816:1;5826:255;5840:6;5837:1;5834:13;5826:255;;;5933:2;5929:7;5917:9;5909:6;5905:22;5901:36;5896:3;5889:49;5961:40;5994:6;5985;5979:13;5961:40;:::i;:::-;5951:50;-1:-1:-1;6059:12:143;;;;6024:15;;;;5862:1;5855:9;5826:255;;;-1:-1:-1;6098:6:143;;5307:803;-1:-1:-1;;;;;;;5307:803:143:o;6554:437::-;6633:1;6629:12;;;;6676;;;6697:61;;6751:4;6743:6;6739:17;6729:27;;6697:61;6804:2;6796:6;6793:14;6773:18;6770:38;6767:218;;-1:-1:-1;;;6838:1:143;6831:88;6942:4;6939:1;6932:15;6970:4;6967:1;6960:15;6767:218;;6554:437;;;:::o;7185:184::-;-1:-1:-1;;;7234:1:143;7227:88;7334:4;7331:1;7324:15;7358:4;7355:1;7348:15;7676:184;7746:6;7799:2;7787:9;7778:7;7774:23;7770:32;7767:52;;;7815:1;7812;7805:12;7767:52;-1:-1:-1;7838:16:143;;7676:184;-1:-1:-1;7676:184:143:o;7865:289::-;7996:3;8034:6;8028:13;8050:66;8109:6;8104:3;8097:4;8089:6;8085:17;8050:66;:::i;:::-;8132:16;;;;;7865:289;-1:-1:-1;;7865:289:143:o;8341:313::-;8411:6;8464:2;8452:9;8443:7;8439:23;8435:32;8432:52;;;8480:1;8477;8470:12;8432:52;8512:9;8506:16;-1:-1:-1;;;;;8555:5:143;8551:54;8544:5;8541:65;8531:93;;8620:1;8617;8610:12;8531:93;8643:5;8341:313;-1:-1:-1;;;8341:313:143:o;8659:340::-;-1:-1:-1;;;;;8840:6:143;8836:55;8825:9;8818:74;8928:2;8923;8912:9;8908:18;8901:30;8799:4;8948:45;8989:2;8978:9;8974:18;8966:6;8948:45;:::i;:::-;8940:53;8659:340;-1:-1:-1;;;;8659:340:143:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_anchor()":"176effb3","poolProfile_id()":"fd325c60","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_anchor()":"c5d7d73b","profile1_id()":"39f56f7f","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_anchor()":"3554642a","profile2_id()":"18540361","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetupFull\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup a Registry contract with two identities for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetupFull\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetupFull"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5830,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13235_storage"},{"astId":6026,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8527,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8548,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)"},{"astId":8552,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8556,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8559,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9317,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11354,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13235_storage"},{"astId":12222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12225,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12231,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12237,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12241,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12245,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12249,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage"},{"astId":17834,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":5104,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_registry_","offset":1,"slot":"30","type":"t_contract(Registry)2295"},{"astId":5137,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_poolProfileId_","offset":0,"slot":"31","type":"t_bytes32"},{"astId":5139,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_poolProfileAnchor_","offset":0,"slot":"32","type":"t_address"},{"astId":5141,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile1Id_","offset":0,"slot":"33","type":"t_bytes32"},{"astId":5143,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile1Anchor_","offset":0,"slot":"34","type":"t_address"},{"astId":5145,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile2Id_","offset":0,"slot":"35","type":"t_bytes32"},{"astId":5147,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile2Anchor_","offset":0,"slot":"36","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12219_storage"},"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12213_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(Registry)2295":{"encoding":"inplace","label":"contract Registry","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8543_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8543_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8536,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8538,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8540,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8542,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12219_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12215,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12218,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12213_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12212,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol","id":5297,"exportedSymbols":{"Accounts":[5026],"Metadata":[3098],"Registry":[2295],"RegistrySetup":[5132],"RegistrySetupFull":[5296],"StdAssertions":[8503],"StdChains":[9285],"StdCheats":[12138],"StdInvariant":[12463],"StdStorage":[13235],"StdStyle":[16405],"StdUtils":[17783],"Test":[17835],"TestBase":[5834],"Vm":[21485],"console":[29549],"console2":[37674],"safeconsole":[52399],"stdError":[12204],"stdJson":[13055],"stdMath":[13197],"stdStorage":[15194],"stdToml":[16997]},"nodeType":"SourceUnit","src":"42:2823:17","nodes":[{"id":5089,"nodeType":"PragmaDirective","src":"42:24:17","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5090,"nodeType":"ImportDirective","src":"68:28:17","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":17836,"symbolAliases":[],"unitAlias":""},{"id":5092,"nodeType":"ImportDirective","src":"98:62:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","file":"../../../contracts/core/Registry.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":2296,"symbolAliases":[{"foreign":{"id":5091,"name":"Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"106:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"161:72:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../../../contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":5093,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"169:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5096,"nodeType":"ImportDirective","src":"234:40:17","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"./Accounts.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":5095,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"242:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ContractDefinition","src":"393:304:17","nodes":[{"id":5104,"nodeType":"VariableDeclaration","src":"440:28:17","nodes":[],"constant":false,"mutability":"mutable","name":"_registry_","nameLocation":"458:10:17","scope":5132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5103,"nodeType":"UserDefinedTypeName","pathNode":{"id":5102,"name":"Registry","nameLocations":["440:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"440:8:17"},"referencedDeclaration":2295,"src":"440:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"},{"id":5122,"nodeType":"FunctionDefinition","src":"475:129:17","nodes":[],"body":{"id":5121,"nodeType":"Block","src":"511:93:17","nodes":[],"statements":[{"expression":{"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5107,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"521:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"534:12:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Registry_$2295_$","typeString":"function () returns (contract Registry)"},"typeName":{"id":5109,"nodeType":"UserDefinedTypeName","pathNode":{"id":5108,"name":"Registry","nameLocations":["538:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"538:8:17"},"referencedDeclaration":2295,"src":"538:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"src":"521:27:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5113,"nodeType":"ExpressionStatement","src":"521:27:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5117,"name":"registry_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"580:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5114,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"558:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1578,"src":"558:21:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5120,"nodeType":"ExpressionStatement","src":"558:39:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetup","nameLocation":"484:15:17","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[],"src":"499:2:17"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[],"src":"511:0:17"},"scope":5132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5131,"nodeType":"FunctionDefinition","src":"610:85:17","nodes":[],"body":{"id":5130,"nodeType":"Block","src":"661:34:17","nodes":[],"statements":[{"expression":{"id":5128,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"678:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"functionReturnParameters":5127,"id":5129,"nodeType":"Return","src":"671:17:17"}]},"functionSelector":"7b103999","implemented":true,"kind":"function","modifiers":[],"name":"registry","nameLocation":"619:8:17","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[],"src":"627:2:17"},"returnParameters":{"id":5127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5131,"src":"651:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5125,"nodeType":"UserDefinedTypeName","pathNode":{"id":5124,"name":"Registry","nameLocations":["651:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"651:8:17"},"referencedDeclaration":2295,"src":"651:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"}],"src":"650:10:17"},"scope":5132,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5098,"name":"Test","nameLocations":["419:4:17"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"419:4:17"},"id":5099,"nodeType":"InheritanceSpecifier","src":"419:4:17"},{"baseName":{"id":5100,"name":"Accounts","nameLocations":["425:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"425:8:17"},"id":5101,"nodeType":"InheritanceSpecifier","src":"425:8:17"}],"canonicalName":"RegistrySetup","contractDependencies":[],"contractKind":"contract","documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"276:117:17","text":"@title RegistrySetup\n @notice This contract is used to setup an empty Registry contract for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetup","nameLocation":"402:13:17","scope":5297,"usedErrors":[]},{"id":5296,"nodeType":"ContractDefinition","src":"833:2031:17","nodes":[{"id":5137,"nodeType":"VariableDeclaration","src":"883:32:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId_","nameLocation":"900:15:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5139,"nodeType":"VariableDeclaration","src":"921:36:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileAnchor_","nameLocation":"938:19:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5138,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5141,"nodeType":"VariableDeclaration","src":"964:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Id_","nameLocation":"981:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5143,"nodeType":"VariableDeclaration","src":"999:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Anchor_","nameLocation":"1016:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5142,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5145,"nodeType":"VariableDeclaration","src":"1039:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Id_","nameLocation":"1056:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5147,"nodeType":"VariableDeclaration","src":"1074:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Anchor_","nameLocation":"1091:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5146,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5247,"nodeType":"FunctionDefinition","src":"1114:930:17","nodes":[],"body":{"id":5246,"nodeType":"Block","src":"1154:890:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5150,"name":"__RegistrySetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"1164:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"ExpressionStatement","src":"1164:17:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5156,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1201:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1192:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1195:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1192:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5159,"nodeType":"ExpressionStatement","src":"1192:22:17"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5160,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1224:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"506f6f6c2050726f66696c652031","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":5165,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1301:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1311:8:17","1324:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1301:48:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5169,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1351:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5171,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"1365:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5161,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1242:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1242:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:148:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1224:166:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"1224:166:17"},{"expression":{"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5176,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"1400:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5179,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1448:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5177,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1422:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1422:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1465:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1422:49:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1400:71:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5183,"nodeType":"ExpressionStatement","src":"1400:71:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5187,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1491:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1482:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1485:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1482:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5190,"nodeType":"ExpressionStatement","src":"1482:26:17"},{"expression":{"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5191,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1518:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652031","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1574:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},"value":"Profile 1"},{"arguments":[{"hexValue":"31","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6531","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""},"value":"Profile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""}],"id":5196,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1587:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1597:8:17","1610:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1587:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5200,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1633:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5202,"name":"profile1_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"1651:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5192,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1533:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1533:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1533:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1518:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5206,"nodeType":"ExpressionStatement","src":"1518:161:17"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5207,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"1689:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5210,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1734:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5208,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1708:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1708:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1708:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1689:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5214,"nodeType":"ExpressionStatement","src":"1689:65:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5218,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1774:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1765:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1765:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"1765:26:17"},{"expression":{"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"1801:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652032","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},"value":"Profile 2"},{"arguments":[{"hexValue":"31","id":5228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6532","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""},"value":"Profile2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""}],"id":5227,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1870:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1880:8:17","1893:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1870:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5231,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1916:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5233,"name":"profile2_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"1934:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5223,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1816:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1816:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1801:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5237,"nodeType":"ExpressionStatement","src":"1801:161:17"},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5238,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"1972:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5241,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2017:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5239,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1991:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2002:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1991:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2031:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1991:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1972:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"1972:65:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetupFull","nameLocation":"1123:19:17","parameters":{"id":5148,"nodeType":"ParameterList","parameters":[],"src":"1142:2:17"},"returnParameters":{"id":5149,"nodeType":"ParameterList","parameters":[],"src":"1154:0:17"},"scope":5296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5255,"nodeType":"FunctionDefinition","src":"2050:103:17","nodes":[],"body":{"id":5254,"nodeType":"Block","src":"2114:39:17","nodes":[],"statements":[{"expression":{"id":5252,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"2131:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5251,"id":5253,"nodeType":"Return","src":"2124:22:17"}]},"functionSelector":"fd325c60","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id","nameLocation":"2059:14:17","parameters":{"id":5248,"nodeType":"ParameterList","parameters":[],"src":"2073:2:17"},"returnParameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5255,"src":"2105:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2105:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2104:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5263,"nodeType":"FunctionDefinition","src":"2159:111:17","nodes":[],"body":{"id":5262,"nodeType":"Block","src":"2227:43:17","nodes":[],"statements":[{"expression":{"id":5260,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2244:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5259,"id":5261,"nodeType":"Return","src":"2237:26:17"}]},"functionSelector":"176effb3","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_anchor","nameLocation":"2168:18:17","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[],"src":"2186:2:17"},"returnParameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5263,"src":"2218:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5271,"nodeType":"FunctionDefinition","src":"2276:97:17","nodes":[],"body":{"id":5270,"nodeType":"Block","src":"2337:36:17","nodes":[],"statements":[{"expression":{"id":5268,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2354:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5267,"id":5269,"nodeType":"Return","src":"2347:19:17"}]},"functionSelector":"39f56f7f","implemented":true,"kind":"function","modifiers":[],"name":"profile1_id","nameLocation":"2285:11:17","parameters":{"id":5264,"nodeType":"ParameterList","parameters":[],"src":"2296:2:17"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5271,"src":"2328:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2328:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2327:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5279,"nodeType":"FunctionDefinition","src":"2461:105:17","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"2526:40:17","nodes":[],"statements":[{"expression":{"id":5276,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2543:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5275,"id":5277,"nodeType":"Return","src":"2536:23:17"}]},"functionSelector":"c5d7d73b","implemented":true,"kind":"function","modifiers":[],"name":"profile1_anchor","nameLocation":"2470:15:17","parameters":{"id":5272,"nodeType":"ParameterList","parameters":[],"src":"2485:2:17"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5279,"src":"2517:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2516:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5287,"nodeType":"FunctionDefinition","src":"2572:97:17","nodes":[],"body":{"id":5286,"nodeType":"Block","src":"2633:36:17","nodes":[],"statements":[{"expression":{"id":5284,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2650:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5283,"id":5285,"nodeType":"Return","src":"2643:19:17"}]},"functionSelector":"18540361","implemented":true,"kind":"function","modifiers":[],"name":"profile2_id","nameLocation":"2581:11:17","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"2592:2:17"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5287,"src":"2624:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"2757:105:17","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"2822:40:17","nodes":[],"statements":[{"expression":{"id":5292,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2839:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5291,"id":5293,"nodeType":"Return","src":"2832:23:17"}]},"functionSelector":"3554642a","implemented":true,"kind":"function","modifiers":[],"name":"profile2_anchor","nameLocation":"2766:15:17","parameters":{"id":5288,"nodeType":"ParameterList","parameters":[],"src":"2781:2:17"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"2813:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"2813:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2812:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5134,"name":"RegistrySetup","nameLocations":["863:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":5132,"src":"863:13:17"},"id":5135,"nodeType":"InheritanceSpecifier","src":"863:13:17"}],"canonicalName":"RegistrySetupFull","contractDependencies":[],"contractKind":"contract","documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"699:134:17","text":"@title RegistrySetupFull\n @notice This contract is used to setup a Registry contract with two identities for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5296,5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetupFull","nameLocation":"842:17:17","scope":5297,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":17} \ No newline at end of file +{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"allo_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"allo_treasury","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address payable"}],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"local","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"no_recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"nullProfile_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"nullProfile_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"pure"},{"type":"function","name":"poolProfile_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"poolProfile_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"pool_admin","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_manager2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_managers","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"pool_notAManager","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile1_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile1_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile1_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_anchor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"profile2_id","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"profile2_member1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_member2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_members","inputs":[],"outputs":[{"name":"","type":"address[]","internalType":"address[]"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_notAMember","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"profile2_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"randomAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipient2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"recipientAddress","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"registry","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract Registry"}],"stateMutability":"view"},{"type":"function","name":"registry_owner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x6080604052600c8054600160ff199182168117909255601e8054909116909117905534801561002d57600080fd5b506118128061003d6000396000f3fe608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220fd5e37107c9def1683e5026978f0bbf09feec6f0e6adcb3f3c224149b73ed48b64736f6c63430008130033","sourceMap":"833:2031:17:-:0;;;3126:44:23;;;3166:4;-1:-1:-1;;3126:44:23;;;;;;;;1016:26:33;;;;;;;;;;;833:2031:17;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b506004361061031f5760003560e01c806379e62d0d116101a7578063b5508aa9116100ee578063da4bf08711610097578063ef0d790f11610071578063ef0d790f14610505578063fa7626d41461050d578063fd325c601461051a57600080fd5b8063da4bf087146104ed578063dac4eb16146104f5578063e20c9f71146104fd57600080fd5b8063d1e82b58116100c8578063d1e82b58146104d5578063d1f2cd88146104dd578063d5bee9f5146104e557600080fd5b8063b5508aa9146104a4578063ba414fa6146104ac578063c5d7d73b146104c457600080fd5b80638c7408c411610150578063916a17c61161012a578063916a17c61461048c578063a407c67a14610494578063aa3744bd1461049c57600080fd5b80638c7408c41461035f5780638e0d1a501461047c5780638e3c24931461048457600080fd5b80637cbe79ed116101815780637cbe79ed1461045f578063829e423f1461035f57806385226c811461046757600080fd5b806379e62d0d146104395780637b103999146104415780637b2edf321461045757600080fd5b806339f56f7f1161026b57806366d003ac1161021457806370a32944116101ee57806370a329441461042957806374d9284e1461035f578063759c9a861461043157600080fd5b806366d003ac1461040457806366d9a9a01461040c5780636a38dd0a1461042157600080fd5b80634bf4ba21116102455780634bf4ba21146103ec578063587c1243146103f45780635aff5999146103fc57600080fd5b806339f56f7f146103d45780633e5e3c23146103dc5780633f7286f4146103e457600080fd5b806318540361116102cd5780631ed7831c116102a75780631ed7831c146103995780632ade3880146103ae5780633554642a146103c357600080fd5b806318540361146103775780631b96dce6146103895780631e7bcb2e1461039157600080fd5b80630f166ad4116102fe5780630f166ad414610359578063174eedde1461035f578063176effb31461036657600080fd5b8062b1fad714610324578063030e4006146103495780630688b13514610351575b600080fd5b61032c610522565b6040516001600160a01b0390911681526020015b60405180910390f35b61032c610567565b61032c6105a7565b3061032c565b600061032c565b6020546001600160a01b031661032c565b6023545b604051908152602001610340565b61032c6105e7565b61032c610627565b6103a1610667565b6040516103409190611473565b6103b66106c9565b6040516103409190611510565b6024546001600160a01b031661032c565b60215461037b565b6103a161080b565b6103a161086b565b6103a16108cb565b61032c6108ee565b61032c61092e565b61032c61096e565b6104146109ae565b60405161034091906115d0565b61032c610aa9565b6103a1610ae9565b61032c610b81565b6103a1610bc1565b601e5461010090046001600160a01b031661032c565b61032c610c29565b61032c610c69565b61046f610ca9565b604051610340919061169b565b61032c610d79565b61032c610db9565b610414610df9565b6103a1610ef4565b61032c610f5c565b61046f610f9c565b6104b461106c565b6040519015158152602001610340565b6022546001600160a01b031661032c565b61032c611140565b61032c611180565b61032c6111c0565b61032c611200565b61032c611240565b6103a1611280565b61032c6112e0565b601e546104b49060ff1681565b601f5461037b565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572310000000000000000000000000000000000000081525061131c565b905090565b60006105626040518060400160405280601381526020017f70726f66696c65315f6e6f74414d656d6265720000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f726563697069656e74320000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65325f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572310000000000000000000000000000000081525061131c565b606060168054806020026020016040519081016040528092919081815260200182805480156106bf57602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116106a1575b5050505050905090565b6060601d805480602002602001604051908101604052809291908181526020016000905b8282101561080257600084815260208082206040805180820182526002870290920180546001600160a01b03168352600181018054835181870281018701909452808452939591948681019491929084015b828210156107eb57838290600052602060002001805461075e906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461078a906116fd565b80156107d75780601f106107ac576101008083540402835291602001916107d7565b820191906000526020600020905b8154815290600101906020018083116107ba57829003601f168201915b50505050508152602001906001019061073f565b5050505081525050815260200190600101906106ed565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b604080516002808252606080830184529260208301908036833701905050905090565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572310000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f726563697069656e74416464726573730000000000000000000000000000000081525061131c565b60006105626040518060400160405280600981526020017f726563697069656e74000000000000000000000000000000000000000000000081525061131c565b6060601b805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610a9157602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610a3e5790505b505050505081525050815260200190600101906109d2565b60006105626040518060400160405280600d81526020017f706f6f6c5f6d616e61676572320000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610b16610627565b81600081518110610b2957610b29611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610c29565b81600181518110610b6457610b64611737565b6001600160a01b0390921660209283029190910190910152919050565b60006105626040518060400160405280600c81526020017f6e6f5f726563697069656e74000000000000000000000000000000000000000081525061131c565b60408051600280825260608083018452926000929190602083019080368337019050509050610bee610522565b81600081518110610c0157610c01611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610aa9565b60006105626040518060400160405280601081526020017f70726f66696c65315f6d656d626572320000000000000000000000000000000081525061131c565b60006105626040518060400160405280600a81526020017f616c6c6f5f6f776e65720000000000000000000000000000000000000000000081525061131c565b6060601a805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610cec906116fd565b80601f0160208091040260200160405190810160405280929190818152602001828054610d18906116fd565b8015610d655780601f10610d3a57610100808354040283529160200191610d65565b820191906000526020600020905b815481529060010190602001808311610d4857829003601f168201915b505050505081526020019060010190610ccd565b60006105626040518060400160405280600a81526020017f706f6f6c5f61646d696e0000000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280601081526020017f70726f66696c65325f6d656d626572320000000000000000000000000000000081525061131c565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156108025760008481526020908190206040805180820182526002860290920180546001600160a01b03168352600181018054835181870281018701909452808452939491938583019392830182828015610edc57602002820191906000526020600020906000905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411610e895790505b50505050508152505081526020019060010190610e1d565b60408051600280825260608083018452926000929190602083019080368337019050509050610f216108ee565b81600081518110610f3457610f34611737565b60200260200101906001600160a01b031690816001600160a01b031681525050610b51610db9565b60006105626040518060400160405280600a81526020017f726563697069656e74310000000000000000000000000000000000000000000081525061131c565b60606019805480602002602001604051908101604052809291908181526020016000905b82821015610802578382906000526020600020018054610fdf906116fd565b80601f016020809104026020016040519081016040528092919081815260200182805461100b906116fd565b80156110585780601f1061102d57610100808354040283529160200191611058565b820191906000526020600020905b81548152906001019060200180831161103b57829003601f168201915b505050505081526020019060010190610fc0565b60085460009060ff1615611084575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c65640000000000000000000000000000000000000000000000000000602483015260009163667f9d7090604401602060405180830381865afa158015611115573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611139919061174d565b1415905090565b60006105626040518060400160405280601081526020017f706f6f6c5f6e6f74414d616e616765720000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f70726f66696c65315f6f776e657200000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600b81526020017f72616e646f6d206368616400000000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600d81526020017f616c6c6f5f74726561737572790000000000000000000000000000000000000081525061131c565b60006105626040518060400160405280600e81526020017f72656769737472795f6f776e657200000000000000000000000000000000000081525061131c565b606060158054806020026020016040519081016040528092919081815260200182805480156106bf576020028201919060005260206000209081546001600160a01b031681526001909101906020018083116106a1575050505050905090565b60006105626040518060400160405280601381526020017f70726f66696c65325f6e6f74414d656d626572000000000000000000000000008152505b60006113278261132e565b5092915050565b600080826040516020016113429190611766565b60408051808303601f190181529082905280516020909101207fffa18649000000000000000000000000000000000000000000000000000000008252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156113c3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113e79190611782565b6040517fc657c718000000000000000000000000000000000000000000000000000000008152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c7189061143c90859087906004016117b2565b600060405180830381600087803b15801561145657600080fd5b505af115801561146a573d6000803e3d6000fd5b50505050915091565b6020808252825182820181905260009190848201906040850190845b818110156114b45783516001600160a01b03168352928401929184019160010161148f565b50909695505050505050565b60005b838110156114db5781810151838201526020016114c3565b50506000910152565b600081518084526114fc8160208601602086016114c0565b601f01601f19169290920160200192915050565b602080825282518282018190526000919060409081850190600581811b8701840188860187805b858110156115c057603f198b8503018752825180516001600160a01b031685528901518985018990528051898601819052908a0190606081881b870181019190870190855b818110156115aa57605f198985030183526115988486516114e4565b948e01949350918d019160010161157c565b505050978a019794505091880191600101611537565b50919a9950505050505050505050565b60006020808301818452808551808352604092508286019150828160051b8701018488016000805b8481101561168c57898403603f19018652825180516001600160a01b03168552880151888501889052805188860181905290890190839060608701905b808310156116775783517fffffffff00000000000000000000000000000000000000000000000000000000168252928b019260019290920191908b0190611635565b50978a019795505050918701916001016115f8565b50919998505050505050505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156116f057603f198886030184526116de8583516114e4565b945092850192908501906001016116c2565b5092979650505050505050565b600181811c9082168061171157607f821691505b60208210810361173157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561175f57600080fd5b5051919050565b600082516117788184602087016114c0565b9190910192915050565b60006020828403121561179457600080fd5b81516001600160a01b03811681146117ab57600080fd5b9392505050565b6001600160a01b03831681526040602082015260006117d460408301846114e4565b94935050505056fea2646970667358221220fd5e37107c9def1683e5026978f0bbf09feec6f0e6adcb3f3c224149b73ed48b64736f6c63430008130033","sourceMap":"833:2031:17:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1763:107:15;;;:::i;:::-;;;-1:-1:-1;;;;;178:55:145;;;160:74;;148:2;133:18;1763:107:15;;;;;;;;2429:119;;;:::i;4045:101::-;;;:::i;226:92::-;306:4;226:92;;905:138;968:7;905:138;;2159:111:17;2244:19;;-1:-1:-1;;;;;2244:19:17;2159:111;;2572:97;2650:12;;2572:97;;;391:25:145;;;379:2;364:18;2572:97:17;245:177:145;3126:109:15;;;:::i;2554:113::-;;;:::i;2452:134:26:-;;;:::i;:::-;;;;;;;:::i;3360:151::-;;;:::i;:::-;;;;;;;:::i;2757:105:17:-;2839:16;;-1:-1:-1;;;;;2839:16:17;2757:105;;2276:97;2354:12;;2276:97;;3221:133:26;;;:::i;2922:141::-;;;:::i;1331:118:15:-;;;:::i;3366:113::-;;;:::i;4257:::-;;;:::i;4152:99::-;;;:::i;2738:178:26:-;;;:::i;:::-;;;;;;;:::i;1876:107:15:-;;;:::i;2792:241::-;;;:::i;4376:105::-;;;:::i;1989:232::-;;;:::i;610:85:17:-;678:10;;;;;-1:-1:-1;;;;;678:10:17;610:85;;2673:113:15;;;:::i;439:101::-;;;:::i;2592:140:26:-;;;:::i;:::-;;;;;;;:::i;1537:101:15:-;;;:::i;3485:113::-;;;:::i;3069:146:26:-;;;:::i;3604:241:15:-;;;:::i;3938:101::-;;;:::i;2157:141:26:-;;;:::i;1243:204:22:-;;;:::i;:::-;;;6280:14:145;;6273:22;6255:41;;6243:2;6228:18;1243:204:22;6115:187:145;2461:105:17;2543:16;;-1:-1:-1;;;;;2543:16:17;2461:105;;1644:113:15;;;:::i;2314:109::-;;;:::i;4571:105::-;;;:::i;546:124::-;;;:::i;324:109::-;;;:::i;2304:142:26:-;;;:::i;3241:119:15:-;;;:::i;1016:26:33:-;;;;;;;;;2050:103:17;2131:15;;2050:103;;1763:107:15;1812:7;1838:25;;;;;;;;;;;;;;;;;;:8;:25::i;:::-;1831:32;;1763:107;:::o;2429:119::-;2484:7;2510:31;;;;;;;;;;;;;;;;;;:8;:31::i;4045:101::-;4091:7;4117:22;;;;;;;;;;;;;;;;;;:8;:22::i;3126:109::-;3176:7;3202:26;;;;;;;;;;;;;;;;;;:8;:26::i;2554:113::-;2606:7;2632:28;;;;;;;;;;;;;;;;;;:8;:28::i;2452:134:26:-;2499:33;2563:16;2544:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2544:35:26;;;;;;;;;;;;;;;;;;;;;;;2452:134;:::o;3360:151::-;3409:42;3485:19;3463:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3463:41:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3360:151;:::o;3221:133::-;3267:33;3331:16;3312:35;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3312:35:26;;;;;;;;;;;;;;;;;;;;;;3221:133;:::o;2922:141::-;2970:35;3038:18;3017:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3017:39:26;;;;;;;;;;;;;;;;;;;;;;2922:141;:::o;1331:118:15:-;1426:16;;;1440:1;1426:16;;;1391;1426;;;;;1391;1426;;;;;;;;;;-1:-1:-1;1426:16:15;1419:23;;1331:118;:::o;3366:113::-;3418:7;3444:28;;;;;;;;;;;;;;;;;;:8;:28::i;4257:113::-;4309:7;4335:28;;;;;;;;;;;;;;;;;;:8;:28::i;4152:99::-;4197:7;4223:21;;;;;;;;;;;;;;;;;;:8;:21::i;2738:178:26:-;2794:48;2883:26;2854:55;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2854:55:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1876:107:15;1925:7;1951:25;;;;;;;;;;;;;;;;;;:8;:25::i;2792:241::-;2900:16;;;2914:1;2900:16;;;2844;2900;;;;;2844;2872:25;;2900:16;2914:1;2900:16;;;;;;;;;;-1:-1:-1;2900:16:15;2872:44;;2940:18;:16;:18::i;:::-;2926:8;2935:1;2926:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;2926:32:15;;;-1:-1:-1;;;;;2926:32:15;;;;;2982:18;:16;:18::i;:::-;2968:8;2977:1;2968:11;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2968:32:15;;;:11;;;;;;;;;;;:32;3018:8;2792:241;-1:-1:-1;2792:241:15:o;4376:105::-;4424:7;4450:24;;;;;;;;;;;;;;;;;;:8;:24::i;1989:232::-;2094:16;;;2108:1;2094:16;;;2038;2094;;;;;2038;2066:25;;2094:16;2108:1;2094:16;;;;;;;;;;-1:-1:-1;2094:16:15;2066:44;;2134:15;:13;:15::i;:::-;2120:8;2129:1;2120:11;;;;;;;;:::i;:::-;;;;;;:29;-1:-1:-1;;;;;2120:29:15;;;-1:-1:-1;;;;;2120:29:15;;;;;2173:15;:13;:15::i;2673:113::-;2725:7;2751:28;;;;;;;;;;;;;;;;;;:8;:28::i;439:101::-;485:7;511:22;;;;;;;;;;;;;;;;;;:8;:22::i;2592:140:26:-;2640:34;2707:18;2686:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1537:101:15;1583:7;1609:22;;;;;;;;;;;;;;;;;;:8;:22::i;3485:113::-;3537:7;3563:28;;;;;;;;;;;;;;;;;;:8;:28::i;3069:146:26:-;3117:40;3190:18;3169:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3169:39:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3604:241:15;3712:16;;;3726:1;3712:16;;;3656;3712;;;;;3656;3684:25;;3712:16;3726:1;3712:16;;;;;;;;;;-1:-1:-1;3712:16:15;3684:44;;3752:18;:16;:18::i;:::-;3738:8;3747:1;3738:11;;;;;;;;:::i;:::-;;;;;;:32;-1:-1:-1;;;;;3738:32:15;;;-1:-1:-1;;;;;3738:32:15;;;;;3794:18;:16;:18::i;3938:101::-;3984:7;4010:22;;;;;;;;;;;;;;;;;;:8;:22::i;2157:141:26:-;2206:34;2273:18;2252:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1243:204:22;1302:7;;1282:4;;1302:7;;1298:143;;;-1:-1:-1;1332:7:22;;;;;1243:204::o;1298:143::-;1377:39;;;;;:7;:39;;;7548:74:145;;;1398:17:22;7638:18:145;;;7631:34;1428:1:22;;1377:7;;7521:18:145;;1377:39:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;:53;;1370:60;;1243:204;:::o;1644:113:15:-;1696:7;1722:28;;;;;;;;;;;;;;;;;;:8;:28::i;2314:109::-;2364:7;2390:26;;;;;;;;;;;;;;;;;;:8;:26::i;4571:105::-;4620:7;4646:23;;;;;;;;;;;;;;;;;;:8;:23::i;546:124::-;595:15;637:25;;;;;;;;;;;;;;;;;;:8;:25::i;324:109::-;374:7;400:26;;;;;;;;;;;;;;;;;;:8;:26::i;2304:142:26:-;2353:35;2421:18;2400:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2400:39:26;;;;;;;;;;;;;;;;;;;;;;2304:142;:::o;3241:119:15:-;3296:7;3322:31;;;;;;;;;;;;;;;;;;20439:125:24;20503:12;20537:20;20552:4;20537:14;:20::i;:::-;-1:-1:-1;20527:30:24;20439:125;-1:-1:-1;;20439:125:24:o;20158:242::-;20228:12;20242:18;20320:4;20303:22;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;20303:22:24;;;;;;;20293:33;;20303:22;20293:33;;;;20344:19;;;;;;391:25:145;;;20293:33:24;-1:-1:-1;20344:7:24;;;;364:18:145;;20344:19:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;20373:20;;;;;20337:26;;-1:-1:-1;20373:8:24;;;;:20;;20337:26;;20388:4;;20373:20;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20158:242;;;:::o;427:681:145:-;598:2;650:21;;;720:13;;623:18;;;742:22;;;569:4;;598:2;821:15;;;;795:2;780:18;;;569:4;864:218;878:6;875:1;872:13;864:218;;;943:13;;-1:-1:-1;;;;;939:62:145;927:75;;1057:15;;;;1022:12;;;;900:1;893:9;864:218;;;-1:-1:-1;1099:3:145;;427:681;-1:-1:-1;;;;;;427:681:145:o;1113:250::-;1198:1;1208:113;1222:6;1219:1;1216:13;1208:113;;;1298:11;;;1292:18;1279:11;;;1272:39;1244:2;1237:10;1208:113;;;-1:-1:-1;;1355:1:145;1337:16;;1330:27;1113:250::o;1368:271::-;1410:3;1448:5;1442:12;1475:6;1470:3;1463:19;1491:76;1560:6;1553:4;1548:3;1544:14;1537:4;1530:5;1526:16;1491:76;:::i;:::-;1621:2;1600:15;-1:-1:-1;;1596:29:145;1587:39;;;;1628:4;1583:50;;1368:271;-1:-1:-1;;1368:271:145:o;1644:1767::-;1879:2;1931:21;;;2001:13;;1904:18;;;2023:22;;;1850:4;;1879:2;2064;;2082:18;;;;2119:1;2162:15;;;2147:31;;2143:40;;2206:15;;;1850:4;;2270:1112;2286:6;2281:3;2278:15;2270:1112;;;-1:-1:-1;;2355:22:145;;;2351:36;2339:49;;2411:13;;2498:9;;-1:-1:-1;;;;;2494:58:145;2479:74;;2592:11;;2586:18;2624:15;;;2617:27;;;2705:19;;2451:15;;;2737:24;;;2918:21;;;;2784:2;2866:17;;;2854:30;;2850:39;;;2808:15;;;;2963:1;2977:296;2993:8;2988:3;2985:17;2977:296;;;3099:2;3095:7;3086:6;3078;3074:19;3070:33;3063:5;3056:48;3131:42;3166:6;3155:8;3149:15;3131:42;:::i;:::-;3202:17;;;;3121:52;-1:-1:-1;3245:14:145;;;;3021:1;3012:11;2977:296;;;-1:-1:-1;;;3360:12:145;;;;3296:6;-1:-1:-1;;3325:15:145;;;;2312:1;2303:11;2270:1112;;;-1:-1:-1;3399:6:145;;1644:1767;-1:-1:-1;;;;;;;;;;1644:1767:145:o;3416:1638::-;3620:4;3649:2;3689;3678:9;3674:18;3719:2;3708:9;3701:21;3742:6;3777;3771:13;3808:6;3800;3793:22;3834:2;3824:12;;3867:2;3856:9;3852:18;3845:25;;3929:2;3919:6;3916:1;3912:14;3901:9;3897:30;3893:39;3967:2;3959:6;3955:15;3988:1;4009;4019:1006;4035:6;4030:3;4027:15;4019:1006;;;4104:22;;;-1:-1:-1;;4100:36:145;4088:49;;4160:13;;4247:9;;-1:-1:-1;;;;;4243:58:145;4228:74;;4341:11;;4335:18;4373:15;;;4366:27;;;4454:19;;4200:15;;;4486:24;;;4576:21;;;;4621:1;;4544:2;4532:15;;;4635:282;4651:8;4646:3;4643:17;4635:282;;;4732:15;;4749:66;4728:88;4714:103;;4886:17;;;;4679:1;4670:11;;;;;4843:14;;;;4635:282;;;-1:-1:-1;5003:12:145;;;;4940:5;-1:-1:-1;;;4968:15:145;;;;4061:1;4052:11;4019:1006;;;-1:-1:-1;5042:6:145;;3416:1638;-1:-1:-1;;;;;;;;;3416:1638:145:o;5307:803::-;5469:4;5498:2;5538;5527:9;5523:18;5568:2;5557:9;5550:21;5591:6;5626;5620:13;5657:6;5649;5642:22;5695:2;5684:9;5680:18;5673:25;;5757:2;5747:6;5744:1;5740:14;5729:9;5725:30;5721:39;5707:53;;5795:2;5787:6;5783:15;5816:1;5826:255;5840:6;5837:1;5834:13;5826:255;;;5933:2;5929:7;5917:9;5909:6;5905:22;5901:36;5896:3;5889:49;5961:40;5994:6;5985;5979:13;5961:40;:::i;:::-;5951:50;-1:-1:-1;6059:12:145;;;;6024:15;;;;5862:1;5855:9;5826:255;;;-1:-1:-1;6098:6:145;;5307:803;-1:-1:-1;;;;;;;5307:803:145:o;6554:437::-;6633:1;6629:12;;;;6676;;;6697:61;;6751:4;6743:6;6739:17;6729:27;;6697:61;6804:2;6796:6;6793:14;6773:18;6770:38;6767:218;;-1:-1:-1;;;6838:1:145;6831:88;6942:4;6939:1;6932:15;6970:4;6967:1;6960:15;6767:218;;6554:437;;;:::o;7185:184::-;-1:-1:-1;;;7234:1:145;7227:88;7334:4;7331:1;7324:15;7358:4;7355:1;7348:15;7676:184;7746:6;7799:2;7787:9;7778:7;7774:23;7770:32;7767:52;;;7815:1;7812;7805:12;7767:52;-1:-1:-1;7838:16:145;;7676:184;-1:-1:-1;7676:184:145:o;7865:289::-;7996:3;8034:6;8028:13;8050:66;8109:6;8104:3;8097:4;8089:6;8085:17;8050:66;:::i;:::-;8132:16;;;;;7865:289;-1:-1:-1;;7865:289:145:o;8341:313::-;8411:6;8464:2;8452:9;8443:7;8439:23;8435:32;8432:52;;;8480:1;8477;8470:12;8432:52;8512:9;8506:16;-1:-1:-1;;;;;8555:5:145;8551:54;8544:5;8541:65;8531:93;;8620:1;8617;8610:12;8531:93;8643:5;8341:313;-1:-1:-1;;;8341:313:145:o;8659:340::-;-1:-1:-1;;;;;8840:6:145;8836:55;8825:9;8818:74;8928:2;8923;8912:9;8908:18;8901:30;8799:4;8948:45;8989:2;8978:9;8974:18;8966:6;8948:45;:::i;:::-;8940:53;8659:340;-1:-1:-1;;;;8659:340:145:o","linkReferences":{}},"methodIdentifiers":{"IS_TEST()":"fa7626d4","allo_owner()":"7cbe79ed","allo_treasury()":"da4bf087","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","failed()":"ba414fa6","local()":"0f166ad4","no_recipient()":"759c9a86","nullProfile_member1()":"829e423f","nullProfile_member2()":"8c7408c4","nullProfile_members()":"4bf4ba21","nullProfile_notAMember()":"174eedde","nullProfile_owner()":"74d9284e","poolProfile_anchor()":"176effb3","poolProfile_id()":"fd325c60","pool_admin()":"8e0d1a50","pool_manager1()":"00b1fad7","pool_manager2()":"6a38dd0a","pool_managers()":"79e62d0d","pool_notAManager()":"d1e82b58","profile1_anchor()":"c5d7d73b","profile1_id()":"39f56f7f","profile1_member1()":"1e7bcb2e","profile1_member2()":"7b2edf32","profile1_members()":"70a32944","profile1_notAMember()":"030e4006","profile1_owner()":"d1f2cd88","profile2_anchor()":"3554642a","profile2_id()":"18540361","profile2_member1()":"587c1243","profile2_member2()":"8e3c2493","profile2_members()":"a407c67a","profile2_notAMember()":"ef0d790f","profile2_owner()":"1b96dce6","randomAddress()":"d5bee9f5","recipient()":"66d003ac","recipient1()":"aa3744bd","recipient2()":"0688b135","recipientAddress()":"5aff5999","registry()":"7b103999","registry_owner()":"dac4eb16","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"allo_treasury\",\"outputs\":[{\"internalType\":\"address payable\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"local\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"no_recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"nullProfile_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"pure\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"poolProfile_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_admin\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_manager2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_managers\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool_notAManager\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile1_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_anchor\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_id\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_member2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_members\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_notAMember\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"profile2_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"randomAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipient2\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"recipientAddress\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry\",\"outputs\":[{\"internalType\":\"contract Registry\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"registry_owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"title\":\"RegistrySetupFull\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"notice\":\"This contract is used to setup a Registry contract with two identities for testing purposes.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":\"RegistrySetupFull\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/contracts/core/Anchor.sol\":{\"keccak256\":\"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139\",\"dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H\"]},\"lib/allo-v2/contracts/core/Registry.sol\":{\"keccak256\":\"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283\",\"dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR\"]},\"lib/allo-v2/contracts/core/interfaces/IRegistry.sol\":{\"keccak256\":\"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e\",\"dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA\"]},\"lib/allo-v2/contracts/core/libraries/Errors.sol\":{\"keccak256\":\"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf\",\"dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA\"]},\"lib/allo-v2/contracts/core/libraries/Metadata.sol\":{\"keccak256\":\"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c\",\"dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn\"]},\"lib/allo-v2/contracts/core/libraries/Native.sol\":{\"keccak256\":\"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a\",\"dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv\"]},\"lib/allo-v2/contracts/core/libraries/Transfer.sol\":{\"keccak256\":\"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11\",\"dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5\"]},\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol\":{\"keccak256\":\"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298\",\"dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt\"]},\"lib/allo-v2/test/foundry/shared/Accounts.sol\":{\"keccak256\":\"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b\",\"dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m\"]},\"lib/allo-v2/test/foundry/shared/RegistrySetup.sol\":{\"keccak256\":\"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb\",\"dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j\"]},\"lib/forge-std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib/forge-std/src/StdAssertions.sol\":{\"keccak256\":\"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c\",\"dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k\"]},\"lib/forge-std/src/StdChains.sol\":{\"keccak256\":\"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b\",\"dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj\"]},\"lib/forge-std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib/forge-std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib/forge-std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib/forge-std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib/forge-std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib/forge-std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib/forge-std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib/forge-std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib/forge-std/src/StdUtils.sol\":{\"keccak256\":\"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61\",\"dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX\"]},\"lib/forge-std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib/forge-std/src/Vm.sol\":{\"keccak256\":\"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a\",\"dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK\"]},\"lib/forge-std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib/forge-std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib/forge-std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib/forge-std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib/forge-std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib/forge-std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib/forge-std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib/forge-std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib/forge-std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618\",\"dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e\",\"dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b\",\"dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95\",\"dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a\",\"dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89\",\"dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91\",\"dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol\":{\"keccak256\":\"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4\",\"dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol\":{\"keccak256\":\"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519\",\"dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h\"]},\"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol\":{\"keccak256\":\"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d\",\"dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol\":{\"keccak256\":\"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c\",\"dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"allo_treasury","outputs":[{"internalType":"address payable","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"local","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"no_recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"pure","type":"function","name":"nullProfile_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"poolProfile_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_admin","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_manager2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_managers","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"pool_notAManager","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile1_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile1_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_anchor","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"profile2_id","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_member2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_members","outputs":[{"internalType":"address[]","name":"","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_notAMember","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"profile2_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"randomAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipient2","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"recipientAddress","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"registry","outputs":[{"internalType":"contract Registry","name":"","type":"address"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"registry_owner","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":"RegistrySetupFull"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/contracts/core/Anchor.sol":{"keccak256":"0x6f470a8d0bab0848d3c3b7fb076b4001ff8b6bfd18f4bd6691a50ee6a13910cd","urls":["bzz-raw://4ed2ae6e417c282a07088fa9a30325fe5b2fa6d406ec02dc1df63027e82ec139","dweb:/ipfs/QmdVDTJKzjJqkygZ9768krrVQicLZTJVrZXbvet7KsmT8H"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/Registry.sol":{"keccak256":"0xb4fb0c6d9eb0f27dd6f6099f2832054a0b194ce420c6870deb5a7a94dd88b998","urls":["bzz-raw://0e82595dcff5471f50e67cc35f73dbc1c9344eac1ee9b42235372bd23ceee283","dweb:/ipfs/QmS34kQKRBaE7ih8c5upBb11bg3QtjunvctxKYNrtfGWhR"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/interfaces/IRegistry.sol":{"keccak256":"0x3a2edcea094551fc86612932d42bd6b4682d20fb7b46cfdbeee39ba85367749f","urls":["bzz-raw://c922d497fdfdd2f43a009959429c761d1fb61501ca5d91abf9ae873ac58d437e","dweb:/ipfs/QmaiUx4uVajytmFJQJdGh2mJK2RKn4xNVrARurJdF3iwzA"],"license":"MIT"},"lib/allo-v2/contracts/core/libraries/Errors.sol":{"keccak256":"0x114aa83c98eff68576c06a073357e2ead6910e1a4195cf720eb579ef701afa15","urls":["bzz-raw://c92fd5843368c9d66f7d0321932c0a9dc0919b292f51bd3aefad066548c622cf","dweb:/ipfs/QmZ8N4tToDEaNh9gSyR2J7JCAGPHQUSrs1iyrmzEDHkHEA"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Metadata.sol":{"keccak256":"0x452a95a8762fafd51d36295138f7e14189cbaaca7274d6fd34a59ad57a442d44","urls":["bzz-raw://2cc5507da2550ab9bfa0fbb263e703f9e70b831190bb7b2bcdbb231cab49795c","dweb:/ipfs/QmQXCD8v2HppXAX17aH49JvNyyfDYzGMrg63QNabUEXPpn"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Native.sol":{"keccak256":"0x23dacace24a8c570a659dcc7e52fca2d39cc7577c6cfa674820cafaf194b29d5","urls":["bzz-raw://0727880a600b1803f02b58ad002938462dc61aacf841f5e1ee38f296fdd67e8a","dweb:/ipfs/QmdrEiJxFFnUfn2QUNxRAUMS1qwCnRtGeWPChaGzhAkRnv"],"license":"AGPL-3.0-only"},"lib/allo-v2/contracts/core/libraries/Transfer.sol":{"keccak256":"0xb7b2bb9e47965ba74753f58544fe5f168a28970798720675ca7ba97fb0c79286","urls":["bzz-raw://47968985fb2900f1a930fb53038971bd092a09b71c7247f9fb50253b41db1d11","dweb:/ipfs/QmXYQmJ8jZpiCXKySGZqPmdkSUqvTFpi7Wfd23boTKEYQ5"],"license":"AGPL-3.0-only"},"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"lib/allo-v2/lib/solady/src/utils/SafeTransferLib.sol":{"keccak256":"0x06d3261d13cf5a08f9bcda05e17be0a6a0380193116298fdf8eabf9bf80d3624","urls":["bzz-raw://96965a8a2b1bd2d6cff4a8f78bcb33b0de8848834f8e4be28c03609ae08e9298","dweb:/ipfs/QmSoNDxaEozMZgNdVEygfEvnk26Tu4UeFeapvtMsoUFftt"],"license":"MIT"},"lib/allo-v2/test/foundry/shared/Accounts.sol":{"keccak256":"0x47c754ab744c6c9894aaff23cfbbe44bc30879a53fbbe8d36b1fee26137f2e3a","urls":["bzz-raw://8e457b7adaf1ea79cc707e8a3e2989855f51ff98ebc1947b3239d7d410d5a07b","dweb:/ipfs/QmSXASZ4u435D29T4UzKuh6kd8vLSrbSSgZzjnnhfwyv1m"],"license":"AGPL-3.0-only"},"lib/allo-v2/test/foundry/shared/RegistrySetup.sol":{"keccak256":"0xb771e6d89c173abc626b0e6d30d1b2d8efed2c2b27cec3f49e9447c07b92622b","urls":["bzz-raw://990cf93f5c90db3ab160c8a3b68b03561a7c2812b4c9763c901a3ac8b121ccdb","dweb:/ipfs/QmeSruv7KW2ZeRe4iQnt1HA6jkAyu5GrohC4YRVZYMNz6j"],"license":"AGPL-3.0-only"},"lib/forge-std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib/forge-std/src/StdAssertions.sol":{"keccak256":"0xf513292ab066e6017db48ca749c1e63a44dfc5cba0326fc65c718f96e029d361","urls":["bzz-raw://02d715ae2898f1fabd08133f80e6a7a3b87a2796ca5d23d1cb3fed9f4367f34c","dweb:/ipfs/QmfESqa4j3PQAvvdfrnDQ1xUH1TnVCfvZYHsAEDK8z4X4k"],"license":"MIT"},"lib/forge-std/src/StdChains.sol":{"keccak256":"0x9cc29c28f49d0b7f7b2f1aa32d8273f8a087bf62eb3fb22d893df824052c25ef","urls":["bzz-raw://42dcb36cb10b878a0d5b20ce3a4a3ba4f51f44d7731a66ac1133c699bc80b31b","dweb:/ipfs/QmY6q7SaHQMLBb3rS6xZdArPaXoskWeqF6oJwUeZ3gKLZj"],"license":"MIT"},"lib/forge-std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib/forge-std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib/forge-std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib/forge-std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib/forge-std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib/forge-std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib/forge-std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib/forge-std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib/forge-std/src/StdUtils.sol":{"keccak256":"0x502b18a4becda6ecd91fa8b419d8034946bfa80e6cc7f6497f51f8565bfadae0","urls":["bzz-raw://bf499ee483a1dfd02023d4ce78ed4029a49794ccd5b849aaab912faea0d2ba61","dweb:/ipfs/QmP6hwNZW7sYbQK9fBzuZWxfLm6Swx2nKzvZ54qWNqQkzX"],"license":"MIT"},"lib/forge-std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib/forge-std/src/Vm.sol":{"keccak256":"0x51fec240abc6dd23e0ee6de7c65106379aef732cad6c4ae5df6b55db886e7456","urls":["bzz-raw://a47d9c0a9876e7f9e411843b994a741d4ac1a87d8459ffc3c56359de691ddc1a","dweb:/ipfs/QmQiFN9b3Y2azrD1RBfAKEuAG3YeJkMzA2DGzgEE9kMeEK"],"license":"MIT OR Apache-2.0"},"lib/forge-std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib/forge-std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib/forge-std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib/forge-std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib/forge-std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib/forge-std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0xc8710577334e8d0799ae2b2a731b1924a7bddd64319da9787ddd2dc69bdd1ce5","urls":["bzz-raw://b83b7afa4d2372da3ba5402fb10860a105c35d79812c60dc61007be2afc17618","dweb:/ipfs/QmYX9xPmbNVSKXrepKiUZiG5oL3SdzFp9a4kqspxX1sEUx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol":{"keccak256":"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa","urls":["bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c","dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x89be10e757d242e9b18d5a32c9fbe2019f6d63052bbe46397a430a1d60d7f794","urls":["bzz-raw://f103ee2e4aecd37aac6ceefe670709cdd7613dee25fa2d4d9feaf7fc0aaa155e","dweb:/ipfs/QmRiNZLoJk5k3HPMYGPGjZFd2ke1ZxjhJZkM45Ec9GH9hv"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol":{"keccak256":"0x9c80f545915582e63fe206c6ce27cbe85a86fc10b9cd2a0e8c9488fb7c2ee422","urls":["bzz-raw://310136ad60820af4177a11a61d77a3686faf5fca4942b600e08fc940db38396b","dweb:/ipfs/QmbCzMNSTL7Zi7M4UCSqBrkHtp4jjxUnGbkneCZKdR1qeq"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0x75097e35253e7fb282ee4d7f27a80eaacfa759923185bf17302a89cbc059c5ef","urls":["bzz-raw://8b06267c5f80bad727af3e48b1382333d591dad51376399ef2f6b0ee6d58bf95","dweb:/ipfs/QmdU5La1agcQvghnfMpWZGDPz2TUDTCxUwTLKmuMRXBpAx"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol":{"keccak256":"0xb96dc79b65b7c37937919dcdb356a969ce0aa2e8338322bf4dc027a3c9c9a7eb","urls":["bzz-raw://f8613145881436fc0480fff22da4868d611e2b0c0c3da083334eb4362ce1945a","dweb:/ipfs/QmPqpP3YeRbBdTJRe6Gv2eGsUaANf4J6RwTNRW36iYahfV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xd90d7723512df65ae417adaf0801042940f0dabd60039ceeaffe34aa5b238da1","urls":["bzz-raw://1b13befeb3413749292f9fb229de1c7a509a5ce2c8047d9094fc004ca9d3af89","dweb:/ipfs/QmRzJ2hZSwRtMejHUZAYTPRKgZsnfb112Fno9Jf3EiDfwA"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol":{"keccak256":"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09","urls":["bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758","dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol":{"keccak256":"0x2bc0007987c229ae7624eb29be6a9b84f6a6a5872f76248b15208b131ea41c4e","urls":["bzz-raw://2b2835c737d073ef8b82a4cc246495a9740f43e7ff2cf130906b2449ff9bfb91","dweb:/ipfs/QmSCWfNoSvvTN57ic7o1RW6NqSxxGAqbBTnLKc7QHe27qB"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/SignedMathUpgradeable.sol":{"keccak256":"0x88f6b7bba3ee33eeb741f9a0f5bc98b6e6e352d0fe4905377bb328590f84095a","urls":["bzz-raw://88ace2d60f265752f18903d839910be4e4e104340b2957678585b812447825d4","dweb:/ipfs/QmXFkNxMc3AAGzhs2wUEZyErWQjsvoTGyYjuU5oZkFki5Z"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/IERC1155Receiver.sol":{"keccak256":"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b","urls":["bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec","dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Holder.sol":{"keccak256":"0x2e024ca51ce5abe16c0d34e6992a1104f356e2244eb4ccbec970435e8b3405e3","urls":["bzz-raw://a74009db3c6fc8db851ba69ddb6795b5c1ef1120c5a00fd1a8dc3a717dd9d519","dweb:/ipfs/QmZMk8Yh2X3gPS51ckUVLEXjZUhMSEeGApnA53WtjvLb9h"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC1155/utils/ERC1155Receiver.sol":{"keccak256":"0x3dd5e1a66a56f30302108a1da97d677a42b1daa60e503696b2bcbbf3e4c95bcb","urls":["bzz-raw://0808de0ae4918c664643c885ca7fa6503e8ef2bd75609dfc85152c0128a3422d","dweb:/ipfs/QmNrhFC1XgBKuuxfahFeiwi1MCdu3FLNpHj2uStgmf4iJj"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da","urls":["bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708","dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Holder.sol":{"keccak256":"0x67ef46fef257faae47adb630aad49694dda0334e5f7a7c5fb386243b974886b5","urls":["bzz-raw://c63284cf05ff845109190961e72ca27bd6a7b997f053d2ce21db83e9e285085c","dweb:/ipfs/QmQBQVYJRzscToP6YaTRDvwYeLmr4V7kD1PjoG9mRpUYzU"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol":{"keccak256":"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b","urls":["bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d","dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1","urls":["bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f","dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[{"astId":5830,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdstore","offset":0,"slot":"0","type":"t_struct(StdStorage)13235_storage"},{"astId":6026,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_failed","offset":0,"slot":"8","type":"t_bool"},{"astId":8527,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdChainsInitialized","offset":1,"slot":"8","type":"t_bool"},{"astId":8548,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chains","offset":0,"slot":"9","type":"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)"},{"astId":8552,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"defaultRpcUrls","offset":0,"slot":"10","type":"t_mapping(t_string_memory_ptr,t_string_storage)"},{"astId":8556,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"idToAlias","offset":0,"slot":"11","type":"t_mapping(t_uint256,t_string_storage)"},{"astId":8559,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"fallbackToDefaultRpcUrls","offset":0,"slot":"12","type":"t_bool"},{"astId":9317,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"gasMeteringOff","offset":1,"slot":"12","type":"t_bool"},{"astId":11354,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"stdstore","offset":0,"slot":"13","type":"t_struct(StdStorage)13235_storage"},{"astId":12222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedContracts","offset":0,"slot":"21","type":"t_array(t_address)dyn_storage"},{"astId":12225,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedSenders","offset":0,"slot":"22","type":"t_array(t_address)dyn_storage"},{"astId":12228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedContracts","offset":0,"slot":"23","type":"t_array(t_address)dyn_storage"},{"astId":12231,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedSenders","offset":0,"slot":"24","type":"t_array(t_address)dyn_storage"},{"astId":12234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_excludedArtifacts","offset":0,"slot":"25","type":"t_array(t_string_storage)dyn_storage"},{"astId":12237,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedArtifacts","offset":0,"slot":"26","type":"t_array(t_string_storage)dyn_storage"},{"astId":12241,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedArtifactSelectors","offset":0,"slot":"27","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12245,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedSelectors","offset":0,"slot":"28","type":"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage"},{"astId":12249,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_targetedInterfaces","offset":0,"slot":"29","type":"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage"},{"astId":17834,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"IS_TEST","offset":0,"slot":"30","type":"t_bool"},{"astId":5104,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_registry_","offset":1,"slot":"30","type":"t_contract(Registry)2295"},{"astId":5137,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_poolProfileId_","offset":0,"slot":"31","type":"t_bytes32"},{"astId":5139,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_poolProfileAnchor_","offset":0,"slot":"32","type":"t_address"},{"astId":5141,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile1Id_","offset":0,"slot":"33","type":"t_bytes32"},{"astId":5143,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile1Anchor_","offset":0,"slot":"34","type":"t_address"},{"astId":5145,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile2Id_","offset":0,"slot":"35","type":"t_bytes32"},{"astId":5147,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_profile2Anchor_","offset":0,"slot":"36","type":"t_address"}],"types":{"t_address":{"encoding":"inplace","label":"address","numberOfBytes":"20"},"t_array(t_address)dyn_storage":{"encoding":"dynamic_array","label":"address[]","numberOfBytes":"32","base":"t_address"},"t_array(t_bytes32)dyn_storage":{"encoding":"dynamic_array","label":"bytes32[]","numberOfBytes":"32","base":"t_bytes32"},"t_array(t_bytes4)dyn_storage":{"encoding":"dynamic_array","label":"bytes4[]","numberOfBytes":"32","base":"t_bytes4"},"t_array(t_string_storage)dyn_storage":{"encoding":"dynamic_array","label":"string[]","numberOfBytes":"32","base":"t_string_storage"},"t_array(t_struct(FuzzInterface)12219_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzInterface[]","numberOfBytes":"32","base":"t_struct(FuzzInterface)12219_storage"},"t_array(t_struct(FuzzSelector)12213_storage)dyn_storage":{"encoding":"dynamic_array","label":"struct StdInvariant.FuzzSelector[]","numberOfBytes":"32","base":"t_struct(FuzzSelector)12213_storage"},"t_bool":{"encoding":"inplace","label":"bool","numberOfBytes":"1"},"t_bytes32":{"encoding":"inplace","label":"bytes32","numberOfBytes":"32"},"t_bytes4":{"encoding":"inplace","label":"bytes4","numberOfBytes":"4"},"t_bytes_storage":{"encoding":"bytes","label":"bytes","numberOfBytes":"32"},"t_contract(Registry)2295":{"encoding":"inplace","label":"contract Registry","numberOfBytes":"20"},"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))":{"encoding":"mapping","key":"t_address","label":"mapping(address => mapping(bytes4 => mapping(bytes32 => struct FindData)))","numberOfBytes":"32","value":"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))"},"t_mapping(t_bytes32,t_struct(FindData)13210_storage)":{"encoding":"mapping","key":"t_bytes32","label":"mapping(bytes32 => struct FindData)","numberOfBytes":"32","value":"t_struct(FindData)13210_storage"},"t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage))":{"encoding":"mapping","key":"t_bytes4","label":"mapping(bytes4 => mapping(bytes32 => struct FindData))","numberOfBytes":"32","value":"t_mapping(t_bytes32,t_struct(FindData)13210_storage)"},"t_mapping(t_string_memory_ptr,t_string_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => string)","numberOfBytes":"32","value":"t_string_storage"},"t_mapping(t_string_memory_ptr,t_struct(Chain)8543_storage)":{"encoding":"mapping","key":"t_string_memory_ptr","label":"mapping(string => struct StdChains.Chain)","numberOfBytes":"32","value":"t_struct(Chain)8543_storage"},"t_mapping(t_uint256,t_string_storage)":{"encoding":"mapping","key":"t_uint256","label":"mapping(uint256 => string)","numberOfBytes":"32","value":"t_string_storage"},"t_string_memory_ptr":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_struct(Chain)8543_storage":{"encoding":"inplace","label":"struct StdChains.Chain","numberOfBytes":"128","members":[{"astId":8536,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":8538,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chainId","offset":0,"slot":"1","type":"t_uint256"},{"astId":8540,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"chainAlias","offset":0,"slot":"2","type":"t_string_storage"},{"astId":8542,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"rpcUrl","offset":0,"slot":"3","type":"t_string_storage"}]},"t_struct(FindData)13210_storage":{"encoding":"inplace","label":"struct FindData","numberOfBytes":"128","members":[{"astId":13203,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"slot","offset":0,"slot":"0","type":"t_uint256"},{"astId":13205,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"offsetLeft","offset":0,"slot":"1","type":"t_uint256"},{"astId":13207,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"offsetRight","offset":0,"slot":"2","type":"t_uint256"},{"astId":13209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"found","offset":0,"slot":"3","type":"t_bool"}]},"t_struct(FuzzInterface)12219_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzInterface","numberOfBytes":"64","members":[{"astId":12215,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12218,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"artifacts","offset":0,"slot":"1","type":"t_array(t_string_storage)dyn_storage"}]},"t_struct(FuzzSelector)12213_storage":{"encoding":"inplace","label":"struct StdInvariant.FuzzSelector","numberOfBytes":"64","members":[{"astId":12209,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"addr","offset":0,"slot":"0","type":"t_address"},{"astId":12212,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"selectors","offset":0,"slot":"1","type":"t_array(t_bytes4)dyn_storage"}]},"t_struct(StdStorage)13235_storage":{"encoding":"inplace","label":"struct StdStorage","numberOfBytes":"256","members":[{"astId":13219,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"finds","offset":0,"slot":"0","type":"t_mapping(t_address,t_mapping(t_bytes4,t_mapping(t_bytes32,t_struct(FindData)13210_storage)))"},{"astId":13222,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_keys","offset":0,"slot":"1","type":"t_array(t_bytes32)dyn_storage"},{"astId":13224,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_sig","offset":0,"slot":"2","type":"t_bytes4"},{"astId":13226,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_depth","offset":0,"slot":"3","type":"t_uint256"},{"astId":13228,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_target","offset":0,"slot":"4","type":"t_address"},{"astId":13230,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_set","offset":0,"slot":"5","type":"t_bytes32"},{"astId":13232,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_enable_packed_slots","offset":0,"slot":"6","type":"t_bool"},{"astId":13234,"contract":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol:RegistrySetupFull","label":"_calldata","offset":0,"slot":"7","type":"t_bytes_storage"}]},"t_uint256":{"encoding":"inplace","label":"uint256","numberOfBytes":"32"}}},"ast":{"absolutePath":"lib/allo-v2/test/foundry/shared/RegistrySetup.sol","id":5297,"exportedSymbols":{"Accounts":[5026],"Metadata":[3098],"Registry":[2295],"RegistrySetup":[5132],"RegistrySetupFull":[5296],"StdAssertions":[8503],"StdChains":[9285],"StdCheats":[12138],"StdInvariant":[12463],"StdStorage":[13235],"StdStyle":[16405],"StdUtils":[17783],"Test":[17835],"TestBase":[5834],"Vm":[21485],"console":[29549],"console2":[37674],"safeconsole":[52399],"stdError":[12204],"stdJson":[13055],"stdMath":[13197],"stdStorage":[15194],"stdToml":[16997]},"nodeType":"SourceUnit","src":"42:2823:17","nodes":[{"id":5089,"nodeType":"PragmaDirective","src":"42:24:17","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":5090,"nodeType":"ImportDirective","src":"68:28:17","nodes":[],"absolutePath":"lib/forge-std/src/Test.sol","file":"forge-std/Test.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":17836,"symbolAliases":[],"unitAlias":""},{"id":5092,"nodeType":"ImportDirective","src":"98:62:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/Registry.sol","file":"../../../contracts/core/Registry.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":2296,"symbolAliases":[{"foreign":{"id":5091,"name":"Registry","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":2295,"src":"106:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5094,"nodeType":"ImportDirective","src":"161:72:17","nodes":[],"absolutePath":"lib/allo-v2/contracts/core/libraries/Metadata.sol","file":"../../../contracts/core/libraries/Metadata.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":3099,"symbolAliases":[{"foreign":{"id":5093,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"169:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5096,"nodeType":"ImportDirective","src":"234:40:17","nodes":[],"absolutePath":"lib/allo-v2/test/foundry/shared/Accounts.sol","file":"./Accounts.sol","nameLocation":"-1:-1:-1","scope":5297,"sourceUnit":5027,"symbolAliases":[{"foreign":{"id":5095,"name":"Accounts","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5026,"src":"242:8:17","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":5132,"nodeType":"ContractDefinition","src":"393:304:17","nodes":[{"id":5104,"nodeType":"VariableDeclaration","src":"440:28:17","nodes":[],"constant":false,"mutability":"mutable","name":"_registry_","nameLocation":"458:10:17","scope":5132,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5103,"nodeType":"UserDefinedTypeName","pathNode":{"id":5102,"name":"Registry","nameLocations":["440:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"440:8:17"},"referencedDeclaration":2295,"src":"440:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"},{"id":5122,"nodeType":"FunctionDefinition","src":"475:129:17","nodes":[],"body":{"id":5121,"nodeType":"Block","src":"511:93:17","nodes":[],"statements":[{"expression":{"id":5112,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5107,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"521:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"id":5110,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"NewExpression","src":"534:12:17","typeDescriptions":{"typeIdentifier":"t_function_creation_nonpayable$__$returns$_t_contract$_Registry_$2295_$","typeString":"function () returns (contract Registry)"},"typeName":{"id":5109,"nodeType":"UserDefinedTypeName","pathNode":{"id":5108,"name":"Registry","nameLocations":["538:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"538:8:17"},"referencedDeclaration":2295,"src":"538:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}}},"id":5111,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"534:14:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"src":"521:27:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5113,"nodeType":"ExpressionStatement","src":"521:27:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5117,"name":"registry_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4675,"src":"580:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5118,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"580:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5114,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"558:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"569:10:17","memberName":"initialize","nodeType":"MemberAccess","referencedDeclaration":1578,"src":"558:21:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5119,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"558:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5120,"nodeType":"ExpressionStatement","src":"558:39:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetup","nameLocation":"484:15:17","parameters":{"id":5105,"nodeType":"ParameterList","parameters":[],"src":"499:2:17"},"returnParameters":{"id":5106,"nodeType":"ParameterList","parameters":[],"src":"511:0:17"},"scope":5132,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5131,"nodeType":"FunctionDefinition","src":"610:85:17","nodes":[],"body":{"id":5130,"nodeType":"Block","src":"661:34:17","nodes":[],"statements":[{"expression":{"id":5128,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"678:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"functionReturnParameters":5127,"id":5129,"nodeType":"Return","src":"671:17:17"}]},"functionSelector":"7b103999","implemented":true,"kind":"function","modifiers":[],"name":"registry","nameLocation":"619:8:17","parameters":{"id":5123,"nodeType":"ParameterList","parameters":[],"src":"627:2:17"},"returnParameters":{"id":5127,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5126,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5131,"src":"651:8:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"},"typeName":{"id":5125,"nodeType":"UserDefinedTypeName","pathNode":{"id":5124,"name":"Registry","nameLocations":["651:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":2295,"src":"651:8:17"},"referencedDeclaration":2295,"src":"651:8:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"visibility":"internal"}],"src":"650:10:17"},"scope":5132,"stateMutability":"view","virtual":false,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5098,"name":"Test","nameLocations":["419:4:17"],"nodeType":"IdentifierPath","referencedDeclaration":17835,"src":"419:4:17"},"id":5099,"nodeType":"InheritanceSpecifier","src":"419:4:17"},{"baseName":{"id":5100,"name":"Accounts","nameLocations":["425:8:17"],"nodeType":"IdentifierPath","referencedDeclaration":5026,"src":"425:8:17"},"id":5101,"nodeType":"InheritanceSpecifier","src":"425:8:17"}],"canonicalName":"RegistrySetup","contractDependencies":[],"contractKind":"contract","documentation":{"id":5097,"nodeType":"StructuredDocumentation","src":"276:117:17","text":"@title RegistrySetup\n @notice This contract is used to setup an empty Registry contract for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetup","nameLocation":"402:13:17","scope":5297,"usedErrors":[]},{"id":5296,"nodeType":"ContractDefinition","src":"833:2031:17","nodes":[{"id":5137,"nodeType":"VariableDeclaration","src":"883:32:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileId_","nameLocation":"900:15:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5136,"name":"bytes32","nodeType":"ElementaryTypeName","src":"883:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5139,"nodeType":"VariableDeclaration","src":"921:36:17","nodes":[],"constant":false,"mutability":"mutable","name":"_poolProfileAnchor_","nameLocation":"938:19:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5138,"name":"address","nodeType":"ElementaryTypeName","src":"921:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5141,"nodeType":"VariableDeclaration","src":"964:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Id_","nameLocation":"981:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5140,"name":"bytes32","nodeType":"ElementaryTypeName","src":"964:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5143,"nodeType":"VariableDeclaration","src":"999:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile1Anchor_","nameLocation":"1016:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5142,"name":"address","nodeType":"ElementaryTypeName","src":"999:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5145,"nodeType":"VariableDeclaration","src":"1039:29:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Id_","nameLocation":"1056:12:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5144,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1039:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"id":5147,"nodeType":"VariableDeclaration","src":"1074:33:17","nodes":[],"constant":false,"mutability":"mutable","name":"_profile2Anchor_","nameLocation":"1091:16:17","scope":5296,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5146,"name":"address","nodeType":"ElementaryTypeName","src":"1074:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"id":5247,"nodeType":"FunctionDefinition","src":"1114:930:17","nodes":[],"body":{"id":5246,"nodeType":"Block","src":"1154:890:17","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":5150,"name":"__RegistrySetup","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5122,"src":"1164:15:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":5151,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1164:17:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5152,"nodeType":"ExpressionStatement","src":"1164:17:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5156,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1201:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5157,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1201:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5153,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1192:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5155,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1195:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1192:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5158,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1192:22:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5159,"nodeType":"ExpressionStatement","src":"1192:22:17"},{"expression":{"id":5174,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5160,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1224:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5163,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1280:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"506f6f6c2050726f66696c652031","id":5164,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1283:16:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},"value":"Pool Profile 1"},{"arguments":[{"hexValue":"31","id":5166,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1321:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"506f6f6c50726f66696c6531","id":5167,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1333:14:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""},"value":"PoolProfile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f67171f94b553bc18f3436392ab5b1a6c6075d142911addaba07f9932e807028","typeString":"literal_string \"PoolProfile1\""}],"id":5165,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1301:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5168,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1311:8:17","1324:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1301:48:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5169,"name":"pool_admin","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4753,"src":"1351:10:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5170,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1351:12:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5171,"name":"pool_managers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4817,"src":"1365:13:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1365:15:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_cfdb29660678cfa126d648cb1a4f5ce763c1e1204e820590687579a35d4b28f4","typeString":"literal_string \"Pool Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5161,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1242:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5162,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1253:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1242:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5173,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1242:148:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1224:166:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5175,"nodeType":"ExpressionStatement","src":"1224:166:17"},{"expression":{"id":5182,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5176,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"1400:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5179,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"1448:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5177,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1422:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5178,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1433:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1422:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5180,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1422:42:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5181,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1465:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1422:49:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1400:71:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5183,"nodeType":"ExpressionStatement","src":"1400:71:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5187,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1491:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5188,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1491:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5184,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1482:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5186,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1485:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1482:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5190,"nodeType":"ExpressionStatement","src":"1482:26:17"},{"expression":{"id":5205,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5191,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1518:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5194,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1571:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652031","id":5195,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1574:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},"value":"Profile 1"},{"arguments":[{"hexValue":"31","id":5197,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1607:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6531","id":5198,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1619:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""},"value":"Profile1"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_d28bcd24e2e164eb1cb6c81d71a03069dd8b48e2f319680c98ba010be8944d6d","typeString":"literal_string \"Profile1\""}],"id":5196,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1587:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5199,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1597:8:17","1610:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1587:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5200,"name":"profile1_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4827,"src":"1633:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5201,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1633:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5202,"name":"profile1_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4891,"src":"1651:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5203,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1651:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_7a4d1a86b77644d9aa7e12702075d0cc1d67dd228b7576543777572405c3e57d","typeString":"literal_string \"Profile 1\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5192,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1533:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5193,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1544:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1533:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1533:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1518:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5206,"nodeType":"ExpressionStatement","src":"1518:161:17"},{"expression":{"id":5213,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5207,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"1689:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5210,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"1734:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5208,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1708:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5209,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1719:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1708:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5211,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1708:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5212,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"1748:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1708:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1689:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5214,"nodeType":"ExpressionStatement","src":"1689:65:17"},{"expression":{"arguments":[{"arguments":[],"expression":{"argumentTypes":[],"id":5218,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1774:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5219,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1774:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":5215,"name":"vm","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5827,"src":"1765:2:17","typeDescriptions":{"typeIdentifier":"t_contract$_Vm_$21485","typeString":"contract Vm"}},"id":5217,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1768:5:17","memberName":"prank","nodeType":"MemberAccess","referencedDeclaration":21138,"src":"1765:8:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$returns$__$","typeString":"function (address) external"}},"id":5220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1765:26:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":5221,"nodeType":"ExpressionStatement","src":"1765:26:17"},{"expression":{"id":5236,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5222,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"1801:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"arguments":[{"hexValue":"30","id":5225,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1854:1:17","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},{"hexValue":"50726f66696c652032","id":5226,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1857:11:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},"value":"Profile 2"},{"arguments":[{"hexValue":"31","id":5228,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"1890:1:17","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},{"hexValue":"50726f66696c6532","id":5229,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1902:10:17","typeDescriptions":{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""},"value":"Profile2"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},{"typeIdentifier":"t_stringliteral_f54d7fb3952364f7566be93625e44393de35ac48ada574494f41163506f729ca","typeString":"literal_string \"Profile2\""}],"id":5227,"name":"Metadata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":3098,"src":"1870:8:17","typeDescriptions":{"typeIdentifier":"t_type$_t_struct$_Metadata_$3098_storage_ptr_$","typeString":"type(struct Metadata storage pointer)"}},"id":5230,"isConstant":false,"isLValue":false,"isPure":true,"kind":"structConstructorCall","lValueRequested":false,"nameLocations":["1880:8:17","1893:7:17"],"names":["protocol","pointer"],"nodeType":"FunctionCall","src":"1870:44:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5231,"name":"profile2_owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4901,"src":"1916:14:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_address_$","typeString":"function () returns (address)"}},"id":5232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1916:16:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[],"expression":{"argumentTypes":[],"id":5233,"name":"profile2_members","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4965,"src":"1934:16:17","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$_t_array$_t_address_$dyn_memory_ptr_$","typeString":"function () returns (address[] memory)"}},"id":5234,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1934:18:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},{"typeIdentifier":"t_stringliteral_937ec7a665f78170bc3bb3b9c6576f30e49f3c58eb7105b0778843f3f72198b2","typeString":"literal_string \"Profile 2\""},{"typeIdentifier":"t_struct$_Metadata_$3098_memory_ptr","typeString":"struct Metadata memory"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}],"expression":{"id":5223,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1816:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1827:13:17","memberName":"createProfile","nodeType":"MemberAccess","referencedDeclaration":1756,"src":"1816:24:17","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_struct$_Metadata_$3098_memory_ptr_$_t_address_$_t_array$_t_address_$dyn_memory_ptr_$returns$_t_bytes32_$","typeString":"function (uint256,string memory,struct Metadata memory,address,address[] memory) external returns (bytes32)"}},"id":5235,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1816:146:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"src":"1801:161:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"id":5237,"nodeType":"ExpressionStatement","src":"1801:161:17"},{"expression":{"id":5244,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":5238,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"1972:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"expression":{"arguments":[{"id":5241,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2017:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":5239,"name":"_registry_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5104,"src":"1991:10:17","typeDescriptions":{"typeIdentifier":"t_contract$_Registry_$2295","typeString":"contract Registry"}},"id":5240,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2002:14:17","memberName":"getProfileById","nodeType":"MemberAccess","referencedDeclaration":1592,"src":"1991:25:17","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes32_$returns$_t_struct$_Profile_$2629_memory_ptr_$","typeString":"function (bytes32) view external returns (struct IRegistry.Profile memory)"}},"id":5242,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1991:39:17","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_struct$_Profile_$2629_memory_ptr","typeString":"struct IRegistry.Profile memory"}},"id":5243,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"2031:6:17","memberName":"anchor","nodeType":"MemberAccess","referencedDeclaration":2628,"src":"1991:46:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1972:65:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":5245,"nodeType":"ExpressionStatement","src":"1972:65:17"}]},"implemented":true,"kind":"function","modifiers":[],"name":"__RegistrySetupFull","nameLocation":"1123:19:17","parameters":{"id":5148,"nodeType":"ParameterList","parameters":[],"src":"1142:2:17"},"returnParameters":{"id":5149,"nodeType":"ParameterList","parameters":[],"src":"1154:0:17"},"scope":5296,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":5255,"nodeType":"FunctionDefinition","src":"2050:103:17","nodes":[],"body":{"id":5254,"nodeType":"Block","src":"2114:39:17","nodes":[],"statements":[{"expression":{"id":5252,"name":"_poolProfileId_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5137,"src":"2131:15:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5251,"id":5253,"nodeType":"Return","src":"2124:22:17"}]},"functionSelector":"fd325c60","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_id","nameLocation":"2059:14:17","parameters":{"id":5248,"nodeType":"ParameterList","parameters":[],"src":"2073:2:17"},"returnParameters":{"id":5251,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5250,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5255,"src":"2105:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5249,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2105:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2104:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5263,"nodeType":"FunctionDefinition","src":"2159:111:17","nodes":[],"body":{"id":5262,"nodeType":"Block","src":"2227:43:17","nodes":[],"statements":[{"expression":{"id":5260,"name":"_poolProfileAnchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5139,"src":"2244:19:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5259,"id":5261,"nodeType":"Return","src":"2237:26:17"}]},"functionSelector":"176effb3","implemented":true,"kind":"function","modifiers":[],"name":"poolProfile_anchor","nameLocation":"2168:18:17","parameters":{"id":5256,"nodeType":"ParameterList","parameters":[],"src":"2186:2:17"},"returnParameters":{"id":5259,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5258,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5263,"src":"2218:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5257,"name":"address","nodeType":"ElementaryTypeName","src":"2218:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2217:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5271,"nodeType":"FunctionDefinition","src":"2276:97:17","nodes":[],"body":{"id":5270,"nodeType":"Block","src":"2337:36:17","nodes":[],"statements":[{"expression":{"id":5268,"name":"_profile1Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5141,"src":"2354:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5267,"id":5269,"nodeType":"Return","src":"2347:19:17"}]},"functionSelector":"39f56f7f","implemented":true,"kind":"function","modifiers":[],"name":"profile1_id","nameLocation":"2285:11:17","parameters":{"id":5264,"nodeType":"ParameterList","parameters":[],"src":"2296:2:17"},"returnParameters":{"id":5267,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5266,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5271,"src":"2328:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5265,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2328:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2327:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5279,"nodeType":"FunctionDefinition","src":"2461:105:17","nodes":[],"body":{"id":5278,"nodeType":"Block","src":"2526:40:17","nodes":[],"statements":[{"expression":{"id":5276,"name":"_profile1Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5143,"src":"2543:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5275,"id":5277,"nodeType":"Return","src":"2536:23:17"}]},"functionSelector":"c5d7d73b","implemented":true,"kind":"function","modifiers":[],"name":"profile1_anchor","nameLocation":"2470:15:17","parameters":{"id":5272,"nodeType":"ParameterList","parameters":[],"src":"2485:2:17"},"returnParameters":{"id":5275,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5274,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5279,"src":"2517:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5273,"name":"address","nodeType":"ElementaryTypeName","src":"2517:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2516:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5287,"nodeType":"FunctionDefinition","src":"2572:97:17","nodes":[],"body":{"id":5286,"nodeType":"Block","src":"2633:36:17","nodes":[],"statements":[{"expression":{"id":5284,"name":"_profile2Id_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5145,"src":"2650:12:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"functionReturnParameters":5283,"id":5285,"nodeType":"Return","src":"2643:19:17"}]},"functionSelector":"18540361","implemented":true,"kind":"function","modifiers":[],"name":"profile2_id","nameLocation":"2581:11:17","parameters":{"id":5280,"nodeType":"ParameterList","parameters":[],"src":"2592:2:17"},"returnParameters":{"id":5283,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5282,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5287,"src":"2624:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":5281,"name":"bytes32","nodeType":"ElementaryTypeName","src":"2624:7:17","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"2623:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":5295,"nodeType":"FunctionDefinition","src":"2757:105:17","nodes":[],"body":{"id":5294,"nodeType":"Block","src":"2822:40:17","nodes":[],"statements":[{"expression":{"id":5292,"name":"_profile2Anchor_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":5147,"src":"2839:16:17","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"functionReturnParameters":5291,"id":5293,"nodeType":"Return","src":"2832:23:17"}]},"functionSelector":"3554642a","implemented":true,"kind":"function","modifiers":[],"name":"profile2_anchor","nameLocation":"2766:15:17","parameters":{"id":5288,"nodeType":"ParameterList","parameters":[],"src":"2781:2:17"},"returnParameters":{"id":5291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":5290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":5295,"src":"2813:7:17","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":5289,"name":"address","nodeType":"ElementaryTypeName","src":"2813:7:17","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2812:9:17"},"scope":5296,"stateMutability":"view","virtual":true,"visibility":"public"}],"abstract":false,"baseContracts":[{"baseName":{"id":5134,"name":"RegistrySetup","nameLocations":["863:13:17"],"nodeType":"IdentifierPath","referencedDeclaration":5132,"src":"863:13:17"},"id":5135,"nodeType":"InheritanceSpecifier","src":"863:13:17"}],"canonicalName":"RegistrySetupFull","contractDependencies":[],"contractKind":"contract","documentation":{"id":5133,"nodeType":"StructuredDocumentation","src":"699:134:17","text":"@title RegistrySetupFull\n @notice This contract is used to setup a Registry contract with two identities for testing purposes."},"fullyImplemented":true,"linearizedBaseContracts":[5296,5132,5026,17835,17783,12463,12138,11345,9285,8503,5834,5831],"name":"RegistrySetupFull","nameLocation":"842:17:17","scope":5297,"usedErrors":[]}],"license":"AGPL-3.0-only"},"id":17} \ No newline at end of file diff --git a/pkg/contracts/out/SafeERC20.sol/SafeERC20.json b/pkg/contracts/out/SafeERC20.sol/SafeERC20.json index bde34417a..47ec8e677 100644 --- a/pkg/contracts/out/SafeERC20.sol/SafeERC20.json +++ b/pkg/contracts/out/SafeERC20.sol/SafeERC20.json @@ -1 +1 @@ -{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220451054a5530f63c30949f5faaf951ae6987e41d70178f4539e933ffa2c290dbb64736f6c63430008130033","sourceMap":"701:6234:76:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6234:76;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea2646970667358221220451054a5530f63c30949f5faaf951ae6987e41d70178f4539e933ffa2c290dbb64736f6c63430008130033","sourceMap":"701:6234:76:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71\",\"dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68\",\"dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xb264c03a3442eb37a68ad620cefd1182766b58bee6cec40343480392d6b14d69","urls":["bzz-raw://28879d01fd22c07b44f006612775f8577defbe459cb01685c5e25cd518c91a71","dweb:/ipfs/QmVgfkwv2Fxw6hhTcDUZhE7NkoSKjab3ipM7UaRbt6uXb5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0xabefac93435967b4d36a4fabcbdbb918d1f0b7ae3c3d85bc30923b326c927ed1","urls":["bzz-raw://9d213d3befca47da33f6db0310826bcdb148299805c10d77175ecfe1d06a9a68","dweb:/ipfs/QmRgCn6SP1hbBkExUADFuDo8xkT4UU47yjNF5FhCeRbQmS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","id":57338,"exportedSymbols":{"Address":[57712],"IERC20":[56900],"IERC20Permit":[56961],"SafeERC20":[57337]},"nodeType":"SourceUnit","src":"115:6821:76","nodes":[{"id":56963,"nodeType":"PragmaDirective","src":"115:23:76","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56964,"nodeType":"ImportDirective","src":"140:23:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":57338,"sourceUnit":56901,"symbolAliases":[],"unitAlias":""},{"id":56965,"nodeType":"ImportDirective","src":"164:40:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","nameLocation":"-1:-1:-1","scope":57338,"sourceUnit":56962,"symbolAliases":[],"unitAlias":""},{"id":56966,"nodeType":"ImportDirective","src":"205:36:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":57338,"sourceUnit":57713,"symbolAliases":[],"unitAlias":""},{"id":57337,"nodeType":"ContractDefinition","src":"701:6234:76","nodes":[{"id":56970,"nodeType":"UsingForDirective","src":"725:26:76","nodes":[],"global":false,"libraryName":{"id":56968,"name":"Address","nameLocations":["731:7:76"],"nodeType":"IdentifierPath","referencedDeclaration":57712,"src":"731:7:76"},"typeName":{"id":56969,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":56994,"nodeType":"FunctionDefinition","src":"941:175:76","nodes":[],"body":{"id":56993,"nodeType":"Block","src":"1013:103:76","nodes":[],"statements":[{"expression":{"arguments":[{"id":56982,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56974,"src":"1043:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":56985,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56974,"src":"1073:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":56986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:76","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"1073:14:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":56987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:76","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":56988,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"1098:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56978,"src":"1102:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":56990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56981,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"1023:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":56991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56992,"nodeType":"ExpressionStatement","src":"1023:86:76"}]},"documentation":{"id":56971,"nodeType":"StructuredDocumentation","src":"757:179:76","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:76","parameters":{"id":56979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56974,"mutability":"mutable","name":"token","nameLocation":"970:5:76","nodeType":"VariableDeclaration","scope":56994,"src":"963:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":56973,"nodeType":"UserDefinedTypeName","pathNode":{"id":56972,"name":"IERC20","nameLocations":["963:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"963:6:76"},"referencedDeclaration":56900,"src":"963:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":56976,"mutability":"mutable","name":"to","nameLocation":"985:2:76","nodeType":"VariableDeclaration","scope":56994,"src":"977:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56975,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56978,"mutability":"mutable","name":"value","nameLocation":"997:5:76","nodeType":"VariableDeclaration","scope":56994,"src":"989:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56977,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:76"},"returnParameters":{"id":56980,"nodeType":"ParameterList","parameters":[],"src":"1013:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57021,"nodeType":"FunctionDefinition","src":"1355:203:76","nodes":[],"body":{"id":57020,"nodeType":"Block","src":"1445:113:76","nodes":[],"statements":[{"expression":{"arguments":[{"id":57008,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56998,"src":"1475:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57011,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56998,"src":"1505:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:76","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":56899,"src":"1505:18:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":57013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:76","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57014,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57000,"src":"1534:4:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57015,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57002,"src":"1540:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57016,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57004,"src":"1544:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57007,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"1455:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57019,"nodeType":"ExpressionStatement","src":"1455:96:76"}]},"documentation":{"id":56995,"nodeType":"StructuredDocumentation","src":"1122:228:76","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:76","parameters":{"id":57005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56998,"mutability":"mutable","name":"token","nameLocation":"1388:5:76","nodeType":"VariableDeclaration","scope":57021,"src":"1381:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":56997,"nodeType":"UserDefinedTypeName","pathNode":{"id":56996,"name":"IERC20","nameLocations":["1381:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1381:6:76"},"referencedDeclaration":56900,"src":"1381:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57000,"mutability":"mutable","name":"from","nameLocation":"1403:4:76","nodeType":"VariableDeclaration","scope":57021,"src":"1395:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56999,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57002,"mutability":"mutable","name":"to","nameLocation":"1417:2:76","nodeType":"VariableDeclaration","scope":57021,"src":"1409:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57001,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57004,"mutability":"mutable","name":"value","nameLocation":"1429:5:76","nodeType":"VariableDeclaration","scope":57021,"src":"1421:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:76"},"returnParameters":{"id":57006,"nodeType":"ParameterList","parameters":[],"src":"1445:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57065,"nodeType":"FunctionDefinition","src":"1818:573:76","nodes":[],"body":{"id":57064,"nodeType":"Block","src":"1894:497:76","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57033,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57029,"src":"2143:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57036,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":57041,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}],"id":57040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57039,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:76","typeDescriptions":{}}},"id":57042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57043,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"2190:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57037,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57025,"src":"2159:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:76","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":56877,"src":"2159:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57047,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":57049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":57032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2121:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57051,"nodeType":"ExpressionStatement","src":"2121:163:76"},{"expression":{"arguments":[{"id":57053,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57025,"src":"2314:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57056,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57025,"src":"2344:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"2344:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:76","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57059,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"2368:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57029,"src":"2377:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57052,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"2294:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57063,"nodeType":"ExpressionStatement","src":"2294:90:76"}]},"documentation":{"id":57022,"nodeType":"StructuredDocumentation","src":"1564:249:76","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:76","parameters":{"id":57030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57025,"mutability":"mutable","name":"token","nameLocation":"1846:5:76","nodeType":"VariableDeclaration","scope":57065,"src":"1839:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57024,"nodeType":"UserDefinedTypeName","pathNode":{"id":57023,"name":"IERC20","nameLocations":["1839:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1839:6:76"},"referencedDeclaration":56900,"src":"1839:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57027,"mutability":"mutable","name":"spender","nameLocation":"1861:7:76","nodeType":"VariableDeclaration","scope":57065,"src":"1853:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57026,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57029,"mutability":"mutable","name":"value","nameLocation":"1878:5:76","nodeType":"VariableDeclaration","scope":57065,"src":"1870:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57028,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:76"},"returnParameters":{"id":57031,"nodeType":"ParameterList","parameters":[],"src":"1894:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57102,"nodeType":"FunctionDefinition","src":"2582:280:76","nodes":[],"body":{"id":57101,"nodeType":"Block","src":"2668:194:76","nodes":[],"statements":[{"assignments":[57077],"declarations":[{"constant":false,"id":57077,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:76","nodeType":"VariableDeclaration","scope":57101,"src":"2678:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57076,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57086,"initialValue":{"arguments":[{"arguments":[{"id":57082,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}],"id":57081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57080,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:76","typeDescriptions":{}}},"id":57083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57084,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57071,"src":"2732:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57078,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57069,"src":"2701:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:76","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":56877,"src":"2701:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:76"},{"expression":{"arguments":[{"id":57088,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57069,"src":"2770:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57091,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57069,"src":"2800:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"2800:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:76","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57094,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57071,"src":"2824:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57095,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57077,"src":"2833:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":57096,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57073,"src":"2848:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57087,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"2750:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57100,"nodeType":"ExpressionStatement","src":"2750:105:76"}]},"documentation":{"id":57066,"nodeType":"StructuredDocumentation","src":"2397:180:76","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:76","parameters":{"id":57074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57069,"mutability":"mutable","name":"token","nameLocation":"2620:5:76","nodeType":"VariableDeclaration","scope":57102,"src":"2613:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57068,"nodeType":"UserDefinedTypeName","pathNode":{"id":57067,"name":"IERC20","nameLocations":["2613:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"2613:6:76"},"referencedDeclaration":56900,"src":"2613:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57071,"mutability":"mutable","name":"spender","nameLocation":"2635:7:76","nodeType":"VariableDeclaration","scope":57102,"src":"2627:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57070,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57073,"mutability":"mutable","name":"value","nameLocation":"2652:5:76","nodeType":"VariableDeclaration","scope":57102,"src":"2644:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57072,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:76"},"returnParameters":{"id":57075,"nodeType":"ParameterList","parameters":[],"src":"2668:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57147,"nodeType":"FunctionDefinition","src":"3053:407:76","nodes":[],"body":{"id":57146,"nodeType":"Block","src":"3139:321:76","nodes":[],"statements":[{"id":57145,"nodeType":"UncheckedBlock","src":"3149:305:76","statements":[{"assignments":[57114],"declarations":[{"constant":false,"id":57114,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:76","nodeType":"VariableDeclaration","scope":57145,"src":"3173:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57113,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57123,"initialValue":{"arguments":[{"arguments":[{"id":57119,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}],"id":57118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57117,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:76","typeDescriptions":{}}},"id":57120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57121,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57108,"src":"3227:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57115,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"3196:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:76","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":56877,"src":"3196:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57125,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57114,"src":"3257:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":57126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57110,"src":"3273:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":57128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":57124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3249:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57130,"nodeType":"ExpressionStatement","src":"3249:75:76"},{"expression":{"arguments":[{"id":57132,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"3358:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57135,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"3388:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"3388:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:76","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57138,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57108,"src":"3412:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57139,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57114,"src":"3421:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":57140,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57110,"src":"3436:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57131,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"3338:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57144,"nodeType":"ExpressionStatement","src":"3338:105:76"}]}]},"documentation":{"id":57103,"nodeType":"StructuredDocumentation","src":"2868:180:76","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:76","parameters":{"id":57111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57106,"mutability":"mutable","name":"token","nameLocation":"3091:5:76","nodeType":"VariableDeclaration","scope":57147,"src":"3084:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57105,"nodeType":"UserDefinedTypeName","pathNode":{"id":57104,"name":"IERC20","nameLocations":["3084:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"3084:6:76"},"referencedDeclaration":56900,"src":"3084:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57108,"mutability":"mutable","name":"spender","nameLocation":"3106:7:76","nodeType":"VariableDeclaration","scope":57147,"src":"3098:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57107,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57110,"mutability":"mutable","name":"value","nameLocation":"3123:5:76","nodeType":"VariableDeclaration","scope":57147,"src":"3115:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57109,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:76"},"returnParameters":{"id":57112,"nodeType":"ParameterList","parameters":[],"src":"3139:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57194,"nodeType":"FunctionDefinition","src":"3779:410:76","nodes":[],"body":{"id":57193,"nodeType":"Block","src":"3856:333:76","nodes":[],"statements":[{"assignments":[57159],"declarations":[{"constant":false,"id":57159,"mutability":"mutable","name":"approvalCall","nameLocation":"3879:12:76","nodeType":"VariableDeclaration","scope":57193,"src":"3866:25:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57158,"name":"bytes","nodeType":"ElementaryTypeName","src":"3866:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57168,"initialValue":{"arguments":[{"expression":{"expression":{"id":57162,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"3917:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3923:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"3917:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3931:8:76","memberName":"selector","nodeType":"MemberAccess","src":"3917:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57165,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57153,"src":"3941:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57155,"src":"3950:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3894:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3898:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3894:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3894:62:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3866:90:76"},{"condition":{"id":57173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3971:45:76","subExpression":{"arguments":[{"id":57170,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"3996:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"id":57171,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"4003:12:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57169,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57336,"src":"3972:23:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":57172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3972:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57192,"nodeType":"IfStatement","src":"3967:216:76","trueBody":{"id":57191,"nodeType":"Block","src":"4018:165:76","statements":[{"expression":{"arguments":[{"id":57175,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"4052:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57178,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"4082:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4088:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"4082:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4096:8:76","memberName":"selector","nodeType":"MemberAccess","src":"4082:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57181,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57153,"src":"4106:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":57182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4115:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":57176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4059:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4063:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4059:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4059:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57174,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"4032:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4032:86:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57185,"nodeType":"ExpressionStatement","src":"4032:86:76"},{"expression":{"arguments":[{"id":57187,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"4152:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"id":57188,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"4159:12:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57186,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"4132:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4132:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57190,"nodeType":"ExpressionStatement","src":"4132:40:76"}]}}]},"documentation":{"id":57148,"nodeType":"StructuredDocumentation","src":"3466:308:76","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Meant to be used with tokens that require the approval\n to be set to zero before setting it to a non-zero value, such as USDT."},"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3788:12:76","parameters":{"id":57156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57151,"mutability":"mutable","name":"token","nameLocation":"3808:5:76","nodeType":"VariableDeclaration","scope":57194,"src":"3801:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57150,"nodeType":"UserDefinedTypeName","pathNode":{"id":57149,"name":"IERC20","nameLocations":["3801:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"3801:6:76"},"referencedDeclaration":56900,"src":"3801:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57153,"mutability":"mutable","name":"spender","nameLocation":"3823:7:76","nodeType":"VariableDeclaration","scope":57194,"src":"3815:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57152,"name":"address","nodeType":"ElementaryTypeName","src":"3815:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57155,"mutability":"mutable","name":"value","nameLocation":"3840:5:76","nodeType":"VariableDeclaration","scope":57194,"src":"3832:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57154,"name":"uint256","nodeType":"ElementaryTypeName","src":"3832:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3800:46:76"},"returnParameters":{"id":57157,"nodeType":"ParameterList","parameters":[],"src":"3856:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57251,"nodeType":"FunctionDefinition","src":"4341:472:76","nodes":[],"body":{"id":57250,"nodeType":"Block","src":"4556:257:76","nodes":[],"statements":[{"assignments":[57216],"declarations":[{"constant":false,"id":57216,"mutability":"mutable","name":"nonceBefore","nameLocation":"4574:11:76","nodeType":"VariableDeclaration","scope":57250,"src":"4566:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57215,"name":"uint256","nodeType":"ElementaryTypeName","src":"4566:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57221,"initialValue":{"arguments":[{"id":57219,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57200,"src":"4601:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57217,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57198,"src":"4588:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"id":57218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4594:6:76","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":56954,"src":"4588:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4588:19:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4566:41:76"},{"expression":{"arguments":[{"id":57225,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57200,"src":"4630:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57226,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57202,"src":"4637:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57204,"src":"4646:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57228,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57206,"src":"4653:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57229,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57208,"src":"4663:1:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":57230,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57210,"src":"4666:1:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":57231,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57212,"src":"4669:1:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":57222,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57198,"src":"4617:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"id":57224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4623:6:76","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":56946,"src":"4617:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":57232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4617:54:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57233,"nodeType":"ExpressionStatement","src":"4617:54:76"},{"assignments":[57235],"declarations":[{"constant":false,"id":57235,"mutability":"mutable","name":"nonceAfter","nameLocation":"4689:10:76","nodeType":"VariableDeclaration","scope":57250,"src":"4681:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57234,"name":"uint256","nodeType":"ElementaryTypeName","src":"4681:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57240,"initialValue":{"arguments":[{"id":57238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57200,"src":"4715:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57236,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57198,"src":"4702:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"id":57237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4708:6:76","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":56954,"src":"4702:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4702:19:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4681:40:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57242,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57235,"src":"4739:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57243,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57216,"src":"4753:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":57244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4767:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4753:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4739:29:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":57247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4770:35:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":57241,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4731:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4731:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57249,"nodeType":"ExpressionStatement","src":"4731:75:76"}]},"documentation":{"id":57195,"nodeType":"StructuredDocumentation","src":"4195:141:76","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4350:10:76","parameters":{"id":57213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57198,"mutability":"mutable","name":"token","nameLocation":"4383:5:76","nodeType":"VariableDeclaration","scope":57251,"src":"4370:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"},"typeName":{"id":57197,"nodeType":"UserDefinedTypeName","pathNode":{"id":57196,"name":"IERC20Permit","nameLocations":["4370:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":56961,"src":"4370:12:76"},"referencedDeclaration":56961,"src":"4370:12:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":57200,"mutability":"mutable","name":"owner","nameLocation":"4406:5:76","nodeType":"VariableDeclaration","scope":57251,"src":"4398:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57199,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57202,"mutability":"mutable","name":"spender","nameLocation":"4429:7:76","nodeType":"VariableDeclaration","scope":57251,"src":"4421:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57201,"name":"address","nodeType":"ElementaryTypeName","src":"4421:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57204,"mutability":"mutable","name":"value","nameLocation":"4454:5:76","nodeType":"VariableDeclaration","scope":57251,"src":"4446:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57203,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57206,"mutability":"mutable","name":"deadline","nameLocation":"4477:8:76","nodeType":"VariableDeclaration","scope":57251,"src":"4469:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57205,"name":"uint256","nodeType":"ElementaryTypeName","src":"4469:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57208,"mutability":"mutable","name":"v","nameLocation":"4501:1:76","nodeType":"VariableDeclaration","scope":57251,"src":"4495:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57207,"name":"uint8","nodeType":"ElementaryTypeName","src":"4495:5:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57210,"mutability":"mutable","name":"r","nameLocation":"4520:1:76","nodeType":"VariableDeclaration","scope":57251,"src":"4512:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4512:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":57212,"mutability":"mutable","name":"s","nameLocation":"4539:1:76","nodeType":"VariableDeclaration","scope":57251,"src":"4531:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4531:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4360:186:76"},"returnParameters":{"id":57214,"nodeType":"ParameterList","parameters":[],"src":"4556:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57288,"nodeType":"FunctionDefinition","src":"5196:642:76","nodes":[],"body":{"id":57287,"nodeType":"Block","src":"5266:572:76","nodes":[],"statements":[{"assignments":[57261],"declarations":[{"constant":false,"id":57261,"mutability":"mutable","name":"returndata","nameLocation":"5628:10:76","nodeType":"VariableDeclaration","scope":57287,"src":"5615:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57260,"name":"bytes","nodeType":"ElementaryTypeName","src":"5615:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57270,"initialValue":{"arguments":[{"id":57267,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57257,"src":"5669:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":57268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5675:34:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":57264,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57255,"src":"5649:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":57263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5641:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57262,"name":"address","nodeType":"ElementaryTypeName","src":"5641:7:76","typeDescriptions":{}}},"id":57265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5656:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":57472,"src":"5641:27:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":57269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5641:69:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5615:95:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57272,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57261,"src":"5728:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5739:6:76","memberName":"length","nodeType":"MemberAccess","src":"5728:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5749:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5728:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57278,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57261,"src":"5765:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5778:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":57279,"name":"bool","nodeType":"ElementaryTypeName","src":"5778:4:76","typeDescriptions":{}}}],"id":57281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5777:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":57276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5754:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5758:6:76","memberName":"decode","nodeType":"MemberAccess","src":"5754:10:76","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5754:30:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5728:56:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":57284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5786:44:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":57271,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5720:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5720:111:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57286,"nodeType":"ExpressionStatement","src":"5720:111:76"}]},"documentation":{"id":57252,"nodeType":"StructuredDocumentation","src":"4819:372:76","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5205:19:76","parameters":{"id":57258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57255,"mutability":"mutable","name":"token","nameLocation":"5232:5:76","nodeType":"VariableDeclaration","scope":57288,"src":"5225:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57254,"nodeType":"UserDefinedTypeName","pathNode":{"id":57253,"name":"IERC20","nameLocations":["5225:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"5225:6:76"},"referencedDeclaration":56900,"src":"5225:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57257,"mutability":"mutable","name":"data","nameLocation":"5252:4:76","nodeType":"VariableDeclaration","scope":57288,"src":"5239:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57256,"name":"bytes","nodeType":"ElementaryTypeName","src":"5239:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5224:33:76"},"returnParameters":{"id":57259,"nodeType":"ParameterList","parameters":[],"src":"5266:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":57336,"nodeType":"FunctionDefinition","src":"6339:594:76","nodes":[],"body":{"id":57335,"nodeType":"Block","src":"6428:505:76","nodes":[],"statements":[{"assignments":[57300,57302],"declarations":[{"constant":false,"id":57300,"mutability":"mutable","name":"success","nameLocation":"6729:7:76","nodeType":"VariableDeclaration","scope":57335,"src":"6724:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57299,"name":"bool","nodeType":"ElementaryTypeName","src":"6724:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":57302,"mutability":"mutable","name":"returndata","nameLocation":"6751:10:76","nodeType":"VariableDeclaration","scope":57335,"src":"6738:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57301,"name":"bytes","nodeType":"ElementaryTypeName","src":"6738:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57310,"initialValue":{"arguments":[{"id":57308,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57294,"src":"6785:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":57305,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57292,"src":"6773:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":57304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6765:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57303,"name":"address","nodeType":"ElementaryTypeName","src":"6765:7:76","typeDescriptions":{}}},"id":57306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6780:4:76","memberName":"call","nodeType":"MemberAccess","src":"6765:19:76","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6765:25:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6723:67:76"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57311,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57300,"src":"6819:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57312,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57302,"src":"6831:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6842:6:76","memberName":"length","nodeType":"MemberAccess","src":"6831:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6852:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6831:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57318,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57302,"src":"6868:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6881:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":57319,"name":"bool","nodeType":"ElementaryTypeName","src":"6881:4:76","typeDescriptions":{}}}],"id":57321,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6880:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":57316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6857:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6861:6:76","memberName":"decode","nodeType":"MemberAccess","src":"6857:10:76","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6857:30:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6831:56:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57324,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6830:58:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:69:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":57330,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57292,"src":"6919:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":57329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6911:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57328,"name":"address","nodeType":"ElementaryTypeName","src":"6911:7:76","typeDescriptions":{}}},"id":57331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6911:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57326,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57712,"src":"6892:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$57712_$","typeString":"type(library Address)"}},"id":57327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6900:10:76","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":57400,"src":"6892:18:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":57332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6892:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6819:107:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57298,"id":57334,"nodeType":"Return","src":"6800:126:76"}]},"documentation":{"id":57289,"nodeType":"StructuredDocumentation","src":"5844:490:76","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6348:23:76","parameters":{"id":57295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57292,"mutability":"mutable","name":"token","nameLocation":"6379:5:76","nodeType":"VariableDeclaration","scope":57336,"src":"6372:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57291,"nodeType":"UserDefinedTypeName","pathNode":{"id":57290,"name":"IERC20","nameLocations":["6372:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"6372:6:76"},"referencedDeclaration":56900,"src":"6372:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57294,"mutability":"mutable","name":"data","nameLocation":"6399:4:76","nodeType":"VariableDeclaration","scope":57336,"src":"6386:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57293,"name":"bytes","nodeType":"ElementaryTypeName","src":"6386:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6371:33:76"},"returnParameters":{"id":57298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57336,"src":"6422:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57296,"name":"bool","nodeType":"ElementaryTypeName","src":"6422:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6421:6:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":56967,"nodeType":"StructuredDocumentation","src":"243:457:76","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"linearizedBaseContracts":[57337],"name":"SafeERC20","nameLocation":"709:9:76","scope":57338,"usedErrors":[]}],"license":"MIT"},"id":76} \ No newline at end of file +{"abi":[],"bytecode":{"object":"0x60566037600b82828239805160001a607314602a57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205a4bcc0b78428ef5a1ebafe169c0d34d5fc4b723901df61c7733dca5e012239364736f6c63430008130033","sourceMap":"701:6211:76:-:0;;;;;;;;;;;;;;;-1:-1:-1;;;701:6211:76;;;;;;;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x73000000000000000000000000000000000000000030146080604052600080fdfea26469706673582212205a4bcc0b78428ef5a1ebafe169c0d34d5fc4b723901df61c7733dca5e012239364736f6c63430008130033","sourceMap":"701:6211:76:-:0;;;;;;;;","linkReferences":{}},"methodIdentifiers":{},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[],\"devdoc\":{\"details\":\"Wrappers around ERC20 operations that throw on failure (when the token contract returns false). Tokens that return no value (and instead revert or throw on failure) are also supported, non-reverting calls are assumed to be successful. To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract, which allows you to call the safe operations as `token.safeTransfer(...)`, etc.\",\"kind\":\"dev\",\"methods\":{},\"title\":\"SafeERC20\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":\"SafeERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5\",\"dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol\":{\"keccak256\":\"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a\",\"dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv\"]},\"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol\":{\"keccak256\":\"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4\",\"dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx\"]},\"lib/openzeppelin-contracts/contracts/utils/Address.sol\":{\"keccak256\":\"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931\",\"dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":"SafeERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0x287b55befed2961a7eabd7d7b1b2839cbca8a5b80ef8dcbb25ed3d4c2002c305","urls":["bzz-raw://bd39944e8fc06be6dbe2dd1d8449b5336e23c6a7ba3e8e9ae5ae0f37f35283f5","dweb:/ipfs/QmPV3FGYjVwvKSgAXKUN3r9T9GwniZz83CxBpM7vyj2G53"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol":{"keccak256":"0xec63854014a5b4f2b3290ab9103a21bdf902a508d0f41a8573fea49e98bf571a","urls":["bzz-raw://bc5b5dc12fbc4002f282eaa7a5f06d8310ed62c1c77c5770f6283e058454c39a","dweb:/ipfs/Qme9rE2wS3yBuyJq9GgbmzbsBQsW2M2sVFqYYLw7bosGrv"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol":{"keccak256":"0x909d608c2db6eb165ca178c81289a07ed2e118e444d0025b2a85c97d0b44a4fa","urls":["bzz-raw://656cda26512ddd7373c2d5551c8fae759fc30f05b10f0fc2e738e9274199dbd4","dweb:/ipfs/QmTSArSzQRFbQmHgq7U1PZXnsDFhvDZhKVu9CzMG4yo6Lx"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Address.sol":{"keccak256":"0x006dd67219697fe68d7fbfdea512e7c4cb64a43565ed86171d67e844982da6fa","urls":["bzz-raw://2455248c8ddd9cc6a7af76a13973cddf222072427e7b0e2a7d1aff345145e931","dweb:/ipfs/QmfYjnjRbWqYpuxurqveE6HtzsY1Xx323J428AKQgtBJZm"],"license":"MIT"}},"version":1},"storageLayout":{"storage":[],"types":{}},"ast":{"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/utils/SafeERC20.sol","id":57338,"exportedSymbols":{"Address":[57712],"IERC20":[56900],"IERC20Permit":[56961],"SafeERC20":[57337]},"nodeType":"SourceUnit","src":"115:6798:76","nodes":[{"id":56963,"nodeType":"PragmaDirective","src":"115:23:76","nodes":[],"literals":["solidity","^","0.8",".0"]},{"id":56964,"nodeType":"ImportDirective","src":"140:23:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/IERC20.sol","file":"../IERC20.sol","nameLocation":"-1:-1:-1","scope":57338,"sourceUnit":56901,"symbolAliases":[],"unitAlias":""},{"id":56965,"nodeType":"ImportDirective","src":"164:40:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/token/ERC20/extensions/IERC20Permit.sol","file":"../extensions/IERC20Permit.sol","nameLocation":"-1:-1:-1","scope":57338,"sourceUnit":56962,"symbolAliases":[],"unitAlias":""},{"id":56966,"nodeType":"ImportDirective","src":"205:36:76","nodes":[],"absolutePath":"lib/openzeppelin-contracts/contracts/utils/Address.sol","file":"../../../utils/Address.sol","nameLocation":"-1:-1:-1","scope":57338,"sourceUnit":57713,"symbolAliases":[],"unitAlias":""},{"id":57337,"nodeType":"ContractDefinition","src":"701:6211:76","nodes":[{"id":56970,"nodeType":"UsingForDirective","src":"725:26:76","nodes":[],"global":false,"libraryName":{"id":56968,"name":"Address","nameLocations":["731:7:76"],"nodeType":"IdentifierPath","referencedDeclaration":57712,"src":"731:7:76"},"typeName":{"id":56969,"name":"address","nodeType":"ElementaryTypeName","src":"743:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}},{"id":56994,"nodeType":"FunctionDefinition","src":"941:175:76","nodes":[],"body":{"id":56993,"nodeType":"Block","src":"1013:103:76","nodes":[],"statements":[{"expression":{"arguments":[{"id":56982,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56974,"src":"1043:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":56985,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56974,"src":"1073:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":56986,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1079:8:76","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":56867,"src":"1073:14:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":56987,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1088:8:76","memberName":"selector","nodeType":"MemberAccess","src":"1073:23:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":56988,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56976,"src":"1098:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":56989,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56978,"src":"1102:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":56983,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1050:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":56984,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1054:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1050:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":56990,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1050:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":56981,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"1023:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":56991,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1023:86:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":56992,"nodeType":"ExpressionStatement","src":"1023:86:76"}]},"documentation":{"id":56971,"nodeType":"StructuredDocumentation","src":"757:179:76","text":" @dev Transfer `value` amount of `token` from the calling contract to `to`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransfer","nameLocation":"950:12:76","parameters":{"id":56979,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56974,"mutability":"mutable","name":"token","nameLocation":"970:5:76","nodeType":"VariableDeclaration","scope":56994,"src":"963:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":56973,"nodeType":"UserDefinedTypeName","pathNode":{"id":56972,"name":"IERC20","nameLocations":["963:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"963:6:76"},"referencedDeclaration":56900,"src":"963:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":56976,"mutability":"mutable","name":"to","nameLocation":"985:2:76","nodeType":"VariableDeclaration","scope":56994,"src":"977:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56975,"name":"address","nodeType":"ElementaryTypeName","src":"977:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":56978,"mutability":"mutable","name":"value","nameLocation":"997:5:76","nodeType":"VariableDeclaration","scope":56994,"src":"989:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":56977,"name":"uint256","nodeType":"ElementaryTypeName","src":"989:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"962:41:76"},"returnParameters":{"id":56980,"nodeType":"ParameterList","parameters":[],"src":"1013:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57021,"nodeType":"FunctionDefinition","src":"1355:203:76","nodes":[],"body":{"id":57020,"nodeType":"Block","src":"1445:113:76","nodes":[],"statements":[{"expression":{"arguments":[{"id":57008,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56998,"src":"1475:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57011,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":56998,"src":"1505:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57012,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1511:12:76","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":56899,"src":"1505:18:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) external returns (bool)"}},"id":57013,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1524:8:76","memberName":"selector","nodeType":"MemberAccess","src":"1505:27:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57014,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57000,"src":"1534:4:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57015,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57002,"src":"1540:2:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57016,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57004,"src":"1544:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57009,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"1482:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57010,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"1486:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"1482:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57017,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1482:68:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57007,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"1455:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57018,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1455:96:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57019,"nodeType":"ExpressionStatement","src":"1455:96:76"}]},"documentation":{"id":56995,"nodeType":"StructuredDocumentation","src":"1122:228:76","text":" @dev Transfer `value` amount of `token` from `from` to `to`, spending the approval given by `from` to the\n calling contract. If `token` returns no value, non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeTransferFrom","nameLocation":"1364:16:76","parameters":{"id":57005,"nodeType":"ParameterList","parameters":[{"constant":false,"id":56998,"mutability":"mutable","name":"token","nameLocation":"1388:5:76","nodeType":"VariableDeclaration","scope":57021,"src":"1381:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":56997,"nodeType":"UserDefinedTypeName","pathNode":{"id":56996,"name":"IERC20","nameLocations":["1381:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1381:6:76"},"referencedDeclaration":56900,"src":"1381:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57000,"mutability":"mutable","name":"from","nameLocation":"1403:4:76","nodeType":"VariableDeclaration","scope":57021,"src":"1395:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":56999,"name":"address","nodeType":"ElementaryTypeName","src":"1395:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57002,"mutability":"mutable","name":"to","nameLocation":"1417:2:76","nodeType":"VariableDeclaration","scope":57021,"src":"1409:10:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57001,"name":"address","nodeType":"ElementaryTypeName","src":"1409:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57004,"mutability":"mutable","name":"value","nameLocation":"1429:5:76","nodeType":"VariableDeclaration","scope":57021,"src":"1421:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57003,"name":"uint256","nodeType":"ElementaryTypeName","src":"1421:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1380:55:76"},"returnParameters":{"id":57006,"nodeType":"ParameterList","parameters":[],"src":"1445:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57065,"nodeType":"FunctionDefinition","src":"1818:573:76","nodes":[],"body":{"id":57064,"nodeType":"Block","src":"1894:497:76","nodes":[],"statements":[{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57048,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57035,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57033,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57029,"src":"2143:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57034,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2152:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2143:10:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57036,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2142:12:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57046,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"arguments":[{"id":57041,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2183:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}],"id":57040,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2175:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57039,"name":"address","nodeType":"ElementaryTypeName","src":"2175:7:76","typeDescriptions":{}}},"id":57042,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2175:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57043,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"2190:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57037,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57025,"src":"2159:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57038,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2165:9:76","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":56877,"src":"2159:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57044,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2159:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57045,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"2202:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"2159:44:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57047,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"2158:46:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"2142:62:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f20746f206e6f6e2d7a65726f20616c6c6f77616e6365","id":57049,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2218:56:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""},"value":"SafeERC20: approve from non-zero to non-zero allowance"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_ef945ddb1bfdc0da870feb4560d868b047642b4ac7f2fb7f8b7c51cb4a411e25","typeString":"literal_string \"SafeERC20: approve from non-zero to non-zero allowance\""}],"id":57032,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"2121:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57050,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2121:163:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57051,"nodeType":"ExpressionStatement","src":"2121:163:76"},{"expression":{"arguments":[{"id":57053,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57025,"src":"2314:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57056,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57025,"src":"2344:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57057,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2350:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"2344:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57058,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2358:8:76","memberName":"selector","nodeType":"MemberAccess","src":"2344:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57059,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57027,"src":"2368:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57060,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57029,"src":"2377:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57054,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2321:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57055,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2325:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2321:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57061,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2321:62:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57052,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"2294:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57062,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2294:90:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57063,"nodeType":"ExpressionStatement","src":"2294:90:76"}]},"documentation":{"id":57022,"nodeType":"StructuredDocumentation","src":"1564:249:76","text":" @dev Deprecated. This function has issues similar to the ones found in\n {IERC20-approve}, and its usage is discouraged.\n Whenever possible, use {safeIncreaseAllowance} and\n {safeDecreaseAllowance} instead."},"implemented":true,"kind":"function","modifiers":[],"name":"safeApprove","nameLocation":"1827:11:76","parameters":{"id":57030,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57025,"mutability":"mutable","name":"token","nameLocation":"1846:5:76","nodeType":"VariableDeclaration","scope":57065,"src":"1839:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57024,"nodeType":"UserDefinedTypeName","pathNode":{"id":57023,"name":"IERC20","nameLocations":["1839:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"1839:6:76"},"referencedDeclaration":56900,"src":"1839:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57027,"mutability":"mutable","name":"spender","nameLocation":"1861:7:76","nodeType":"VariableDeclaration","scope":57065,"src":"1853:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57026,"name":"address","nodeType":"ElementaryTypeName","src":"1853:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57029,"mutability":"mutable","name":"value","nameLocation":"1878:5:76","nodeType":"VariableDeclaration","scope":57065,"src":"1870:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57028,"name":"uint256","nodeType":"ElementaryTypeName","src":"1870:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1838:46:76"},"returnParameters":{"id":57031,"nodeType":"ParameterList","parameters":[],"src":"1894:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57102,"nodeType":"FunctionDefinition","src":"2582:280:76","nodes":[],"body":{"id":57101,"nodeType":"Block","src":"2668:194:76","nodes":[],"statements":[{"assignments":[57077],"declarations":[{"constant":false,"id":57077,"mutability":"mutable","name":"oldAllowance","nameLocation":"2686:12:76","nodeType":"VariableDeclaration","scope":57101,"src":"2678:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57076,"name":"uint256","nodeType":"ElementaryTypeName","src":"2678:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57086,"initialValue":{"arguments":[{"arguments":[{"id":57082,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"2725:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}],"id":57081,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"2717:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57080,"name":"address","nodeType":"ElementaryTypeName","src":"2717:7:76","typeDescriptions":{}}},"id":57083,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2717:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57084,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57071,"src":"2732:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57078,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57069,"src":"2701:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57079,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2707:9:76","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":56877,"src":"2701:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57085,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2701:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"2678:62:76"},{"expression":{"arguments":[{"id":57088,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57069,"src":"2770:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57091,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57069,"src":"2800:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57092,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2806:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"2800:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57093,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:8:76","memberName":"selector","nodeType":"MemberAccess","src":"2800:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57094,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57071,"src":"2824:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57097,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57095,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57077,"src":"2833:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"id":57096,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57073,"src":"2848:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"2833:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57089,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"2777:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57090,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"2781:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"2777:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57098,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2777:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57087,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"2750:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57099,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2750:105:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57100,"nodeType":"ExpressionStatement","src":"2750:105:76"}]},"documentation":{"id":57066,"nodeType":"StructuredDocumentation","src":"2397:180:76","text":" @dev Increase the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeIncreaseAllowance","nameLocation":"2591:21:76","parameters":{"id":57074,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57069,"mutability":"mutable","name":"token","nameLocation":"2620:5:76","nodeType":"VariableDeclaration","scope":57102,"src":"2613:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57068,"nodeType":"UserDefinedTypeName","pathNode":{"id":57067,"name":"IERC20","nameLocations":["2613:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"2613:6:76"},"referencedDeclaration":56900,"src":"2613:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57071,"mutability":"mutable","name":"spender","nameLocation":"2635:7:76","nodeType":"VariableDeclaration","scope":57102,"src":"2627:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57070,"name":"address","nodeType":"ElementaryTypeName","src":"2627:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57073,"mutability":"mutable","name":"value","nameLocation":"2652:5:76","nodeType":"VariableDeclaration","scope":57102,"src":"2644:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57072,"name":"uint256","nodeType":"ElementaryTypeName","src":"2644:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2612:46:76"},"returnParameters":{"id":57075,"nodeType":"ParameterList","parameters":[],"src":"2668:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57147,"nodeType":"FunctionDefinition","src":"3053:407:76","nodes":[],"body":{"id":57146,"nodeType":"Block","src":"3139:321:76","nodes":[],"statements":[{"id":57145,"nodeType":"UncheckedBlock","src":"3149:305:76","statements":[{"assignments":[57114],"declarations":[{"constant":false,"id":57114,"mutability":"mutable","name":"oldAllowance","nameLocation":"3181:12:76","nodeType":"VariableDeclaration","scope":57145,"src":"3173:20:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57113,"name":"uint256","nodeType":"ElementaryTypeName","src":"3173:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57123,"initialValue":{"arguments":[{"arguments":[{"id":57119,"name":"this","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-28,"src":"3220:4:76","typeDescriptions":{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_SafeERC20_$57337","typeString":"library SafeERC20"}],"id":57118,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"3212:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57117,"name":"address","nodeType":"ElementaryTypeName","src":"3212:7:76","typeDescriptions":{}}},"id":57120,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3212:13:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57121,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57108,"src":"3227:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57115,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"3196:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57116,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3202:9:76","memberName":"allowance","nodeType":"MemberAccess","referencedDeclaration":56877,"src":"3196:15:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$_t_address_$returns$_t_uint256_$","typeString":"function (address,address) view external returns (uint256)"}},"id":57122,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3196:39:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3173:62:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57127,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57125,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57114,"src":"3257:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":">=","rightExpression":{"id":57126,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57110,"src":"3273:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3257:21:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726f","id":57128,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"3280:43:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""},"value":"SafeERC20: decreased allowance below zero"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_2c3af60974a758b7e72e108c9bf0943ecc9e4f2e8af4695da5f52fbf57a63d3a","typeString":"literal_string \"SafeERC20: decreased allowance below zero\""}],"id":57124,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"3249:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57129,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3249:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57130,"nodeType":"ExpressionStatement","src":"3249:75:76"},{"expression":{"arguments":[{"id":57132,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"3358:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57135,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57106,"src":"3388:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57136,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3394:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"3388:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57137,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3402:8:76","memberName":"selector","nodeType":"MemberAccess","src":"3388:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57138,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57108,"src":"3412:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57141,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57139,"name":"oldAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57114,"src":"3421:12:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"-","rightExpression":{"id":57140,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57110,"src":"3436:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3421:20:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57133,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3365:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57134,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3369:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3365:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57142,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3365:77:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57131,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"3338:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57143,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3338:105:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57144,"nodeType":"ExpressionStatement","src":"3338:105:76"}]}]},"documentation":{"id":57103,"nodeType":"StructuredDocumentation","src":"2868:180:76","text":" @dev Decrease the calling contract's allowance toward `spender` by `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful."},"implemented":true,"kind":"function","modifiers":[],"name":"safeDecreaseAllowance","nameLocation":"3062:21:76","parameters":{"id":57111,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57106,"mutability":"mutable","name":"token","nameLocation":"3091:5:76","nodeType":"VariableDeclaration","scope":57147,"src":"3084:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57105,"nodeType":"UserDefinedTypeName","pathNode":{"id":57104,"name":"IERC20","nameLocations":["3084:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"3084:6:76"},"referencedDeclaration":56900,"src":"3084:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57108,"mutability":"mutable","name":"spender","nameLocation":"3106:7:76","nodeType":"VariableDeclaration","scope":57147,"src":"3098:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57107,"name":"address","nodeType":"ElementaryTypeName","src":"3098:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57110,"mutability":"mutable","name":"value","nameLocation":"3123:5:76","nodeType":"VariableDeclaration","scope":57147,"src":"3115:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57109,"name":"uint256","nodeType":"ElementaryTypeName","src":"3115:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3083:46:76"},"returnParameters":{"id":57112,"nodeType":"ParameterList","parameters":[],"src":"3139:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57194,"nodeType":"FunctionDefinition","src":"3756:410:76","nodes":[],"body":{"id":57193,"nodeType":"Block","src":"3833:333:76","nodes":[],"statements":[{"assignments":[57159],"declarations":[{"constant":false,"id":57159,"mutability":"mutable","name":"approvalCall","nameLocation":"3856:12:76","nodeType":"VariableDeclaration","scope":57193,"src":"3843:25:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57158,"name":"bytes","nodeType":"ElementaryTypeName","src":"3843:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57168,"initialValue":{"arguments":[{"expression":{"expression":{"id":57162,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"3894:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57163,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3900:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"3894:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57164,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3908:8:76","memberName":"selector","nodeType":"MemberAccess","src":"3894:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57165,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57153,"src":"3918:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57166,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57155,"src":"3927:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":57160,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"3871:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57161,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"3875:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"3871:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57167,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3871:62:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"3843:90:76"},{"condition":{"id":57173,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"3948:45:76","subExpression":{"arguments":[{"id":57170,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"3973:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"id":57171,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"3980:12:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57169,"name":"_callOptionalReturnBool","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57336,"src":"3949:23:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$_t_bool_$","typeString":"function (contract IERC20,bytes memory) returns (bool)"}},"id":57172,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3949:44:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":57192,"nodeType":"IfStatement","src":"3944:216:76","trueBody":{"id":57191,"nodeType":"Block","src":"3995:165:76","statements":[{"expression":{"arguments":[{"id":57175,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"4029:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"arguments":[{"expression":{"expression":{"id":57178,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"4059:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"id":57179,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4065:7:76","memberName":"approve","nodeType":"MemberAccess","referencedDeclaration":56887,"src":"4059:13:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) external returns (bool)"}},"id":57180,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4073:8:76","memberName":"selector","nodeType":"MemberAccess","src":"4059:22:76","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},{"id":57181,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57153,"src":"4083:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"hexValue":"30","id":57182,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4092:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"expression":{"id":57176,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"4036:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57177,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4040:18:76","memberName":"encodeWithSelector","nodeType":"MemberAccess","src":"4036:22:76","typeDescriptions":{"typeIdentifier":"t_function_abiencodewithselector_pure$_t_bytes4_$returns$_t_bytes_memory_ptr_$","typeString":"function (bytes4) pure returns (bytes memory)"}},"id":57183,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4036:58:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57174,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"4009:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57184,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4009:86:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57185,"nodeType":"ExpressionStatement","src":"4009:86:76"},{"expression":{"arguments":[{"id":57187,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57151,"src":"4129:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},{"id":57188,"name":"approvalCall","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57159,"src":"4136:12:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"id":57186,"name":"_callOptionalReturn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57288,"src":"4109:19:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_contract$_IERC20_$56900_$_t_bytes_memory_ptr_$returns$__$","typeString":"function (contract IERC20,bytes memory)"}},"id":57189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4109:40:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57190,"nodeType":"ExpressionStatement","src":"4109:40:76"}]}}]},"documentation":{"id":57148,"nodeType":"StructuredDocumentation","src":"3466:285:76","text":" @dev Set the calling contract's allowance toward `spender` to `value`. If `token` returns no value,\n non-reverting calls are assumed to be successful. Compatible with tokens that require the approval to be set to\n 0 before setting it to a non-zero value."},"implemented":true,"kind":"function","modifiers":[],"name":"forceApprove","nameLocation":"3765:12:76","parameters":{"id":57156,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57151,"mutability":"mutable","name":"token","nameLocation":"3785:5:76","nodeType":"VariableDeclaration","scope":57194,"src":"3778:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57150,"nodeType":"UserDefinedTypeName","pathNode":{"id":57149,"name":"IERC20","nameLocations":["3778:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"3778:6:76"},"referencedDeclaration":56900,"src":"3778:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57153,"mutability":"mutable","name":"spender","nameLocation":"3800:7:76","nodeType":"VariableDeclaration","scope":57194,"src":"3792:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57152,"name":"address","nodeType":"ElementaryTypeName","src":"3792:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57155,"mutability":"mutable","name":"value","nameLocation":"3817:5:76","nodeType":"VariableDeclaration","scope":57194,"src":"3809:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57154,"name":"uint256","nodeType":"ElementaryTypeName","src":"3809:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"3777:46:76"},"returnParameters":{"id":57157,"nodeType":"ParameterList","parameters":[],"src":"3833:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57251,"nodeType":"FunctionDefinition","src":"4318:472:76","nodes":[],"body":{"id":57250,"nodeType":"Block","src":"4533:257:76","nodes":[],"statements":[{"assignments":[57216],"declarations":[{"constant":false,"id":57216,"mutability":"mutable","name":"nonceBefore","nameLocation":"4551:11:76","nodeType":"VariableDeclaration","scope":57250,"src":"4543:19:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57215,"name":"uint256","nodeType":"ElementaryTypeName","src":"4543:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57221,"initialValue":{"arguments":[{"id":57219,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57200,"src":"4578:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57217,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57198,"src":"4565:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"id":57218,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4571:6:76","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":56954,"src":"4565:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57220,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4565:19:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4543:41:76"},{"expression":{"arguments":[{"id":57225,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57200,"src":"4607:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57226,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57202,"src":"4614:7:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":57227,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57204,"src":"4623:5:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57228,"name":"deadline","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57206,"src":"4630:8:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":57229,"name":"v","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57208,"src":"4640:1:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},{"id":57230,"name":"r","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57210,"src":"4643:1:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":57231,"name":"s","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57212,"src":"4646:1:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_uint8","typeString":"uint8"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_bytes32","typeString":"bytes32"}],"expression":{"id":57222,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57198,"src":"4594:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"id":57224,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4600:6:76","memberName":"permit","nodeType":"MemberAccess","referencedDeclaration":56946,"src":"4594:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$_t_uint8_$_t_bytes32_$_t_bytes32_$returns$__$","typeString":"function (address,address,uint256,uint256,uint8,bytes32,bytes32) external"}},"id":57232,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4594:54:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57233,"nodeType":"ExpressionStatement","src":"4594:54:76"},{"assignments":[57235],"declarations":[{"constant":false,"id":57235,"mutability":"mutable","name":"nonceAfter","nameLocation":"4666:10:76","nodeType":"VariableDeclaration","scope":57250,"src":"4658:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57234,"name":"uint256","nodeType":"ElementaryTypeName","src":"4658:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":57240,"initialValue":{"arguments":[{"id":57238,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57200,"src":"4692:5:76","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57236,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57198,"src":"4679:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"id":57237,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4685:6:76","memberName":"nonces","nodeType":"MemberAccess","referencedDeclaration":56954,"src":"4679:12:76","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_address_$returns$_t_uint256_$","typeString":"function (address) view external returns (uint256)"}},"id":57239,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4679:19:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"4658:40:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57246,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57242,"name":"nonceAfter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57235,"src":"4716:10:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57245,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57243,"name":"nonceBefore","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57216,"src":"4730:11:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"+","rightExpression":{"hexValue":"31","id":57244,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4744:1:76","typeDescriptions":{"typeIdentifier":"t_rational_1_by_1","typeString":"int_const 1"},"value":"1"},"src":"4730:15:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4716:29:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a207065726d697420646964206e6f742073756363656564","id":57247,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"4747:35:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""},"value":"SafeERC20: permit did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_cde8e927812a7a656f8f04e89ac4f4113d47940dd2125d11fcb8e0bd36bfc59d","typeString":"literal_string \"SafeERC20: permit did not succeed\""}],"id":57241,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"4708:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57248,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4708:75:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57249,"nodeType":"ExpressionStatement","src":"4708:75:76"}]},"documentation":{"id":57195,"nodeType":"StructuredDocumentation","src":"4172:141:76","text":" @dev Use a ERC-2612 signature to set the `owner` approval toward `spender` on `token`.\n Revert on invalid signature."},"implemented":true,"kind":"function","modifiers":[],"name":"safePermit","nameLocation":"4327:10:76","parameters":{"id":57213,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57198,"mutability":"mutable","name":"token","nameLocation":"4360:5:76","nodeType":"VariableDeclaration","scope":57251,"src":"4347:18:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"},"typeName":{"id":57197,"nodeType":"UserDefinedTypeName","pathNode":{"id":57196,"name":"IERC20Permit","nameLocations":["4347:12:76"],"nodeType":"IdentifierPath","referencedDeclaration":56961,"src":"4347:12:76"},"referencedDeclaration":56961,"src":"4347:12:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20Permit_$56961","typeString":"contract IERC20Permit"}},"visibility":"internal"},{"constant":false,"id":57200,"mutability":"mutable","name":"owner","nameLocation":"4383:5:76","nodeType":"VariableDeclaration","scope":57251,"src":"4375:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57199,"name":"address","nodeType":"ElementaryTypeName","src":"4375:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57202,"mutability":"mutable","name":"spender","nameLocation":"4406:7:76","nodeType":"VariableDeclaration","scope":57251,"src":"4398:15:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":57201,"name":"address","nodeType":"ElementaryTypeName","src":"4398:7:76","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":57204,"mutability":"mutable","name":"value","nameLocation":"4431:5:76","nodeType":"VariableDeclaration","scope":57251,"src":"4423:13:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57203,"name":"uint256","nodeType":"ElementaryTypeName","src":"4423:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57206,"mutability":"mutable","name":"deadline","nameLocation":"4454:8:76","nodeType":"VariableDeclaration","scope":57251,"src":"4446:16:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":57205,"name":"uint256","nodeType":"ElementaryTypeName","src":"4446:7:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":57208,"mutability":"mutable","name":"v","nameLocation":"4478:1:76","nodeType":"VariableDeclaration","scope":57251,"src":"4472:7:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":57207,"name":"uint8","nodeType":"ElementaryTypeName","src":"4472:5:76","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"constant":false,"id":57210,"mutability":"mutable","name":"r","nameLocation":"4497:1:76","nodeType":"VariableDeclaration","scope":57251,"src":"4489:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57209,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4489:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"},{"constant":false,"id":57212,"mutability":"mutable","name":"s","nameLocation":"4516:1:76","nodeType":"VariableDeclaration","scope":57251,"src":"4508:9:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":57211,"name":"bytes32","nodeType":"ElementaryTypeName","src":"4508:7:76","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"internal"}],"src":"4337:186:76"},"returnParameters":{"id":57214,"nodeType":"ParameterList","parameters":[],"src":"4533:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"internal"},{"id":57288,"nodeType":"FunctionDefinition","src":"5173:642:76","nodes":[],"body":{"id":57287,"nodeType":"Block","src":"5243:572:76","nodes":[],"statements":[{"assignments":[57261],"declarations":[{"constant":false,"id":57261,"mutability":"mutable","name":"returndata","nameLocation":"5605:10:76","nodeType":"VariableDeclaration","scope":57287,"src":"5592:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57260,"name":"bytes","nodeType":"ElementaryTypeName","src":"5592:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57270,"initialValue":{"arguments":[{"id":57267,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57257,"src":"5646:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"hexValue":"5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564","id":57268,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5652:34:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""},"value":"SafeERC20: low-level call failed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_stringliteral_47fb62c2c272651d2f0f342bac006756b8ba07f21cc5cb87e0fbb9d50c0c585b","typeString":"literal_string \"SafeERC20: low-level call failed\""}],"expression":{"arguments":[{"id":57264,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57255,"src":"5626:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":57263,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5618:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57262,"name":"address","nodeType":"ElementaryTypeName","src":"5618:7:76","typeDescriptions":{}}},"id":57265,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5618:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57266,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5633:12:76","memberName":"functionCall","nodeType":"MemberAccess","referencedDeclaration":57472,"src":"5618:27:76","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_string_memory_ptr_$returns$_t_bytes_memory_ptr_$attached_to$_t_address_$","typeString":"function (address,bytes memory,string memory) returns (bytes memory)"}},"id":57269,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5618:69:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"nodeType":"VariableDeclarationStatement","src":"5592:95:76"},{"expression":{"arguments":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57283,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57275,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57272,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57261,"src":"5705:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57273,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5716:6:76","memberName":"length","nodeType":"MemberAccess","src":"5705:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57274,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"5726:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"5705:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57278,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57261,"src":"5742:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57280,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"5755:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":57279,"name":"bool","nodeType":"ElementaryTypeName","src":"5755:4:76","typeDescriptions":{}}}],"id":57281,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"5754:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":57276,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"5731:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57277,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"5735:6:76","memberName":"decode","nodeType":"MemberAccess","src":"5731:10:76","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57282,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5731:30:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"5705:56:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},{"hexValue":"5361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564","id":57284,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"5763:44:76","typeDescriptions":{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""},"value":"SafeERC20: ERC20 operation did not succeed"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bool","typeString":"bool"},{"typeIdentifier":"t_stringliteral_e11ad79d1e4a7f2e5f376964cb99e8e8f7904e3fc16a109f7a7ecb9aa7956dcd","typeString":"literal_string \"SafeERC20: ERC20 operation did not succeed\""}],"id":57271,"name":"require","nodeType":"Identifier","overloadedDeclarations":[-18,-18],"referencedDeclaration":-18,"src":"5697:7:76","typeDescriptions":{"typeIdentifier":"t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$","typeString":"function (bool,string memory) pure"}},"id":57285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5697:111:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":57286,"nodeType":"ExpressionStatement","src":"5697:111:76"}]},"documentation":{"id":57252,"nodeType":"StructuredDocumentation","src":"4796:372:76","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants)."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturn","nameLocation":"5182:19:76","parameters":{"id":57258,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57255,"mutability":"mutable","name":"token","nameLocation":"5209:5:76","nodeType":"VariableDeclaration","scope":57288,"src":"5202:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57254,"nodeType":"UserDefinedTypeName","pathNode":{"id":57253,"name":"IERC20","nameLocations":["5202:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"5202:6:76"},"referencedDeclaration":56900,"src":"5202:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57257,"mutability":"mutable","name":"data","nameLocation":"5229:4:76","nodeType":"VariableDeclaration","scope":57288,"src":"5216:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57256,"name":"bytes","nodeType":"ElementaryTypeName","src":"5216:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"5201:33:76"},"returnParameters":{"id":57259,"nodeType":"ParameterList","parameters":[],"src":"5243:0:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"private"},{"id":57336,"nodeType":"FunctionDefinition","src":"6316:594:76","nodes":[],"body":{"id":57335,"nodeType":"Block","src":"6405:505:76","nodes":[],"statements":[{"assignments":[57300,57302],"declarations":[{"constant":false,"id":57300,"mutability":"mutable","name":"success","nameLocation":"6706:7:76","nodeType":"VariableDeclaration","scope":57335,"src":"6701:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57299,"name":"bool","nodeType":"ElementaryTypeName","src":"6701:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"},{"constant":false,"id":57302,"mutability":"mutable","name":"returndata","nameLocation":"6728:10:76","nodeType":"VariableDeclaration","scope":57335,"src":"6715:23:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57301,"name":"bytes","nodeType":"ElementaryTypeName","src":"6715:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"id":57310,"initialValue":{"arguments":[{"id":57308,"name":"data","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57294,"src":"6762:4:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}],"expression":{"arguments":[{"id":57305,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57292,"src":"6750:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":57304,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6742:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57303,"name":"address","nodeType":"ElementaryTypeName","src":"6742:7:76","typeDescriptions":{}}},"id":57306,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":57307,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6757:4:76","memberName":"call","nodeType":"MemberAccess","src":"6742:19:76","typeDescriptions":{"typeIdentifier":"t_function_barecall_payable$_t_bytes_memory_ptr_$returns$_t_bool_$_t_bytes_memory_ptr_$","typeString":"function (bytes memory) payable returns (bool,bytes memory)"}},"id":57309,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6742:25:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$_t_bool_$_t_bytes_memory_ptr_$","typeString":"tuple(bool,bytes memory)"}},"nodeType":"VariableDeclarationStatement","src":"6700:67:76"},{"expression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57333,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57325,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":57311,"name":"success","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57300,"src":"6796:7:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"components":[{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":57323,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":57315,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":57312,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57302,"src":"6808:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":57313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6819:6:76","memberName":"length","nodeType":"MemberAccess","src":"6808:17:76","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":57314,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"6829:1:76","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"6808:22:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"arguments":[{"id":57318,"name":"returndata","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57302,"src":"6845:10:76","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},{"components":[{"id":57320,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6858:4:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"},"typeName":{"id":57319,"name":"bool","nodeType":"ElementaryTypeName","src":"6858:4:76","typeDescriptions":{}}}],"id":57321,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"TupleExpression","src":"6857:6:76","typeDescriptions":{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"},{"typeIdentifier":"t_type$_t_bool_$","typeString":"type(bool)"}],"expression":{"id":57316,"name":"abi","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-1,"src":"6834:3:76","typeDescriptions":{"typeIdentifier":"t_magic_abi","typeString":"abi"}},"id":57317,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"6838:6:76","memberName":"decode","nodeType":"MemberAccess","src":"6834:10:76","typeDescriptions":{"typeIdentifier":"t_function_abidecode_pure$__$returns$__$","typeString":"function () pure"}},"id":57322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6834:30:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6808:56:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}}],"id":57324,"isConstant":false,"isInlineArray":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"TupleExpression","src":"6807:58:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6796:69:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"&&","rightExpression":{"arguments":[{"arguments":[{"id":57330,"name":"token","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57292,"src":"6896:5:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}],"id":57329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"6888:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":57328,"name":"address","nodeType":"ElementaryTypeName","src":"6888:7:76","typeDescriptions":{}}},"id":57331,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6888:14:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"expression":{"id":57326,"name":"Address","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":57712,"src":"6869:7:76","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_Address_$57712_$","typeString":"type(library Address)"}},"id":57327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"6877:10:76","memberName":"isContract","nodeType":"MemberAccess","referencedDeclaration":57400,"src":"6869:18:76","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_bool_$","typeString":"function (address) view returns (bool)"}},"id":57332,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"6869:34:76","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"6796:107:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":57298,"id":57334,"nodeType":"Return","src":"6777:126:76"}]},"documentation":{"id":57289,"nodeType":"StructuredDocumentation","src":"5821:490:76","text":" @dev Imitates a Solidity high-level call (i.e. a regular function call to a contract), relaxing the requirement\n on the return value: the return value is optional (but if data is returned, it must not be false).\n @param token The token targeted by the call.\n @param data The call data (encoded using abi.encode or one of its variants).\n This is a variant of {_callOptionalReturn} that silents catches all reverts and returns a bool instead."},"implemented":true,"kind":"function","modifiers":[],"name":"_callOptionalReturnBool","nameLocation":"6325:23:76","parameters":{"id":57295,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57292,"mutability":"mutable","name":"token","nameLocation":"6356:5:76","nodeType":"VariableDeclaration","scope":57336,"src":"6349:12:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"},"typeName":{"id":57291,"nodeType":"UserDefinedTypeName","pathNode":{"id":57290,"name":"IERC20","nameLocations":["6349:6:76"],"nodeType":"IdentifierPath","referencedDeclaration":56900,"src":"6349:6:76"},"referencedDeclaration":56900,"src":"6349:6:76","typeDescriptions":{"typeIdentifier":"t_contract$_IERC20_$56900","typeString":"contract IERC20"}},"visibility":"internal"},{"constant":false,"id":57294,"mutability":"mutable","name":"data","nameLocation":"6376:4:76","nodeType":"VariableDeclaration","scope":57336,"src":"6363:17:76","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes"},"typeName":{"id":57293,"name":"bytes","nodeType":"ElementaryTypeName","src":"6363:5:76","typeDescriptions":{"typeIdentifier":"t_bytes_storage_ptr","typeString":"bytes"}},"visibility":"internal"}],"src":"6348:33:76"},"returnParameters":{"id":57298,"nodeType":"ParameterList","parameters":[{"constant":false,"id":57297,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":57336,"src":"6399:4:76","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":57296,"name":"bool","nodeType":"ElementaryTypeName","src":"6399:4:76","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"6398:6:76"},"scope":57337,"stateMutability":"nonpayable","virtual":false,"visibility":"private"}],"abstract":false,"baseContracts":[],"canonicalName":"SafeERC20","contractDependencies":[],"contractKind":"library","documentation":{"id":56967,"nodeType":"StructuredDocumentation","src":"243:457:76","text":" @title SafeERC20\n @dev Wrappers around ERC20 operations that throw on failure (when the token\n contract returns false). Tokens that return no value (and instead revert or\n throw on failure) are also supported, non-reverting calls are assumed to be\n successful.\n To use this library you can add a `using SafeERC20 for IERC20;` statement to your contract,\n which allows you to call the safe operations as `token.safeTransfer(...)`, etc."},"fullyImplemented":true,"linearizedBaseContracts":[57337],"name":"SafeERC20","nameLocation":"709:9:76","scope":57338,"usedErrors":[]}],"license":"MIT"},"id":76} \ No newline at end of file diff --git a/pkg/contracts/out/TERC20.sol/TERC20.json b/pkg/contracts/out/TERC20.sol/TERC20.json index 5c5aaadee..4db942c9d 100644 --- a/pkg/contracts/out/TERC20.sol/TERC20.json +++ b/pkg/contracts/out/TERC20.sol/TERC20.json @@ -1 +1 @@ -{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212204fde32460ff7d93c1fd64e3b3c2acab14e323e5e55bff86a5288c7d93a60e66d64736f6c63430008130033","sourceMap":"290:2085:142:-:0;;;408:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;491:5;:13;499:5;491;:13;:::i;:::-;-1:-1:-1;514:7:142;:17;524:7;514;:17;:::i;:::-;-1:-1:-1;541:9:142;:21;;-1:-1:-1;;541:21:142;;;;;;;;;;;;-1:-1:-1;290:2085:142;;-1:-1:-1;290:2085:142;14:127:143;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:143;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:143;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:143:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:143;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:143;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:143;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:143;;;4142:26;4093:89;-1:-1:-1;;2897:1:143;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:143;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:143;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:143;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:143:o;:::-;290:2085:142;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212204fde32460ff7d93c1fd64e3b3c2acab14e323e5e55bff86a5288c7d93a60e66d64736f6c63430008130033","sourceMap":"290:2085:142:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:143;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:143;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:143;;;1353:2;1338:18;4847:195:13;1219:177:143;1603:189:142;;;;;;:::i;:::-;;:::i;787:98::-;869:9;;787:98;;869:9;;;;1876:36:143;;1864:2;1849:18;787:98:142;1734:184:143;17096:1062:13;;;:::i;1798:184:142:-;;;;;;:::i;:::-;;:::i;891:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;679:102:142;;;:::i;999:106::-;;;;;;:::i;:::-;;:::i;1988:184::-;;;;;;:::i;:::-;;:::i;1449:148::-;;;;;;:::i;:::-;;:::i;1268:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1111:151:142;;;;;;:::i;:::-;;:::i;575:98::-;629:13;661:5;654:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1603:189:142:-;1700:4;1723:62;1742:17;1754:4;1742:11;:17::i;:::-;1761:15;1773:2;1761:11;:15::i;:::-;1778:6;1723:18;:62::i;:::-;1716:69;1603:189;-1:-1:-1;;;;1603:189:142:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1798:184:142:-;1895:4;1918:57;1942:20;1954:7;1942:11;:20::i;:::-;1964:10;1918:23;:57::i;:::-;1911:64;1798:184;-1:-1:-1;;;1798:184:142:o;891:102::-;957:29;963:15;975:2;963:11;:15::i;:::-;980:5;957;:29::i;:::-;891:102;;:::o;679:::-;735:13;767:7;760:14;;;;;:::i;999:106::-;1067:31;1073:17;1085:4;1073:11;:17::i;:::-;1092:5;1067;:31::i;1988:184::-;2085:4;2108:57;2132:20;2144:7;2132:11;:20::i;:::-;2154:10;2108:23;:57::i;1449:148::-;1528:4;1551:39;1566:15;1578:2;1566:11;:15::i;:::-;1583:6;1551:14;:39::i;1268:175::-;1371:65;1387:18;1399:5;1387:11;:18::i;:::-;1407:20;1419:7;1407:11;:20::i;:::-;1429:6;1371:15;:65::i;:::-;1268:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1111:151:142:-;1202:53;1212:17;1224:4;1212:11;:17::i;:::-;1231:15;1243:2;1231:11;:15::i;:::-;1248:6;1202:9;:53::i;2178:195::-;2233:14;2350:5;2345:3;2341:15;2338:1;2335:22;2325:32;;2178:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;891:102:142;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;891:102:142;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1268:175:142;;;:::o;14:548:143:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:143:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:143;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:143;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:143:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/shared/TERC20.sol\":\"TERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/test/shared/TERC20.sol\":{\"keccak256\":\"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e\",\"dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/shared/TERC20.sol":"TERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/test/shared/TERC20.sol":{"keccak256":"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9","urls":["bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e","dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":100239,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":100241,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":100243,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/test/shared/TERC20.sol","id":100454,"exportedSymbols":{"ERC20":[4491],"TERC20":[100453]},"nodeType":"SourceUnit","src":"42:2334:142","nodes":[{"id":100232,"nodeType":"PragmaDirective","src":"42:24:142","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":100234,"nodeType":"ImportDirective","src":"68:50:142","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":100454,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":100233,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:142","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":100453,"nodeType":"ContractDefinition","src":"290:2085:142","nodes":[{"id":100239,"nodeType":"VariableDeclaration","src":"321:21:142","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"337:5:142","scope":100453,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":100238,"name":"string","nodeType":"ElementaryTypeName","src":"321:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":100241,"nodeType":"VariableDeclaration","src":"348:23:142","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"364:7:142","scope":100453,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":100240,"name":"string","nodeType":"ElementaryTypeName","src":"348:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":100243,"nodeType":"VariableDeclaration","src":"377:24:142","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"392:9:142","scope":100453,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":100242,"name":"uint8","nodeType":"ElementaryTypeName","src":"377:5:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":100265,"nodeType":"FunctionDefinition","src":"408:161:142","nodes":[],"body":{"id":100264,"nodeType":"Block","src":"481:88:142","nodes":[],"statements":[{"expression":{"id":100254,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100252,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100239,"src":"491:5:142","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":100253,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100245,"src":"499:5:142","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"491:13:142","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":100255,"nodeType":"ExpressionStatement","src":"491:13:142"},{"expression":{"id":100258,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100256,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100241,"src":"514:7:142","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":100257,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100247,"src":"524:7:142","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"514:17:142","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":100259,"nodeType":"ExpressionStatement","src":"514:17:142"},{"expression":{"id":100262,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":100260,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100243,"src":"541:9:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":100261,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100249,"src":"553:9:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"541:21:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":100263,"nodeType":"ExpressionStatement","src":"541:21:142"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":100250,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100245,"mutability":"mutable","name":"name_","nameLocation":"434:5:142","nodeType":"VariableDeclaration","scope":100265,"src":"420:19:142","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100244,"name":"string","nodeType":"ElementaryTypeName","src":"420:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":100247,"mutability":"mutable","name":"symbol_","nameLocation":"455:7:142","nodeType":"VariableDeclaration","scope":100265,"src":"441:21:142","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100246,"name":"string","nodeType":"ElementaryTypeName","src":"441:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":100249,"mutability":"mutable","name":"decimals_","nameLocation":"470:9:142","nodeType":"VariableDeclaration","scope":100265,"src":"464:15:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":100248,"name":"uint8","nodeType":"ElementaryTypeName","src":"464:5:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"419:61:142"},"returnParameters":{"id":100251,"nodeType":"ParameterList","parameters":[],"src":"481:0:142"},"scope":100453,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":100274,"nodeType":"FunctionDefinition","src":"575:98:142","nodes":[],"body":{"id":100273,"nodeType":"Block","src":"644:29:142","nodes":[],"statements":[{"expression":{"id":100271,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100239,"src":"661:5:142","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":100270,"id":100272,"nodeType":"Return","src":"654:12:142"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"584:4:142","overrides":{"id":100267,"nodeType":"OverrideSpecifier","overrides":[],"src":"611:8:142"},"parameters":{"id":100266,"nodeType":"ParameterList","parameters":[],"src":"588:2:142"},"returnParameters":{"id":100270,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100269,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100274,"src":"629:13:142","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100268,"name":"string","nodeType":"ElementaryTypeName","src":"629:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"628:15:142"},"scope":100453,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":100283,"nodeType":"FunctionDefinition","src":"679:102:142","nodes":[],"body":{"id":100282,"nodeType":"Block","src":"750:31:142","nodes":[],"statements":[{"expression":{"id":100280,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100241,"src":"767:7:142","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":100279,"id":100281,"nodeType":"Return","src":"760:14:142"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"688:6:142","overrides":{"id":100276,"nodeType":"OverrideSpecifier","overrides":[],"src":"717:8:142"},"parameters":{"id":100275,"nodeType":"ParameterList","parameters":[],"src":"694:2:142"},"returnParameters":{"id":100279,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100278,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100283,"src":"735:13:142","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":100277,"name":"string","nodeType":"ElementaryTypeName","src":"735:6:142","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"734:15:142"},"scope":100453,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":100292,"nodeType":"FunctionDefinition","src":"787:98:142","nodes":[],"body":{"id":100291,"nodeType":"Block","src":"852:33:142","nodes":[],"statements":[{"expression":{"id":100289,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100243,"src":"869:9:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":100288,"id":100290,"nodeType":"Return","src":"862:16:142"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"796:8:142","overrides":{"id":100285,"nodeType":"OverrideSpecifier","overrides":[],"src":"827:8:142"},"parameters":{"id":100284,"nodeType":"ParameterList","parameters":[],"src":"804:2:142"},"returnParameters":{"id":100288,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100287,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100292,"src":"845:5:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":100286,"name":"uint8","nodeType":"ElementaryTypeName","src":"845:5:142","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"844:7:142"},"scope":100453,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":100307,"nodeType":"FunctionDefinition","src":"891:102:142","nodes":[],"body":{"id":100306,"nodeType":"Block","src":"947:46:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100301,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100294,"src":"975:2:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100300,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"963:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100302,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"963:15:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100303,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100296,"src":"980:5:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100299,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"957:5:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":100304,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:29:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100305,"nodeType":"ExpressionStatement","src":"957:29:142"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"900:4:142","parameters":{"id":100297,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100294,"mutability":"mutable","name":"to","nameLocation":"913:2:142","nodeType":"VariableDeclaration","scope":100307,"src":"905:10:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100293,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100296,"mutability":"mutable","name":"value","nameLocation":"925:5:142","nodeType":"VariableDeclaration","scope":100307,"src":"917:13:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100295,"name":"uint256","nodeType":"ElementaryTypeName","src":"917:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"904:27:142"},"returnParameters":{"id":100298,"nodeType":"ParameterList","parameters":[],"src":"947:0:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100322,"nodeType":"FunctionDefinition","src":"999:106:142","nodes":[],"body":{"id":100321,"nodeType":"Block","src":"1057:48:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100316,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100309,"src":"1085:4:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100315,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1073:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100317,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:17:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100318,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100311,"src":"1092:5:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100314,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1067:5:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":100319,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:31:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100320,"nodeType":"ExpressionStatement","src":"1067:31:142"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1008:4:142","parameters":{"id":100312,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100309,"mutability":"mutable","name":"from","nameLocation":"1021:4:142","nodeType":"VariableDeclaration","scope":100322,"src":"1013:12:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100308,"name":"address","nodeType":"ElementaryTypeName","src":"1013:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100311,"mutability":"mutable","name":"value","nameLocation":"1035:5:142","nodeType":"VariableDeclaration","scope":100322,"src":"1027:13:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100310,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1012:29:142"},"returnParameters":{"id":100313,"nodeType":"ParameterList","parameters":[],"src":"1057:0:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100342,"nodeType":"FunctionDefinition","src":"1111:151:142","nodes":[],"body":{"id":100341,"nodeType":"Block","src":"1192:70:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100333,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100324,"src":"1224:4:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100332,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1212:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:17:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":100336,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100326,"src":"1243:2:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100335,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1231:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1231:15:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100338,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100328,"src":"1248:6:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100331,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1202:9:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":100339,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:53:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100340,"nodeType":"ExpressionStatement","src":"1202:53:142"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1120:14:142","parameters":{"id":100329,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100324,"mutability":"mutable","name":"from","nameLocation":"1143:4:142","nodeType":"VariableDeclaration","scope":100342,"src":"1135:12:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100323,"name":"address","nodeType":"ElementaryTypeName","src":"1135:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100326,"mutability":"mutable","name":"to","nameLocation":"1157:2:142","nodeType":"VariableDeclaration","scope":100342,"src":"1149:10:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100325,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100328,"mutability":"mutable","name":"amount","nameLocation":"1169:6:142","nodeType":"VariableDeclaration","scope":100342,"src":"1161:14:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100327,"name":"uint256","nodeType":"ElementaryTypeName","src":"1161:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1134:42:142"},"returnParameters":{"id":100330,"nodeType":"ParameterList","parameters":[],"src":"1192:0:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100362,"nodeType":"FunctionDefinition","src":"1268:175:142","nodes":[],"body":{"id":100361,"nodeType":"Block","src":"1361:82:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100353,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100344,"src":"1399:5:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100352,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1387:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100354,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1387:18:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":100356,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100346,"src":"1419:7:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100355,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1407:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1407:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100358,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100348,"src":"1429:6:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":100351,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1371:15:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":100359,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:65:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":100360,"nodeType":"ExpressionStatement","src":"1371:65:142"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1277:20:142","parameters":{"id":100349,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100344,"mutability":"mutable","name":"owner","nameLocation":"1306:5:142","nodeType":"VariableDeclaration","scope":100362,"src":"1298:13:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100343,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100346,"mutability":"mutable","name":"spender","nameLocation":"1321:7:142","nodeType":"VariableDeclaration","scope":100362,"src":"1313:15:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100345,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100348,"mutability":"mutable","name":"amount","nameLocation":"1338:6:142","nodeType":"VariableDeclaration","scope":100362,"src":"1330:14:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100347,"name":"uint256","nodeType":"ElementaryTypeName","src":"1330:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1297:48:142"},"returnParameters":{"id":100350,"nodeType":"ParameterList","parameters":[],"src":"1361:0:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100381,"nodeType":"FunctionDefinition","src":"1449:148:142","nodes":[],"body":{"id":100380,"nodeType":"Block","src":"1534:63:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100375,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100364,"src":"1578:2:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100374,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1566:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1566:15:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100377,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100366,"src":"1583:6:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100372,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1551:5:142","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100453_$","typeString":"type(contract super TERC20)"}},"id":100373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1557:8:142","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1551:14:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":100378,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:39:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100371,"id":100379,"nodeType":"Return","src":"1544:46:142"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1458:8:142","overrides":{"id":100368,"nodeType":"OverrideSpecifier","overrides":[],"src":"1510:8:142"},"parameters":{"id":100367,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100364,"mutability":"mutable","name":"to","nameLocation":"1475:2:142","nodeType":"VariableDeclaration","scope":100381,"src":"1467:10:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100363,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100366,"mutability":"mutable","name":"amount","nameLocation":"1487:6:142","nodeType":"VariableDeclaration","scope":100381,"src":"1479:14:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100365,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1466:28:142"},"returnParameters":{"id":100371,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100370,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100381,"src":"1528:4:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100369,"name":"bool","nodeType":"ElementaryTypeName","src":"1528:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1527:6:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100405,"nodeType":"FunctionDefinition","src":"1603:189:142","nodes":[],"body":{"id":100404,"nodeType":"Block","src":"1706:86:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100396,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100383,"src":"1754:4:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100395,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1742:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100397,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:17:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":100399,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100385,"src":"1773:2:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100398,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1761:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:15:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100401,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100387,"src":"1778:6:142","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":100393,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1723:5:142","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100453_$","typeString":"type(contract super TERC20)"}},"id":100394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1729:12:142","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1723:18:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":100402,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1723:62:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100392,"id":100403,"nodeType":"Return","src":"1716:69:142"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1612:12:142","overrides":{"id":100389,"nodeType":"OverrideSpecifier","overrides":[],"src":"1682:8:142"},"parameters":{"id":100388,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100383,"mutability":"mutable","name":"from","nameLocation":"1633:4:142","nodeType":"VariableDeclaration","scope":100405,"src":"1625:12:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100382,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100385,"mutability":"mutable","name":"to","nameLocation":"1647:2:142","nodeType":"VariableDeclaration","scope":100405,"src":"1639:10:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100384,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100387,"mutability":"mutable","name":"amount","nameLocation":"1659:6:142","nodeType":"VariableDeclaration","scope":100405,"src":"1651:14:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100386,"name":"uint256","nodeType":"ElementaryTypeName","src":"1651:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1624:42:142"},"returnParameters":{"id":100392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100405,"src":"1700:4:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100390,"name":"bool","nodeType":"ElementaryTypeName","src":"1700:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1699:6:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100424,"nodeType":"FunctionDefinition","src":"1798:184:142","nodes":[],"body":{"id":100423,"nodeType":"Block","src":"1901:81:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100418,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100407,"src":"1954:7:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100417,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"1942:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100419,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100420,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100409,"src":"1964:10:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100415,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1918:5:142","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100453_$","typeString":"type(contract super TERC20)"}},"id":100416,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:17:142","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1918:23:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":100421,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1918:57:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100414,"id":100422,"nodeType":"Return","src":"1911:64:142"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1807:17:142","overrides":{"id":100411,"nodeType":"OverrideSpecifier","overrides":[],"src":"1877:8:142"},"parameters":{"id":100410,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100407,"mutability":"mutable","name":"spender","nameLocation":"1833:7:142","nodeType":"VariableDeclaration","scope":100424,"src":"1825:15:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100406,"name":"address","nodeType":"ElementaryTypeName","src":"1825:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100409,"mutability":"mutable","name":"difference","nameLocation":"1850:10:142","nodeType":"VariableDeclaration","scope":100424,"src":"1842:18:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100408,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1824:37:142"},"returnParameters":{"id":100414,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100413,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100424,"src":"1895:4:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100412,"name":"bool","nodeType":"ElementaryTypeName","src":"1895:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1894:6:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100443,"nodeType":"FunctionDefinition","src":"1988:184:142","nodes":[],"body":{"id":100442,"nodeType":"Block","src":"2091:81:142","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":100437,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100426,"src":"2144:7:142","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":100436,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100452,"src":"2132:11:142","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":100438,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:20:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":100439,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":100428,"src":"2154:10:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":100434,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2108:5:142","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$100453_$","typeString":"type(contract super TERC20)"}},"id":100435,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2114:17:142","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2108:23:142","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":100440,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2108:57:142","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":100433,"id":100441,"nodeType":"Return","src":"2101:64:142"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1997:17:142","overrides":{"id":100430,"nodeType":"OverrideSpecifier","overrides":[],"src":"2067:8:142"},"parameters":{"id":100429,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100426,"mutability":"mutable","name":"spender","nameLocation":"2023:7:142","nodeType":"VariableDeclaration","scope":100443,"src":"2015:15:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100425,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":100428,"mutability":"mutable","name":"difference","nameLocation":"2040:10:142","nodeType":"VariableDeclaration","scope":100443,"src":"2032:18:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":100427,"name":"uint256","nodeType":"ElementaryTypeName","src":"2032:7:142","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2014:37:142"},"returnParameters":{"id":100433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100432,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":100443,"src":"2085:4:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":100431,"name":"bool","nodeType":"ElementaryTypeName","src":"2085:4:142","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2084:6:142"},"scope":100453,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":100452,"nodeType":"FunctionDefinition","src":"2178:195:142","nodes":[],"body":{"id":100451,"nodeType":"Block","src":"2249:124:142","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2311:56:142","statements":[{"nodeType":"YulAssignment","src":"2325:32:142","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2338:1:142"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2345:3:142","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2350:3:142"},"nodeType":"YulFunctionCall","src":"2350:5:142"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2341:3:142"},"nodeType":"YulFunctionCall","src":"2341:15:142"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2335:2:142"},"nodeType":"YulFunctionCall","src":"2335:22:142"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2325:6:142"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":100445,"isOffset":false,"isSlot":false,"src":"2338:1:142","valueSize":1},{"declaration":100448,"isOffset":false,"isSlot":false,"src":"2325:6:142","valueSize":1}],"id":100450,"nodeType":"InlineAssembly","src":"2302:65:142"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2187:11:142","parameters":{"id":100446,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100445,"mutability":"mutable","name":"a","nameLocation":"2207:1:142","nodeType":"VariableDeclaration","scope":100452,"src":"2199:9:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100444,"name":"address","nodeType":"ElementaryTypeName","src":"2199:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2198:11:142"},"returnParameters":{"id":100449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":100448,"mutability":"mutable","name":"result","nameLocation":"2241:6:142","nodeType":"VariableDeclaration","scope":100452,"src":"2233:14:142","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":100447,"name":"address","nodeType":"ElementaryTypeName","src":"2233:7:142","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2232:16:142"},"scope":100453,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":100236,"name":"ERC20","nameLocations":["309:5:142"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"309:5:142"},"id":100237,"nodeType":"InheritanceSpecifier","src":"309:5:142"}],"canonicalName":"TERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":100235,"nodeType":"StructuredDocumentation","src":"120:170:142","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[100453,4491],"name":"TERC20","nameLocation":"299:6:142","scope":100454,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":142} \ No newline at end of file +{"abi":[{"type":"constructor","inputs":[{"name":"name_","type":"string","internalType":"string"},{"name":"symbol_","type":"string","internalType":"string"},{"name":"decimals_","type":"uint8","internalType":"uint8"}],"stateMutability":"nonpayable"},{"type":"function","name":"DOMAIN_SEPARATOR","inputs":[],"outputs":[{"name":"result","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"allowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"burn","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"decimals","inputs":[],"outputs":[{"name":"","type":"uint8","internalType":"uint8"}],"stateMutability":"view"},{"type":"function","name":"decreaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"directSpendAllowance","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"directTransfer","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"increaseAllowance","inputs":[{"name":"spender","type":"address","internalType":"address"},{"name":"difference","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"mint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"nonces","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"permit","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"spender","type":"address","internalType":"address"},{"name":"value","type":"uint256","internalType":"uint256"},{"name":"deadline","type":"uint256","internalType":"uint256"},{"name":"v","type":"uint8","internalType":"uint8"},{"name":"r","type":"bytes32","internalType":"bytes32"},{"name":"s","type":"bytes32","internalType":"bytes32"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"result","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transfer","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"amount","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"spender","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"amount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AllowanceOverflow","inputs":[]},{"type":"error","name":"AllowanceUnderflow","inputs":[]},{"type":"error","name":"InsufficientAllowance","inputs":[]},{"type":"error","name":"InsufficientBalance","inputs":[]},{"type":"error","name":"InvalidPermit","inputs":[]},{"type":"error","name":"PermitExpired","inputs":[]},{"type":"error","name":"TotalSupplyOverflow","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b5060405162000f8a38038062000f8a833981016040819052620000349162000134565b600062000042848262000248565b50600162000051838262000248565b506002805460ff191660ff9290921691909117905550620003149050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200009757600080fd5b81516001600160401b0380821115620000b457620000b46200006f565b604051601f8301601f19908116603f01168101908282118183101715620000df57620000df6200006f565b81604052838152602092508683858801011115620000fc57600080fd5b600091505b8382101562000120578582018301518183018401529082019062000101565b600093810190920192909252949350505050565b6000806000606084860312156200014a57600080fd5b83516001600160401b03808211156200016257600080fd5b620001708783880162000085565b945060208601519150808211156200018757600080fd5b50620001968682870162000085565b925050604084015160ff81168114620001ae57600080fd5b809150509250925092565b600181811c90821680620001ce57607f821691505b602082108103620001ef57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200024357600081815260208120601f850160051c810160208610156200021e5750805b601f850160051c820191505b818110156200023f578281556001016200022a565b5050505b505050565b81516001600160401b038111156200026457620002646200006f565b6200027c81620002758454620001b9565b84620001f5565b602080601f831160018114620002b457600084156200029b5750858301515b600019600386901b1c1916600185901b1785556200023f565b600085815260208120601f198616915b82811015620002e557888601518255948401946001909101908401620002c4565b5085821015620003045787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610c6680620003246000396000f3fe608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212204fde32460ff7d93c1fd64e3b3c2acab14e323e5e55bff86a5288c7d93a60e66d64736f6c63430008130033","sourceMap":"290:2085:144:-:0;;;408:161;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;491:5;:13;499:5;491;:13;:::i;:::-;-1:-1:-1;514:7:144;:17;524:7;514;:17;:::i;:::-;-1:-1:-1;541:9:144;:21;;-1:-1:-1;;541:21:144;;;;;;;;;;;;-1:-1:-1;290:2085:144;;-1:-1:-1;290:2085:144;14:127:145;75:10;70:3;66:20;63:1;56:31;106:4;103:1;96:15;130:4;127:1;120:15;146:840;200:5;253:3;246:4;238:6;234:17;230:27;220:55;;271:1;268;261:12;220:55;294:13;;-1:-1:-1;;;;;356:10:145;;;353:36;;;369:18;;:::i;:::-;444:2;438:9;412:2;498:13;;-1:-1:-1;;494:22:145;;;518:2;490:31;486:40;474:53;;;542:18;;;562:22;;;539:46;536:72;;;588:18;;:::i;:::-;628:10;624:2;617:22;663:2;655:6;648:18;685:4;675:14;;730:3;725:2;720;712:6;708:15;704:24;701:33;698:53;;;747:1;744;737:12;698:53;769:1;760:10;;779:133;793:2;790:1;787:9;779:133;;;881:14;;;877:23;;871:30;850:14;;;846:23;;839:63;804:10;;;;779:133;;;954:1;932:15;;;928:24;;;921:35;;;;936:6;146:840;-1:-1:-1;;;;146:840:145:o;991:712::-;1097:6;1105;1113;1166:2;1154:9;1145:7;1141:23;1137:32;1134:52;;;1182:1;1179;1172:12;1134:52;1209:16;;-1:-1:-1;;;;;1274:14:145;;;1271:34;;;1301:1;1298;1291:12;1271:34;1324:61;1377:7;1368:6;1357:9;1353:22;1324:61;:::i;:::-;1314:71;;1431:2;1420:9;1416:18;1410:25;1394:41;;1460:2;1450:8;1447:16;1444:36;;;1476:1;1473;1466:12;1444:36;;1499:63;1554:7;1543:8;1532:9;1528:24;1499:63;:::i;:::-;1489:73;;;1605:2;1594:9;1590:18;1584:25;1649:4;1642:5;1638:16;1631:5;1628:27;1618:55;;1669:1;1666;1659:12;1618:55;1692:5;1682:15;;;991:712;;;;;:::o;1708:380::-;1787:1;1783:12;;;;1830;;;1851:61;;1905:4;1897:6;1893:17;1883:27;;1851:61;1958:2;1950:6;1947:14;1927:18;1924:38;1921:161;;2004:10;1999:3;1995:20;1992:1;1985:31;2039:4;2036:1;2029:15;2067:4;2064:1;2057:15;1921:161;;1708:380;;;:::o;2219:545::-;2321:2;2316:3;2313:11;2310:448;;;2357:1;2382:5;2378:2;2371:17;2427:4;2423:2;2413:19;2497:2;2485:10;2481:19;2478:1;2474:27;2468:4;2464:38;2533:4;2521:10;2518:20;2515:47;;;-1:-1:-1;2556:4:145;2515:47;2611:2;2606:3;2602:12;2599:1;2595:20;2589:4;2585:31;2575:41;;2666:82;2684:2;2677:5;2674:13;2666:82;;;2729:17;;;2710:1;2699:13;2666:82;;;2670:3;;;2310:448;2219:545;;;:::o;2940:1352::-;3060:10;;-1:-1:-1;;;;;3082:30:145;;3079:56;;;3115:18;;:::i;:::-;3144:97;3234:6;3194:38;3226:4;3220:11;3194:38;:::i;:::-;3188:4;3144:97;:::i;:::-;3296:4;;3360:2;3349:14;;3377:1;3372:663;;;;4079:1;4096:6;4093:89;;;-1:-1:-1;4148:19:145;;;4142:26;4093:89;-1:-1:-1;;2897:1:145;2893:11;;;2889:24;2885:29;2875:40;2921:1;2917:11;;;2872:57;4195:81;;3342:944;;3372:663;2166:1;2159:14;;;2203:4;2190:18;;-1:-1:-1;;3408:20:145;;;3526:236;3540:7;3537:1;3534:14;3526:236;;;3629:19;;;3623:26;3608:42;;3721:27;;;;3689:1;3677:14;;;;3556:19;;3526:236;;;3530:3;3790:6;3781:7;3778:19;3775:201;;;3851:19;;;3845:26;-1:-1:-1;;3934:1:145;3930:14;;;3946:3;3926:24;3922:37;3918:42;3903:58;3888:74;;3775:201;-1:-1:-1;;;;;4022:1:145;4006:14;;;4002:22;3989:36;;-1:-1:-1;2940:1352:145:o;:::-;290:2085:144;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101365760003560e01c80637ecebe00116100b2578063a9059cbb11610081578063d505accf11610066578063d505accf1461028e578063dd62ed3e146102a1578063f83d1791146102ca57600080fd5b8063a9059cbb14610268578063d30ed3b31461027b57600080fd5b80637ecebe001461021457806395d89b411461023a5780639dc29fac14610242578063a457c2d71461025557600080fd5b8063313ce5671161010957806339509351116100ee57806339509351146101c657806340c10f19146101d957806370a08231146101ee57600080fd5b8063313ce567146101a95780633644e515146101be57600080fd5b806306fdde031461013b578063095ea7b31461015957806318160ddd1461017c57806323b872dd14610196575b600080fd5b6101436102dd565b6040516101509190610a3f565b60405180910390f35b61016c610167366004610ab6565b61036f565b6040519015158152602001610150565b6805345cdf77eb68f44c545b604051908152602001610150565b61016c6101a4366004610ae0565b6103c2565b60025460405160ff9091168152602001610150565b6101886103e7565b61016c6101d4366004610ab6565b61045d565b6101ec6101e7366004610ab6565b610478565b005b6101886101fc366004610b1c565b6387a211a2600c908152600091909152602090205490565b610188610222366004610b1c565b6338377508600c908152600091909152602090205490565b61014361048e565b6101ec610250366004610ab6565b61049d565b61016c610263366004610ab6565b6104af565b61016c610276366004610ab6565b6104c3565b6101ec610289366004610ae0565b6104d7565b6101ec61029c366004610b37565b6104f7565b6101886102af366004610baa565b602052637f5e9f20600c908152600091909152603490205490565b6101ec6102d8366004610ae0565b610636565b6060600080546102ec90610bdd565b80601f016020809104026020016040519081016040528092919081815260200182805461031890610bdd565b80156103655780601f1061033a57610100808354040283529160200191610365565b820191906000526020600020905b81548152906001019060200180831161034857829003601f168201915b5050505050905090565b600082602052637f5e9f20600c5233600052816034600c205581600052602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006103df6103d085610651565b6103d985610651565b84610660565b949350505050565b60405160006103f46102dd565b80516020918201207f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f845290830152507fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015260a0902090565b600061047161046b84610651565b8361071e565b9392505050565b61048a61048483610651565b82610790565b5050565b6060600180546102ec90610bdd565b61048a6104a983610651565b8261080f565b60006104716104bd84610651565b83610893565b60006104716104d184610651565b83610906565b6104f26104e384610651565b6104ec84610651565b83610981565b505050565b60006105016103e7565b90506040518542111561051c57631a15a3cc6000526004601cfd5b8860601b60601c98508760601b60601c97506338377508600c52886000526020600c2080546001810182557f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c983528a602084015289604084015288606084015280608084015250508560a08201526119016000528160205260c081206040526042601e206000528460ff1660205283604052826060526020806080600060015afa50883d51146105d45763ddafbaef6000526004601cfd5b777f5e9f20000000000000000000000000000000000000000088176040526034602c2087905587897f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925602060608501a360405250506000606052505050505050565b6104f261064284610651565b61064b84610651565b836109c4565b60005a60a01b82179050919050565b60008360601b33602052637f5e9f208117600c526034600c20805460001981146106a0578085111561069a576313be252b6000526004601cfd5b84810382555b50506387a211a28117600c526020600c208054808511156106c95763f4d678b86000526004601cfd5b84810382555050836000526020600c208381540181555082602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a3505060019392505050565b600082602052637f5e9f20600c52336000526034600c208054838101818110156107505763f90670666000526004601cfd5b80835580600052505050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b6805345cdf77eb68f44c54818101818110156107b45763e5cfe9576000526004601cfd5b806805345cdf77eb68f44c5550506387a211a2600c52816000526020600c208181540181555080602052600c5160601c60007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a35050565b6387a211a2600c52816000526020600c208054808311156108385763f4d678b86000526004601cfd5b82900390556805345cdf77eb68f44c80548290039055600081815273ffffffffffffffffffffffffffffffffffffffff83167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602083a35050565b600082602052637f5e9f20600c52336000526034600c208054838110156108c257638301ab386000526004601cfd5b8381039050808255806000525050602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560206000a350600192915050565b60006387a211a2600c52336000526020600c208054808411156109315763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350600192915050565b81602052637f5e9f20600c52826000526034600c20805460001981146109bd57808311156109b7576313be252b6000526004601cfd5b82810382555b5050505050565b8260601b6387a211a28117600c526020600c208054808411156109ef5763f4d678b86000526004601cfd5b83810382555050826000526020600c208281540181555081602052600c5160601c8160601c7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a350505050565b600060208083528351808285015260005b81811015610a6c57858101830151858201604001528201610a50565b506000604082860101526040601f19601f8301168501019250505092915050565b803573ffffffffffffffffffffffffffffffffffffffff81168114610ab157600080fd5b919050565b60008060408385031215610ac957600080fd5b610ad283610a8d565b946020939093013593505050565b600080600060608486031215610af557600080fd5b610afe84610a8d565b9250610b0c60208501610a8d565b9150604084013590509250925092565b600060208284031215610b2e57600080fd5b61047182610a8d565b600080600080600080600060e0888a031215610b5257600080fd5b610b5b88610a8d565b9650610b6960208901610a8d565b95506040880135945060608801359350608088013560ff81168114610b8d57600080fd5b9699959850939692959460a0840135945060c09093013592915050565b60008060408385031215610bbd57600080fd5b610bc683610a8d565b9150610bd460208401610a8d565b90509250929050565b600181811c90821680610bf157607f821691505b602082108103610c2a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b5091905056fea26469706673582212204fde32460ff7d93c1fd64e3b3c2acab14e323e5e55bff86a5288c7d93a60e66d64736f6c63430008130033","sourceMap":"290:2085:144:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5995:573:13;;;;;;:::i;:::-;;:::i;:::-;;;1192:14:145;;1185:22;1167:41;;1155:2;1140:18;5995:573:13;1027:187:145;4847:195:13;5007:18;5001:25;4847:195;;;1365:25:145;;;1353:2;1338:18;4847:195:13;1219:177:145;1603:189:144;;;;;;:::i;:::-;;:::i;787:98::-;869:9;;787:98;;869:9;;;;1876:36:145;;1864:2;1849:18;787:98:144;1734:184:145;17096:1062:13;;;:::i;1798:184:144:-;;;;;;:::i;:::-;;:::i;891:102::-;;;;;;:::i;:::-;;:::i;:::-;;5108:286:13;;;;;;:::i;:::-;5276:18;5270:4;5263:32;;;5171:14;5308:19;;;;5372:4;5356:21;;5350:28;;5108:286;13503:340;;;;;;:::i;:::-;13726:17;13720:4;13713:31;;;13563:14;13757:19;;;;13821:4;13805:21;;13799:28;;13503:340;679:102:144;;;:::i;999:106::-;;;;;;:::i;:::-;;:::i;1988:184::-;;;;;;:::i;:::-;;:::i;1449:148::-;;;;;;:::i;:::-;;:::i;1268:175::-;;;;;;:::i;:::-;;:::i;14027:3010:13:-;;;;;;:::i;:::-;;:::i;5489:375::-;;;;;;:::i;:::-;5704:4;5697:21;5744:20;5738:4;5731:34;;;5601:14;5778:19;;;;5842:4;5826:21;;5820:28;;5489:375;1111:151:144;;;;;;:::i;:::-;;:::i;575:98::-;629:13;661:5;654:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;575:98;:::o;5995:573:13:-;6069:4;6228:7;6222:4;6215:21;6262:20;6256:4;6249:34;6309:8;6303:4;6296:22;6361:6;6354:4;6348;6338:21;6331:37;6436:6;6430:4;6423:20;6524:4;6518:11;6514:2;6510:20;6500:8;6473:25;6467:4;6461;6456:75;-1:-1:-1;6557:4:13;5995:573;;;;:::o;1603:189:144:-;1700:4;1723:62;1742:17;1754:4;1742:11;:17::i;:::-;1761:15;1773:2;1761:11;:15::i;:::-;1778:6;1723:18;:62::i;:::-;1716:69;1603:189;-1:-1:-1;;;;1603:189:144:o;17096:1062:13:-;17261:4;17255:11;17153:14;17447:6;:4;:6::i;:::-;17431:24;;;;;;;17726:66;17716:77;;17813:12;;;17806:30;-1:-1:-1;17946:66:13;17939:4;17932:12;;17925:88;18047:9;18040:4;18033:12;;18026:31;18091:9;18084:4;18077:12;;18070:31;18137:4;18124:18;;;17096:1062::o;1798:184:144:-;1895:4;1918:57;1942:20;1954:7;1942:11;:20::i;:::-;1964:10;1918:23;:57::i;:::-;1911:64;1798:184;-1:-1:-1;;;1798:184:144:o;891:102::-;957:29;963:15;975:2;963:11;:15::i;:::-;980:5;957;:29::i;:::-;891:102;;:::o;679:::-;735:13;767:7;760:14;;;;;:::i;999:106::-;1067:31;1073:17;1085:4;1073:11;:17::i;:::-;1092:5;1067;:31::i;1988:184::-;2085:4;2108:57;2132:20;2144:7;2132:11;:20::i;:::-;2154:10;2108:23;:57::i;1449:148::-;1528:4;1551:39;1566:15;1578:2;1566:11;:15::i;:::-;1583:6;1551:14;:39::i;1268:175::-;1371:65;1387:18;1399:5;1387:11;:18::i;:::-;1407:20;1419:7;1407:11;:20::i;:::-;1429:6;1371:15;:65::i;:::-;1268:175;;;:::o;14027:3010:13:-;14226:23;14252:18;:16;:18::i;:::-;14226:44;;14406:4;14400:11;14513:8;14500:11;14497:25;14494:142;;;14554:10;14548:4;14541:24;14617:4;14611;14604:18;14494:142;14714:5;14710:2;14706:14;14702:2;14698:23;14689:32;;14761:7;14757:2;14753:16;14749:2;14745:25;14734:36;;14854:17;14848:4;14841:31;14898:5;14892:4;14885:19;14950:4;14944;14934:21;14992:9;14986:16;15103:1;15091:10;15087:18;15076:9;15069:37;15325:66;15322:1;15315:77;15426:5;15419:4;15416:1;15412:12;15405:27;15466:7;15459:4;15456:1;15452:12;15445:29;15508:5;15501:4;15498:1;15494:12;15487:27;15548:10;15541:4;15538:1;15534:12;15527:32;;;15593:8;15586:4;15583:1;15579:12;15572:30;15664:6;15661:1;15654:17;15697:15;15691:4;15684:29;15752:4;15749:1;15739:18;15733:4;15726:32;15844:4;15838;15828:21;15825:1;15818:32;15886:1;15880:4;15876:12;15870:4;15863:26;15915:1;15909:4;15902:15;15943:1;15937:4;15930:15;15998:4;15992;15986;15983:1;15980;15973:5;15962:41;15958:46;16423:5;16404:16;16398:23;16395:34;16385:159;;16462:10;16456:4;16449:24;16525:4;16519;16512:18;16385:159;16688:30;16685:43;;16679:4;16672:57;16765:4;16759;16749:21;16742:36;;;16720:7;16885:5;16858:25;-1:-1:-1;16845:4:13;16838:12;;16833:67;16920:4;16913:15;-1:-1:-1;;16990:1:13;16984:4;16977:15;-1:-1:-1;;;;;;14027:3010:13:o;1111:151:144:-;1202:53;1212:17;1224:4;1212:11;:17::i;:::-;1231:15;1243:2;1231:11;:15::i;:::-;1248:6;1202:9;:53::i;2178:195::-;2233:14;2350:5;2345:3;2341:15;2338:1;2335:22;2325:32;;2178:195;;;:::o;10886:2203:13:-;10974:4;11125;11121:2;11117:13;11218:8;11212:4;11205:22;11263:20;11256:5;11253:31;11247:4;11240:45;11335:4;11329;11319:21;11377:13;11371:20;11499:1;11495:6;11483:10;11480:22;11470:430;;11617:10;11609:6;11606:22;11603:159;;;11664:10;11658:4;11651:24;11739:4;11733;11726:18;11603:159;11878:6;11866:10;11862:23;11847:13;11840:46;11470:430;;;11996:18;11989:5;11986:29;11980:4;11973:43;12068:4;12062;12052:21;12111:15;12105:22;12201:11;12193:6;12190:23;12187:146;;;12245:10;12239:4;12232:24;12314:4;12308;12301:18;12187:146;12442:6;12429:11;12425:24;12408:15;12401:49;;;12525:2;12519:4;12512:16;12578:4;12572;12562:21;12828:6;12812:13;12806:20;12802:33;12787:13;12780:56;;12904:6;12898:4;12891:20;12998:4;12992:11;12988:2;12984:20;12976:5;12972:2;12968:14;12941:25;12935:4;12929;12924:81;;-1:-1:-1;13078:4:13;10886:2203;;;;;:::o;6700:1058::-;6788:4;6945:7;6939:4;6932:21;6979:20;6973:4;6966:34;7026:8;7020:4;7013:22;7085:4;7079;7069:21;7132:13;7126:20;7239:10;7222:15;7218:32;7322:15;7306:14;7303:35;7300:156;;;7370:10;7364:4;7357:24;7437:4;7431;7424:18;7300:156;7535:14;7520:13;7513:37;7618:14;7612:4;7605:28;;;;7714:4;7708:11;7704:2;7700:20;7690:8;7663:25;7657:4;7651;7646:75;-1:-1:-1;7747:4:13;6700:1058;;;;:::o;18562:1172::-;18783:18;18777:25;18862:6;18843:17;18839:30;18959:17;18941:16;18938:39;18935:162;;;19009:10;19003:4;18996:24;19078:4;19072;19065:18;18935:162;19184:16;19164:18;19157:44;;;19287:18;19281:4;19274:32;19332:2;19326:4;19319:16;19385:4;19379;19369:21;19501:6;19485:13;19479:20;19475:33;19460:13;19453:56;;19577:6;19571:4;19564:20;19658:4;19652:11;19648:2;19644:20;19641:1;19614:25;19608:4;19602;19597:68;891:102:144;;:::o;20140:1119:13:-;20407:18;20401:4;20394:32;20452:4;20446;20439:18;20509:4;20503;20493:21;20552:15;20546:22;20642:11;20634:6;20631:23;20628:146;;;20686:10;20680:4;20673:24;20755:4;20749;20742:18;20628:146;20866:24;;;20842:49;;21001:18;20995:25;;20991:38;;;20964:66;;-1:-1:-1;21085:20:13;;;21162:22;;;21135:25;21129:4;-1:-1:-1;21118:70:13;891:102:144;;:::o;7890:1035:13:-;7978:4;8135:7;8129:4;8122:21;8169:20;8163:4;8156:34;8216:8;8210:4;8203:22;8275:4;8269;8259:21;8322:13;8316:20;8413:10;8396:15;8393:31;8390:153;;;8456:10;8450:4;8443:24;8524:4;8518;8511:18;8390:153;8656:10;8639:15;8635:32;8613:54;;8702:14;8687:13;8680:37;8785:14;8779:4;8772:28;;;8881:4;8875:11;8871:2;8867:20;8857:8;8830:25;8824:4;8818;8813:75;-1:-1:-1;8914:4:13;7890:1035;;;;:::o;9112:1406::-;9182:4;9391:18;9385:4;9378:32;9436:8;9430:4;9423:22;9497:4;9491;9481:21;9540:15;9534:22;9630:11;9622:6;9619:23;9616:146;;;9674:10;9668:4;9661:24;9743:4;9737;9730:18;9616:146;9871:6;9858:11;9854:24;9837:15;9830:49;;;9954:2;9948:4;9941:16;10007:4;10001;9991:21;10257:6;10241:13;10235:20;10231:33;10216:13;10209:56;;10333:6;10327:4;10320:20;10421:4;10415:11;10411:2;10407:20;10397:8;10370:25;10364:4;10358;10353:75;-1:-1:-1;10507:4:13;9112:1406;;;;:::o;23377:959::-;23618:7;23612:4;23605:21;23652:20;23646:4;23639:34;23699:5;23693:4;23686:19;23755:4;23749;23739:21;23797:13;23791:20;23919:1;23915:6;23903:10;23900:22;23890:430;;24037:10;24029:6;24026:22;24023:159;;;24084:10;24078:4;24071:24;24159:4;24153;24146:18;24023:159;24298:6;24286:10;24282:23;24267:13;24260:46;23890:430;;;23377:959;;;:::o;21607:1396::-;21830:4;21826:2;21822:13;21931:18;21924:5;21921:29;21915:4;21908:43;22003:4;21997;21987:21;22046:15;22040:22;22136:11;22128:6;22125:23;22122:146;;;22180:10;22174:4;22167:24;22249:4;22243;22236:18;22122:146;22377:6;22364:11;22360:24;22343:15;22336:49;;;22460:2;22454:4;22447:16;22513:4;22507;22497:21;22763:6;22747:13;22741:20;22737:33;22722:13;22715:56;;22839:6;22833:4;22826:20;22933:4;22927:11;22923:2;22919:20;22911:5;22907:2;22903:14;22876:25;22870:4;22864;22859:81;;1268:175:144;;;:::o;14:548:145:-;126:4;155:2;184;173:9;166:21;216:6;210:13;259:6;254:2;243:9;239:18;232:34;284:1;294:140;308:6;305:1;302:13;294:140;;;403:14;;;399:23;;393:30;369:17;;;388:2;365:26;358:66;323:10;;294:140;;;298:3;483:1;478:2;469:6;458:9;454:22;450:31;443:42;553:2;546;542:7;537:2;529:6;525:15;521:29;510:9;506:45;502:54;494:62;;;;14:548;;;;:::o;567:196::-;635:20;;695:42;684:54;;674:65;;664:93;;753:1;750;743:12;664:93;567:196;;;:::o;768:254::-;836:6;844;897:2;885:9;876:7;872:23;868:32;865:52;;;913:1;910;903:12;865:52;936:29;955:9;936:29;:::i;:::-;926:39;1012:2;997:18;;;;984:32;;-1:-1:-1;;;768:254:145:o;1401:328::-;1478:6;1486;1494;1547:2;1535:9;1526:7;1522:23;1518:32;1515:52;;;1563:1;1560;1553:12;1515:52;1586:29;1605:9;1586:29;:::i;:::-;1576:39;;1634:38;1668:2;1657:9;1653:18;1634:38;:::i;:::-;1624:48;;1719:2;1708:9;1704:18;1691:32;1681:42;;1401:328;;;;;:::o;2105:186::-;2164:6;2217:2;2205:9;2196:7;2192:23;2188:32;2185:52;;;2233:1;2230;2223:12;2185:52;2256:29;2275:9;2256:29;:::i;2296:693::-;2407:6;2415;2423;2431;2439;2447;2455;2508:3;2496:9;2487:7;2483:23;2479:33;2476:53;;;2525:1;2522;2515:12;2476:53;2548:29;2567:9;2548:29;:::i;:::-;2538:39;;2596:38;2630:2;2619:9;2615:18;2596:38;:::i;:::-;2586:48;;2681:2;2670:9;2666:18;2653:32;2643:42;;2732:2;2721:9;2717:18;2704:32;2694:42;;2786:3;2775:9;2771:19;2758:33;2831:4;2824:5;2820:16;2813:5;2810:27;2800:55;;2851:1;2848;2841:12;2800:55;2296:693;;;;-1:-1:-1;2296:693:145;;;;2874:5;2926:3;2911:19;;2898:33;;-1:-1:-1;2978:3:145;2963:19;;;2950:33;;2296:693;-1:-1:-1;;2296:693:145:o;2994:260::-;3062:6;3070;3123:2;3111:9;3102:7;3098:23;3094:32;3091:52;;;3139:1;3136;3129:12;3091:52;3162:29;3181:9;3162:29;:::i;:::-;3152:39;;3210:38;3244:2;3233:9;3229:18;3210:38;:::i;:::-;3200:48;;2994:260;;;;;:::o;3259:437::-;3338:1;3334:12;;;;3381;;;3402:61;;3456:4;3448:6;3444:17;3434:27;;3402:61;3509:2;3501:6;3498:14;3478:18;3475:38;3472:218;;3546:77;3543:1;3536:88;3647:4;3644:1;3637:15;3675:4;3672:1;3665:15;3472:218;;3259:437;;;:::o","linkReferences":{}},"methodIdentifiers":{"DOMAIN_SEPARATOR()":"3644e515","allowance(address,address)":"dd62ed3e","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","burn(address,uint256)":"9dc29fac","decimals()":"313ce567","decreaseAllowance(address,uint256)":"a457c2d7","directSpendAllowance(address,address,uint256)":"d30ed3b3","directTransfer(address,address,uint256)":"f83d1791","increaseAllowance(address,uint256)":"39509351","mint(address,uint256)":"40c10f19","name()":"06fdde03","nonces(address)":"7ecebe00","permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":"d505accf","symbol()":"95d89b41","totalSupply()":"18160ddd","transfer(address,uint256)":"a9059cbb","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"name_\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"symbol_\",\"type\":\"string\"},{\"internalType\":\"uint8\",\"name\":\"decimals_\",\"type\":\"uint8\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AllowanceOverflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"AllowanceUnderflow\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientAllowance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InsufficientBalance\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidPermit\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"PermitExpired\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"TotalSupplyOverflow\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DOMAIN_SEPARATOR\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"result\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"}],\"name\":\"allowance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"decimals\",\"outputs\":[{\"internalType\":\"uint8\",\"name\":\"\",\"type\":\"uint8\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"decreaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directSpendAllowance\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"}],\"name\":\"directTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"difference\",\"type\":\"uint256\"}],\"name\":\"increaseAllowance\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"nonces\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"spender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"deadline\",\"type\":\"uint256\"},{\"internalType\":\"uint8\",\"name\":\"v\",\"type\":\"uint8\"},{\"internalType\":\"bytes32\",\"name\":\"r\",\"type\":\"bytes32\"},{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"permit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"result\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"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\":\"amount\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"WARNING! This mock is strictly intended for testing purposes only. Do NOT copy anything here into production code unless you really know what you are doing.\",\"errors\":{\"AllowanceOverflow()\":[{\"details\":\"The allowance has overflowed.\"}],\"AllowanceUnderflow()\":[{\"details\":\"The allowance has underflowed.\"}],\"InsufficientAllowance()\":[{\"details\":\"Insufficient allowance.\"}],\"InsufficientBalance()\":[{\"details\":\"Insufficient balance.\"}],\"InvalidPermit()\":[{\"details\":\"The permit is invalid.\"}],\"PermitExpired()\":[{\"details\":\"The permit has expired.\"}],\"TotalSupplyOverflow()\":[{\"details\":\"The total supply has overflowed.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is approved by `owner` to be used by `spender`.\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `amount` tokens is transferred from `from` to `to`.\"}},\"kind\":\"dev\",\"methods\":{\"DOMAIN_SEPARATOR()\":{\"details\":\"Returns the EIP-2612 domains separator.\"},\"allowance(address,address)\":{\"details\":\"Returns the amount of tokens that `spender` can spend on behalf of `owner`.\"},\"approve(address,uint256)\":{\"details\":\"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event.\"},\"balanceOf(address)\":{\"details\":\"Returns the amount of tokens owned by `owner`.\"},\"decimals()\":{\"details\":\"Returns the decimals places of the token.\"},\"decreaseAllowance(address,uint256)\":{\"details\":\"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"increaseAllowance(address,uint256)\":{\"details\":\"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event.\"},\"name()\":{\"details\":\"Returns the name of the token.\"},\"nonces(address)\":{\"details\":\"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit.\"},\"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)\":{\"details\":\"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event.\"},\"symbol()\":{\"details\":\"Returns the symbol of the token.\"},\"totalSupply()\":{\"details\":\"Returns the amount of tokens in existence.\"},\"transfer(address,uint256)\":{\"details\":\"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"pkg/contracts/test/shared/TERC20.sol\":\"TERC20\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":1000},\"remappings\":[\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/\",\":@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/\",\":@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":@sablier/v2-core/=lib/allo-v2/lib/v2-core/\",\":ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/\",\":allo-v2-contracts/=lib/allo-v2/contracts/\",\":allo-v2-test/=lib/allo-v2/test/\",\":allo-v2/=lib/allo-v2/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/\",\":erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/\",\":forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/\",\":forge-std/=lib/forge-std/src/\",\":hats-protocol/=lib/allo-v2/lib/hats-protocol/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/\",\":openzeppelin/=lib/openzeppelin-contracts/contracts/\",\":permit2/=lib/allo-v2/lib/permit2/\",\":prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/\",\":prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/\",\":safe-contracts/=lib/safe-contracts/\",\":solady/=lib/allo-v2/lib/solady/\",\":solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/\",\":solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/\",\":solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/\",\":solmate/=lib/allo-v2/lib/permit2/lib/solmate/\",\":utils/=lib/allo-v2/lib/hats-protocol/lib/utils/\",\":v2-core/=lib/allo-v2/lib/v2-core/\"]},\"sources\":{\"lib/allo-v2/lib/solady/src/tokens/ERC20.sol\":{\"keccak256\":\"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea\",\"dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK\"]},\"pkg/contracts/test/shared/TERC20.sol\":{\"keccak256\":\"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9\",\"license\":\"AGPL-3.0-only\",\"urls\":[\"bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e\",\"dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.19+commit.7dd6d404"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"name_","type":"string"},{"internalType":"string","name":"symbol_","type":"string"},{"internalType":"uint8","name":"decimals_","type":"uint8"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AllowanceOverflow"},{"inputs":[],"type":"error","name":"AllowanceUnderflow"},{"inputs":[],"type":"error","name":"InsufficientAllowance"},{"inputs":[],"type":"error","name":"InsufficientBalance"},{"inputs":[],"type":"error","name":"InvalidPermit"},{"inputs":[],"type":"error","name":"PermitExpired"},{"inputs":[],"type":"error","name":"TotalSupplyOverflow"},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"address","name":"spender","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Approval","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"amount","type":"uint256","indexed":false}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"stateMutability":"view","type":"function","name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"burn"},{"inputs":[],"stateMutability":"view","type":"function","name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}]},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directSpendAllowance"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"directTransfer"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"difference","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"mint"},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"stateMutability":"nonpayable","type":"function","name":"permit"},{"inputs":[],"stateMutability":"view","type":"function","name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}]}],"devdoc":{"kind":"dev","methods":{"DOMAIN_SEPARATOR()":{"details":"Returns the EIP-2612 domains separator."},"allowance(address,address)":{"details":"Returns the amount of tokens that `spender` can spend on behalf of `owner`."},"approve(address,uint256)":{"details":"Sets `amount` as the allowance of `spender` over the caller's tokens. Emits a {Approval} event."},"balanceOf(address)":{"details":"Returns the amount of tokens owned by `owner`."},"decimals()":{"details":"Returns the decimals places of the token."},"decreaseAllowance(address,uint256)":{"details":"Atomically decreases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"increaseAllowance(address,uint256)":{"details":"Atomically increases the allowance granted to `spender` by the caller. Emits a {Approval} event."},"name()":{"details":"Returns the name of the token."},"nonces(address)":{"details":"Returns the current nonce for `owner`. This value is used to compute the signature for EIP-2612 permit."},"permit(address,address,uint256,uint256,uint8,bytes32,bytes32)":{"details":"Sets `value` as the allowance of `spender` over the tokens of `owner`, authorized by a signed approval by `owner`. Emits a {Approval} event."},"symbol()":{"details":"Returns the symbol of the token."},"totalSupply()":{"details":"Returns the amount of tokens in existence."},"transfer(address,uint256)":{"details":"Transfer `amount` tokens from the caller to `to`. Requirements: - `from` must at least have `amount`. Emits a {Transfer} event."},"transferFrom(address,address,uint256)":{"details":"Transfers `amount` tokens from `from` to `to`. Note: Does not update the allowance if it is the maximum uint256 value. Requirements: - `from` must at least have `amount`. - The caller must have at least `amount` of allowance to transfer the tokens of `from`. Emits a {Transfer} event."}},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","@openzeppelin/foundry/=lib/openzeppelin-foundry-upgrades/src/","@prb/math/=lib/allo-v2/lib/v2-core/lib/prb-math/","@prb/test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","@sablier/v2-core/=lib/allo-v2/lib/v2-core/","ERC1155/=lib/allo-v2/lib/hats-protocol/lib/ERC1155/","allo-v2-contracts/=lib/allo-v2/contracts/","allo-v2-test/=lib/allo-v2/test/","allo-v2/=lib/allo-v2/","ds-test/=lib/forge-std/lib/ds-test/src/","eas-contracts/=lib/allo-v2/lib/eas-contracts/contracts/","erc4626-tests/=lib/openzeppelin-contracts/lib/erc4626-tests/","forge-gas-snapshot/=lib/allo-v2/lib/permit2/lib/forge-gas-snapshot/src/","forge-std/=lib/forge-std/src/","hats-protocol/=lib/allo-v2/lib/hats-protocol/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","openzeppelin-foundry-upgrades/=lib/openzeppelin-foundry-upgrades/src/","openzeppelin/=lib/openzeppelin-contracts/contracts/","permit2/=lib/allo-v2/lib/permit2/","prb-math/=lib/allo-v2/lib/v2-core/lib/prb-math/src/","prb-test/=lib/allo-v2/lib/v2-core/lib/prb-test/src/","safe-contracts/=lib/safe-contracts/","solady/=lib/allo-v2/lib/solady/","solarray/=lib/allo-v2/lib/v2-core/lib/solarray/src/","solbase/=lib/allo-v2/lib/hats-protocol/lib/solbase/src/","solidity-stringutils/=lib/openzeppelin-foundry-upgrades/lib/solidity-stringutils/","solmate/=lib/allo-v2/lib/permit2/lib/solmate/","utils/=lib/allo-v2/lib/hats-protocol/lib/utils/","v2-core/=lib/allo-v2/lib/v2-core/"],"optimizer":{"enabled":true,"runs":1000},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"pkg/contracts/test/shared/TERC20.sol":"TERC20"},"evmVersion":"paris","libraries":{}},"sources":{"lib/allo-v2/lib/solady/src/tokens/ERC20.sol":{"keccak256":"0x264e4675697d05dfb9bbe9cc91c6bda7962d934f1e940336fd75d509b7f396c4","urls":["bzz-raw://5856338689f03f36c057203c5085243e104b8487274432062ebf076b512edeea","dweb:/ipfs/QmXrqgaWQikKkHfoBkYPxeMTJWUY5uf7kSmipNbpU35XwK"],"license":"MIT"},"pkg/contracts/test/shared/TERC20.sol":{"keccak256":"0x7a3566e91c7786a40ba285537a64e7caec4296217aa2c8a9fb31e7068b8bc9f9","urls":["bzz-raw://7c695a59c6608de5b03aeb951a08a7958b7e7f448ad604ece0cb5fa8d4165b1e","dweb:/ipfs/QmewXQxNZhEtyJHtpPmqtSAWJh7BeTa3Gi5AFFEUBvVAuq"],"license":"AGPL-3.0-only"}},"version":1},"storageLayout":{"storage":[{"astId":102242,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_name","offset":0,"slot":"0","type":"t_string_storage"},{"astId":102244,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_symbol","offset":0,"slot":"1","type":"t_string_storage"},{"astId":102246,"contract":"pkg/contracts/test/shared/TERC20.sol:TERC20","label":"_decimals","offset":0,"slot":"2","type":"t_uint8"}],"types":{"t_string_storage":{"encoding":"bytes","label":"string","numberOfBytes":"32"},"t_uint8":{"encoding":"inplace","label":"uint8","numberOfBytes":"1"}}},"ast":{"absolutePath":"pkg/contracts/test/shared/TERC20.sol","id":102457,"exportedSymbols":{"ERC20":[4491],"TERC20":[102456]},"nodeType":"SourceUnit","src":"42:2334:144","nodes":[{"id":102235,"nodeType":"PragmaDirective","src":"42:24:144","nodes":[],"literals":["solidity","^","0.8",".19"]},{"id":102237,"nodeType":"ImportDirective","src":"68:50:144","nodes":[],"absolutePath":"lib/allo-v2/lib/solady/src/tokens/ERC20.sol","file":"solady/src/tokens/ERC20.sol","nameLocation":"-1:-1:-1","scope":102457,"sourceUnit":4492,"symbolAliases":[{"foreign":{"id":102236,"name":"ERC20","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4491,"src":"76:5:144","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":102456,"nodeType":"ContractDefinition","src":"290:2085:144","nodes":[{"id":102242,"nodeType":"VariableDeclaration","src":"321:21:144","nodes":[],"constant":false,"mutability":"mutable","name":"_name","nameLocation":"337:5:144","scope":102456,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":102241,"name":"string","nodeType":"ElementaryTypeName","src":"321:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":102244,"nodeType":"VariableDeclaration","src":"348:23:144","nodes":[],"constant":false,"mutability":"mutable","name":"_symbol","nameLocation":"364:7:144","scope":102456,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":102243,"name":"string","nodeType":"ElementaryTypeName","src":"348:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"id":102246,"nodeType":"VariableDeclaration","src":"377:24:144","nodes":[],"constant":false,"mutability":"mutable","name":"_decimals","nameLocation":"392:9:144","scope":102456,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":102245,"name":"uint8","nodeType":"ElementaryTypeName","src":"377:5:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"},{"id":102268,"nodeType":"FunctionDefinition","src":"408:161:144","nodes":[],"body":{"id":102267,"nodeType":"Block","src":"481:88:144","nodes":[],"statements":[{"expression":{"id":102257,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":102255,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102242,"src":"491:5:144","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":102256,"name":"name_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102248,"src":"499:5:144","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"491:13:144","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":102258,"nodeType":"ExpressionStatement","src":"491:13:144"},{"expression":{"id":102261,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":102259,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102244,"src":"514:7:144","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":102260,"name":"symbol_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102250,"src":"524:7:144","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"514:17:144","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":102262,"nodeType":"ExpressionStatement","src":"514:17:144"},{"expression":{"id":102265,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":102263,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102246,"src":"541:9:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":102264,"name":"decimals_","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102252,"src":"553:9:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"src":"541:21:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"id":102266,"nodeType":"ExpressionStatement","src":"541:21:144"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":102253,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102248,"mutability":"mutable","name":"name_","nameLocation":"434:5:144","nodeType":"VariableDeclaration","scope":102268,"src":"420:19:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102247,"name":"string","nodeType":"ElementaryTypeName","src":"420:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":102250,"mutability":"mutable","name":"symbol_","nameLocation":"455:7:144","nodeType":"VariableDeclaration","scope":102268,"src":"441:21:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102249,"name":"string","nodeType":"ElementaryTypeName","src":"441:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":102252,"mutability":"mutable","name":"decimals_","nameLocation":"470:9:144","nodeType":"VariableDeclaration","scope":102268,"src":"464:15:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":102251,"name":"uint8","nodeType":"ElementaryTypeName","src":"464:5:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"419:61:144"},"returnParameters":{"id":102254,"nodeType":"ParameterList","parameters":[],"src":"481:0:144"},"scope":102456,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":102277,"nodeType":"FunctionDefinition","src":"575:98:144","nodes":[],"body":{"id":102276,"nodeType":"Block","src":"644:29:144","nodes":[],"statements":[{"expression":{"id":102274,"name":"_name","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102242,"src":"661:5:144","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":102273,"id":102275,"nodeType":"Return","src":"654:12:144"}]},"baseFunctions":[4167],"functionSelector":"06fdde03","implemented":true,"kind":"function","modifiers":[],"name":"name","nameLocation":"584:4:144","overrides":{"id":102270,"nodeType":"OverrideSpecifier","overrides":[],"src":"611:8:144"},"parameters":{"id":102269,"nodeType":"ParameterList","parameters":[],"src":"588:2:144"},"returnParameters":{"id":102273,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102272,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102277,"src":"629:13:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102271,"name":"string","nodeType":"ElementaryTypeName","src":"629:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"628:15:144"},"scope":102456,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":102286,"nodeType":"FunctionDefinition","src":"679:102:144","nodes":[],"body":{"id":102285,"nodeType":"Block","src":"750:31:144","nodes":[],"statements":[{"expression":{"id":102283,"name":"_symbol","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102244,"src":"767:7:144","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":102282,"id":102284,"nodeType":"Return","src":"760:14:144"}]},"baseFunctions":[4173],"functionSelector":"95d89b41","implemented":true,"kind":"function","modifiers":[],"name":"symbol","nameLocation":"688:6:144","overrides":{"id":102279,"nodeType":"OverrideSpecifier","overrides":[],"src":"717:8:144"},"parameters":{"id":102278,"nodeType":"ParameterList","parameters":[],"src":"694:2:144"},"returnParameters":{"id":102282,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102281,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102286,"src":"735:13:144","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":102280,"name":"string","nodeType":"ElementaryTypeName","src":"735:6:144","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"734:15:144"},"scope":102456,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":102295,"nodeType":"FunctionDefinition","src":"787:98:144","nodes":[],"body":{"id":102294,"nodeType":"Block","src":"852:33:144","nodes":[],"statements":[{"expression":{"id":102292,"name":"_decimals","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102246,"src":"869:9:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"functionReturnParameters":102291,"id":102293,"nodeType":"Return","src":"862:16:144"}]},"baseFunctions":[4182],"functionSelector":"313ce567","implemented":true,"kind":"function","modifiers":[],"name":"decimals","nameLocation":"796:8:144","overrides":{"id":102288,"nodeType":"OverrideSpecifier","overrides":[],"src":"827:8:144"},"parameters":{"id":102287,"nodeType":"ParameterList","parameters":[],"src":"804:2:144"},"returnParameters":{"id":102291,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102290,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102295,"src":"845:5:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"},"typeName":{"id":102289,"name":"uint8","nodeType":"ElementaryTypeName","src":"845:5:144","typeDescriptions":{"typeIdentifier":"t_uint8","typeString":"uint8"}},"visibility":"internal"}],"src":"844:7:144"},"scope":102456,"stateMutability":"view","virtual":true,"visibility":"public"},{"id":102310,"nodeType":"FunctionDefinition","src":"891:102:144","nodes":[],"body":{"id":102309,"nodeType":"Block","src":"947:46:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102304,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102297,"src":"975:2:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102303,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"963:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102305,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"963:15:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102306,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102299,"src":"980:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":102302,"name":"_mint","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4392,"src":"957:5:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":102307,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"957:29:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102308,"nodeType":"ExpressionStatement","src":"957:29:144"}]},"functionSelector":"40c10f19","implemented":true,"kind":"function","modifiers":[],"name":"mint","nameLocation":"900:4:144","parameters":{"id":102300,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102297,"mutability":"mutable","name":"to","nameLocation":"913:2:144","nodeType":"VariableDeclaration","scope":102310,"src":"905:10:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102296,"name":"address","nodeType":"ElementaryTypeName","src":"905:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102299,"mutability":"mutable","name":"value","nameLocation":"925:5:144","nodeType":"VariableDeclaration","scope":102310,"src":"917:13:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102298,"name":"uint256","nodeType":"ElementaryTypeName","src":"917:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"904:27:144"},"returnParameters":{"id":102301,"nodeType":"ParameterList","parameters":[],"src":"947:0:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102325,"nodeType":"FunctionDefinition","src":"999:106:144","nodes":[],"body":{"id":102324,"nodeType":"Block","src":"1057:48:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102319,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102312,"src":"1085:4:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102318,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1073:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102320,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1073:17:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102321,"name":"value","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102314,"src":"1092:5:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":102317,"name":"_burn","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4420,"src":"1067:5:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":102322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1067:31:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102323,"nodeType":"ExpressionStatement","src":"1067:31:144"}]},"functionSelector":"9dc29fac","implemented":true,"kind":"function","modifiers":[],"name":"burn","nameLocation":"1008:4:144","parameters":{"id":102315,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102312,"mutability":"mutable","name":"from","nameLocation":"1021:4:144","nodeType":"VariableDeclaration","scope":102325,"src":"1013:12:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102311,"name":"address","nodeType":"ElementaryTypeName","src":"1013:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102314,"mutability":"mutable","name":"value","nameLocation":"1035:5:144","nodeType":"VariableDeclaration","scope":102325,"src":"1027:13:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102313,"name":"uint256","nodeType":"ElementaryTypeName","src":"1027:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1012:29:144"},"returnParameters":{"id":102316,"nodeType":"ParameterList","parameters":[],"src":"1057:0:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102345,"nodeType":"FunctionDefinition","src":"1111:151:144","nodes":[],"body":{"id":102344,"nodeType":"Block","src":"1192:70:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102336,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102327,"src":"1224:4:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102335,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1212:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102337,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1212:17:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":102339,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102329,"src":"1243:2:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102338,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1231:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102340,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1231:15:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102341,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102331,"src":"1248:6:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":102334,"name":"_transfer","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4444,"src":"1202:9:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":102342,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1202:53:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102343,"nodeType":"ExpressionStatement","src":"1202:53:144"}]},"functionSelector":"f83d1791","implemented":true,"kind":"function","modifiers":[],"name":"directTransfer","nameLocation":"1120:14:144","parameters":{"id":102332,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102327,"mutability":"mutable","name":"from","nameLocation":"1143:4:144","nodeType":"VariableDeclaration","scope":102345,"src":"1135:12:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102326,"name":"address","nodeType":"ElementaryTypeName","src":"1135:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102329,"mutability":"mutable","name":"to","nameLocation":"1157:2:144","nodeType":"VariableDeclaration","scope":102345,"src":"1149:10:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102328,"name":"address","nodeType":"ElementaryTypeName","src":"1149:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102331,"mutability":"mutable","name":"amount","nameLocation":"1169:6:144","nodeType":"VariableDeclaration","scope":102345,"src":"1161:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102330,"name":"uint256","nodeType":"ElementaryTypeName","src":"1161:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1134:42:144"},"returnParameters":{"id":102333,"nodeType":"ParameterList","parameters":[],"src":"1192:0:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102365,"nodeType":"FunctionDefinition","src":"1268:175:144","nodes":[],"body":{"id":102364,"nodeType":"Block","src":"1361:82:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102356,"name":"owner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102347,"src":"1399:5:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102355,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1387:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102357,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1387:18:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":102359,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102349,"src":"1419:7:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102358,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1407:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102360,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1407:20:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102361,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102351,"src":"1429:6:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":102354,"name":"_spendAllowance","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":4456,"src":"1371:15:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,address,uint256)"}},"id":102362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1371:65:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":102363,"nodeType":"ExpressionStatement","src":"1371:65:144"}]},"functionSelector":"d30ed3b3","implemented":true,"kind":"function","modifiers":[],"name":"directSpendAllowance","nameLocation":"1277:20:144","parameters":{"id":102352,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102347,"mutability":"mutable","name":"owner","nameLocation":"1306:5:144","nodeType":"VariableDeclaration","scope":102365,"src":"1298:13:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102346,"name":"address","nodeType":"ElementaryTypeName","src":"1298:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102349,"mutability":"mutable","name":"spender","nameLocation":"1321:7:144","nodeType":"VariableDeclaration","scope":102365,"src":"1313:15:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102348,"name":"address","nodeType":"ElementaryTypeName","src":"1313:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102351,"mutability":"mutable","name":"amount","nameLocation":"1338:6:144","nodeType":"VariableDeclaration","scope":102365,"src":"1330:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102350,"name":"uint256","nodeType":"ElementaryTypeName","src":"1330:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1297:48:144"},"returnParameters":{"id":102353,"nodeType":"ParameterList","parameters":[],"src":"1361:0:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102384,"nodeType":"FunctionDefinition","src":"1449:148:144","nodes":[],"body":{"id":102383,"nodeType":"Block","src":"1534:63:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102378,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102367,"src":"1578:2:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102377,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1566:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102379,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1566:15:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102380,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102369,"src":"1583:6:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":102375,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1551:5:144","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$102456_$","typeString":"type(contract super TERC20)"}},"id":102376,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1557:8:144","memberName":"transfer","nodeType":"MemberAccess","referencedDeclaration":4282,"src":"1551:14:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":102381,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1551:39:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":102374,"id":102382,"nodeType":"Return","src":"1544:46:144"}]},"baseFunctions":[4282],"functionSelector":"a9059cbb","implemented":true,"kind":"function","modifiers":[],"name":"transfer","nameLocation":"1458:8:144","overrides":{"id":102371,"nodeType":"OverrideSpecifier","overrides":[],"src":"1510:8:144"},"parameters":{"id":102370,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102367,"mutability":"mutable","name":"to","nameLocation":"1475:2:144","nodeType":"VariableDeclaration","scope":102384,"src":"1467:10:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102366,"name":"address","nodeType":"ElementaryTypeName","src":"1467:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102369,"mutability":"mutable","name":"amount","nameLocation":"1487:6:144","nodeType":"VariableDeclaration","scope":102384,"src":"1479:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102368,"name":"uint256","nodeType":"ElementaryTypeName","src":"1479:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1466:28:144"},"returnParameters":{"id":102374,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102373,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102384,"src":"1528:4:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":102372,"name":"bool","nodeType":"ElementaryTypeName","src":"1528:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1527:6:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102408,"nodeType":"FunctionDefinition","src":"1603:189:144","nodes":[],"body":{"id":102407,"nodeType":"Block","src":"1706:86:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102399,"name":"from","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102386,"src":"1754:4:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102398,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1742:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102400,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1742:17:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"arguments":[{"id":102402,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102388,"src":"1773:2:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102401,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1761:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102403,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1761:15:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102404,"name":"amount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102390,"src":"1778:6:144","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":102396,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1723:5:144","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$102456_$","typeString":"type(contract super TERC20)"}},"id":102397,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1729:12:144","memberName":"transferFrom","nodeType":"MemberAccess","referencedDeclaration":4310,"src":"1723:18:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,address,uint256) returns (bool)"}},"id":102405,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1723:62:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":102395,"id":102406,"nodeType":"Return","src":"1716:69:144"}]},"baseFunctions":[4310],"functionSelector":"23b872dd","implemented":true,"kind":"function","modifiers":[],"name":"transferFrom","nameLocation":"1612:12:144","overrides":{"id":102392,"nodeType":"OverrideSpecifier","overrides":[],"src":"1682:8:144"},"parameters":{"id":102391,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102386,"mutability":"mutable","name":"from","nameLocation":"1633:4:144","nodeType":"VariableDeclaration","scope":102408,"src":"1625:12:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102385,"name":"address","nodeType":"ElementaryTypeName","src":"1625:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102388,"mutability":"mutable","name":"to","nameLocation":"1647:2:144","nodeType":"VariableDeclaration","scope":102408,"src":"1639:10:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102387,"name":"address","nodeType":"ElementaryTypeName","src":"1639:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102390,"mutability":"mutable","name":"amount","nameLocation":"1659:6:144","nodeType":"VariableDeclaration","scope":102408,"src":"1651:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102389,"name":"uint256","nodeType":"ElementaryTypeName","src":"1651:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1624:42:144"},"returnParameters":{"id":102395,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102394,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102408,"src":"1700:4:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":102393,"name":"bool","nodeType":"ElementaryTypeName","src":"1700:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1699:6:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102427,"nodeType":"FunctionDefinition","src":"1798:184:144","nodes":[],"body":{"id":102426,"nodeType":"Block","src":"1901:81:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102421,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102410,"src":"1954:7:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102420,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"1942:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102422,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1942:20:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102423,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102412,"src":"1964:10:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":102418,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"1918:5:144","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$102456_$","typeString":"type(contract super TERC20)"}},"id":102419,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1924:17:144","memberName":"increaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4240,"src":"1918:23:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":102424,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1918:57:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":102417,"id":102425,"nodeType":"Return","src":"1911:64:144"}]},"baseFunctions":[4240],"functionSelector":"39509351","implemented":true,"kind":"function","modifiers":[],"name":"increaseAllowance","nameLocation":"1807:17:144","overrides":{"id":102414,"nodeType":"OverrideSpecifier","overrides":[],"src":"1877:8:144"},"parameters":{"id":102413,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102410,"mutability":"mutable","name":"spender","nameLocation":"1833:7:144","nodeType":"VariableDeclaration","scope":102427,"src":"1825:15:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102409,"name":"address","nodeType":"ElementaryTypeName","src":"1825:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102412,"mutability":"mutable","name":"difference","nameLocation":"1850:10:144","nodeType":"VariableDeclaration","scope":102427,"src":"1842:18:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102411,"name":"uint256","nodeType":"ElementaryTypeName","src":"1842:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1824:37:144"},"returnParameters":{"id":102417,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102416,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102427,"src":"1895:4:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":102415,"name":"bool","nodeType":"ElementaryTypeName","src":"1895:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"1894:6:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102446,"nodeType":"FunctionDefinition","src":"1988:184:144","nodes":[],"body":{"id":102445,"nodeType":"Block","src":"2091:81:144","nodes":[],"statements":[{"expression":{"arguments":[{"arguments":[{"id":102440,"name":"spender","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102429,"src":"2144:7:144","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":102439,"name":"_brutalized","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102455,"src":"2132:11:144","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_address_$returns$_t_address_$","typeString":"function (address) view returns (address)"}},"id":102441,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2132:20:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":102442,"name":"difference","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":102431,"src":"2154:10:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":102437,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2108:5:144","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_TERC20_$102456_$","typeString":"type(contract super TERC20)"}},"id":102438,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2114:17:144","memberName":"decreaseAllowance","nodeType":"MemberAccess","referencedDeclaration":4254,"src":"2108:23:144","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$_t_bool_$","typeString":"function (address,uint256) returns (bool)"}},"id":102443,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2108:57:144","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":102436,"id":102444,"nodeType":"Return","src":"2101:64:144"}]},"baseFunctions":[4254],"functionSelector":"a457c2d7","implemented":true,"kind":"function","modifiers":[],"name":"decreaseAllowance","nameLocation":"1997:17:144","overrides":{"id":102433,"nodeType":"OverrideSpecifier","overrides":[],"src":"2067:8:144"},"parameters":{"id":102432,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102429,"mutability":"mutable","name":"spender","nameLocation":"2023:7:144","nodeType":"VariableDeclaration","scope":102446,"src":"2015:15:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102428,"name":"address","nodeType":"ElementaryTypeName","src":"2015:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":102431,"mutability":"mutable","name":"difference","nameLocation":"2040:10:144","nodeType":"VariableDeclaration","scope":102446,"src":"2032:18:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":102430,"name":"uint256","nodeType":"ElementaryTypeName","src":"2032:7:144","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"2014:37:144"},"returnParameters":{"id":102436,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102435,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":102446,"src":"2085:4:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":102434,"name":"bool","nodeType":"ElementaryTypeName","src":"2085:4:144","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2084:6:144"},"scope":102456,"stateMutability":"nonpayable","virtual":true,"visibility":"public"},{"id":102455,"nodeType":"FunctionDefinition","src":"2178:195:144","nodes":[],"body":{"id":102454,"nodeType":"Block","src":"2249:124:144","nodes":[],"statements":[{"AST":{"nodeType":"YulBlock","src":"2311:56:144","statements":[{"nodeType":"YulAssignment","src":"2325:32:144","value":{"arguments":[{"name":"a","nodeType":"YulIdentifier","src":"2338:1:144"},{"arguments":[{"kind":"number","nodeType":"YulLiteral","src":"2345:3:144","type":"","value":"160"},{"arguments":[],"functionName":{"name":"gas","nodeType":"YulIdentifier","src":"2350:3:144"},"nodeType":"YulFunctionCall","src":"2350:5:144"}],"functionName":{"name":"shl","nodeType":"YulIdentifier","src":"2341:3:144"},"nodeType":"YulFunctionCall","src":"2341:15:144"}],"functionName":{"name":"or","nodeType":"YulIdentifier","src":"2335:2:144"},"nodeType":"YulFunctionCall","src":"2335:22:144"},"variableNames":[{"name":"result","nodeType":"YulIdentifier","src":"2325:6:144"}]}]},"documentation":"@solidity memory-safe-assembly","evmVersion":"paris","externalReferences":[{"declaration":102448,"isOffset":false,"isSlot":false,"src":"2338:1:144","valueSize":1},{"declaration":102451,"isOffset":false,"isSlot":false,"src":"2325:6:144","valueSize":1}],"id":102453,"nodeType":"InlineAssembly","src":"2302:65:144"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_brutalized","nameLocation":"2187:11:144","parameters":{"id":102449,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102448,"mutability":"mutable","name":"a","nameLocation":"2207:1:144","nodeType":"VariableDeclaration","scope":102455,"src":"2199:9:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102447,"name":"address","nodeType":"ElementaryTypeName","src":"2199:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2198:11:144"},"returnParameters":{"id":102452,"nodeType":"ParameterList","parameters":[{"constant":false,"id":102451,"mutability":"mutable","name":"result","nameLocation":"2241:6:144","nodeType":"VariableDeclaration","scope":102455,"src":"2233:14:144","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":102450,"name":"address","nodeType":"ElementaryTypeName","src":"2233:7:144","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"2232:16:144"},"scope":102456,"stateMutability":"view","virtual":false,"visibility":"internal"}],"abstract":false,"baseContracts":[{"baseName":{"id":102239,"name":"ERC20","nameLocations":["309:5:144"],"nodeType":"IdentifierPath","referencedDeclaration":4491,"src":"309:5:144"},"id":102240,"nodeType":"InheritanceSpecifier","src":"309:5:144"}],"canonicalName":"TERC20","contractDependencies":[],"contractKind":"contract","documentation":{"id":102238,"nodeType":"StructuredDocumentation","src":"120:170:144","text":"@dev WARNING! This mock is strictly intended for testing purposes only.\n Do NOT copy anything here into production code unless you really know what you are doing."},"fullyImplemented":true,"linearizedBaseContracts":[102456,4491],"name":"TERC20","nameLocation":"299:6:144","scope":102457,"usedErrors":[4101,4104,4107,4110,4113,4116,4119]}],"license":"AGPL-3.0-only"},"id":144} \ No newline at end of file diff --git a/pkg/contracts/src/RegistryCommunity.sol b/pkg/contracts/src/RegistryCommunity.sol index 99eba07c1..6b76ccd6e 100644 --- a/pkg/contracts/src/RegistryCommunity.sol +++ b/pkg/contracts/src/RegistryCommunity.sol @@ -10,7 +10,7 @@ import {ReentrancyGuard} from "@openzeppelin/contracts/security/ReentrancyGuard. import {IRegistry, Metadata} from "allo-v2-contracts/core/interfaces/IRegistry.sol"; import {IAllo} from "allo-v2-contracts/core/interfaces/IAllo.sol"; import {RegistryFactory} from "./RegistryFactory.sol"; -import {ISafe} from "./ISafe.sol"; +import {ISafe} from "./interfaces/ISafe.sol"; // import {Safe} from "safe-contracts/contracts/Safe.sol"; import "forge-std/console.sol"; import {ERC165Checker} from "@openzeppelin/contracts/utils/introspection/ERC165Checker.sol"; diff --git a/pkg/contracts/src/RegistryCommunityV0_0.sol b/pkg/contracts/src/RegistryCommunityV0_0.sol index 158c66537..88e011666 100644 --- a/pkg/contracts/src/RegistryCommunityV0_0.sol +++ b/pkg/contracts/src/RegistryCommunityV0_0.sol @@ -22,7 +22,12 @@ import {ISafe} from "./interfaces/ISafe.sol"; import {RegistryFactory} from "./RegistryFactory.sol"; import {IPointStrategy, CVStrategy, StrategyStruct} from "./CVStrategy.sol"; -contract RegistryCommunity is UUPSUpgradeable, ReentrancyGuardUpgradeable, AccessControlUpgradeable { +contract RegistryCommunityV0_0 is + OwnableUpgradeable, + UUPSUpgradeable, + ReentrancyGuardUpgradeable, + AccessControlUpgradeable +{ using ERC165Checker for address; using SafeERC20 for IERC20; using Clone for address; @@ -187,11 +192,25 @@ contract RegistryCommunity is UUPSUpgradeable, ReentrancyGuardUpgradeable, Acces address[] strategies; } + /// @notice Initialize the contract with the required parameters + /// @param _allo The Allo contract address + /// @param _gardenToken The token used to stake in the community + /// @param _registerStakeAmount The amount of tokens required to register a member + /// @param _communityFee The fee charged to the community for each registration + /// @param _nonce The nonce used to create new profiles in the Allo Registry + /// @param _registryFactory The address of the registry factory + /// @param _feeReceiver The address that receives the community fee + /// @param _metadata The covenant IPFS hash of community + /// @param _councilSafe The council safe contract address + /// @param _communityName The community name + /// @param _isKickEnabled Enable or disable the kick feature + /// @param covenantIpfsHash The covenant IPFS hash of community + /// @param _strategyTemplate The address of the strategy template struct InitializeParams { address _allo; IERC20 _gardenToken; uint256 _registerStakeAmount; - uint256 _communityFee; //@todo if remove the protocol fee, also remove it here + uint256 _communityFee; uint256 _nonce; address _registryFactory; address _feeReceiver; @@ -203,12 +222,13 @@ contract RegistryCommunity is UUPSUpgradeable, ReentrancyGuardUpgradeable, Acces address _strategyTemplate; } - constructor() { - // _grantRole(DEFAULT_ADMIN_ROLE, address(this)); + function initialize(RegistryCommunityV0_0.InitializeParams memory params) public initializer { + __Ownable_init(); + __ReentrancyGuard_init(); + __AccessControl_init(); + _setRoleAdmin(COUNCIL_MEMBER, DEFAULT_ADMIN_ROLE); - } - function initialize(RegistryCommunity.InitializeParams memory params) public { _revertZeroAddress(address(params._gardenToken)); _revertZeroAddress(params._councilSafe); _revertZeroAddress(params._allo); @@ -586,4 +606,8 @@ contract RegistryCommunity is UUPSUpgradeable, ReentrancyGuardUpgradeable, Acces gardenToken.transfer(_transferAddress, member.stakedAmount); emit MemberKicked(_member, _transferAddress, member.stakedAmount); } + + function _authorizeUpgrade(address) internal override onlyOwner {} + + uint256[50] private __gap; } diff --git a/pkg/contracts/src/RegistryFactoryV0_0.sol b/pkg/contracts/src/RegistryFactoryV0_0.sol index cba53d783..0cc06f46b 100644 --- a/pkg/contracts/src/RegistryFactoryV0_0.sol +++ b/pkg/contracts/src/RegistryFactoryV0_0.sol @@ -1,13 +1,15 @@ // SPDX-License-Identifier: AGPL-3.0-only pragma solidity ^0.8.19; -import {RegistryCommunity} from "../src/RegistryCommunity.sol"; +import {RegistryCommunityV0_0} from "../src/RegistryCommunityV0_0.sol"; import {RegistryFactory} from "../src/RegistryFactory.sol"; import {OwnableUpgradeable} from "openzeppelin-contracts-upgradeable/contracts/access/OwnableUpgradeable.sol"; import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol"; +import {ERC1967Proxy} from "@openzeppelin/contracts/proxy/ERC1967/ERC1967Proxy.sol"; + struct CommunityInfo { uint256 fee; bool valid; @@ -51,16 +53,22 @@ contract RegistryFactoryV0_0 is OwnableUpgradeable, UUPSUpgradeable { // setReceiverAddress(_gardensFeeReceiver); //onlyOwner } - function createRegistry(RegistryCommunity.InitializeParams memory params) + function createRegistry(RegistryCommunityV0_0.InitializeParams memory params) public virtual returns (address _createdRegistryAddress) { - RegistryCommunity registryCommunity = new RegistryCommunity(); params._nonce = nonce++; params._registryFactory = address(this); - registryCommunity.initialize(params); + ERC1967Proxy proxy = new ERC1967Proxy( + address(new RegistryCommunityV0_0()), + abi.encodeWithSelector(RegistryCommunityV0_0.initialize.selector, params) + ); + + RegistryCommunityV0_0 registryCommunity = RegistryCommunityV0_0(payable(address(proxy))); + + // registryCommunity.initialize(params); communityToInfo[address(registryCommunity)].valid = true; emit CommunityCreated(address(registryCommunity)); return address(registryCommunity); diff --git a/pkg/contracts/test/RegistryUpgradeableTest.t.sol b/pkg/contracts/test/RegistryUpgradeableTest.t.sol index 188d45399..a837f8774 100644 --- a/pkg/contracts/test/RegistryUpgradeableTest.t.sol +++ b/pkg/contracts/test/RegistryUpgradeableTest.t.sol @@ -25,6 +25,8 @@ import {RegistryFactoryV0_1} from "../src/RegistryFactoryV0_1.sol"; import {RegistryFactory} from "../src/RegistryFactory.sol"; import {CVStrategy, StrategyStruct} from "../src/CVStrategy.sol"; import {RegistryCommunity} from "../src/RegistryCommunity.sol"; +import {RegistryCommunity} from "../src/RegistryCommunity.sol"; +import {RegistryCommunityV0_0} from "../src/RegistryCommunityV0_0.sol"; import {Safe} from "safe-contracts/contracts/Safe.sol"; import {SafeSetup} from "./shared/SafeSetup.sol"; @@ -62,8 +64,8 @@ contract RegistryUpgradeableTest is // Metadata public metadata = Metadata({protocol: 1, pointer: "strategy pointer"}); RegistryFactoryV0_1 internal registryFactory; - RegistryCommunity internal registryCommunity; - RegistryCommunity internal nonKickableCommunity; + RegistryCommunityV0_0 internal registryCommunity; + RegistryCommunityV0_0 internal nonKickableCommunity; address gardenOwner = makeAddr("communityGardenOwner"); address gardenMember = makeAddr("communityGardenMember"); @@ -114,7 +116,7 @@ contract RegistryUpgradeableTest is vm.stopPrank(); - RegistryCommunity.InitializeParams memory params; + RegistryCommunityV0_0.InitializeParams memory params; params._strategyTemplate = address(strategy); params._allo = address(allo()); params._gardenToken = IERC20(address(token)); @@ -125,7 +127,9 @@ contract RegistryUpgradeableTest is params._councilSafe = payable(address(_councilSafe())); params._isKickEnabled = true; - registryCommunity = RegistryCommunity(registryFactory.createRegistry(params)); + + registryCommunity = RegistryCommunityV0_0(registryFactory.createRegistry(params)); + assertEq(registryFactory.nonce(), 1, "nonce before upgrade"); vm.startPrank(gardenOwner); @@ -140,10 +144,11 @@ contract RegistryUpgradeableTest is vm.stopPrank(); params._isKickEnabled = false; - nonKickableCommunity = RegistryCommunity(registryFactory.createRegistry(params)); + + nonKickableCommunity = RegistryCommunityV0_0(registryFactory.createRegistry(params)); } - function _registryCommunity() internal view returns (RegistryCommunity) { + function _registryCommunity() internal view returns (RegistryCommunityV0_0) { return registryCommunity; } @@ -151,7 +156,7 @@ contract RegistryUpgradeableTest is return registryFactory; } - function _nonKickableCommunity() internal view returns (RegistryCommunity) { + function _nonKickableCommunity() internal view returns (RegistryCommunityV0_0) { return nonKickableCommunity; } @@ -901,7 +906,7 @@ contract RegistryUpgradeableTest is } function test_revert_initialize_zeroStake() public { - RegistryCommunity.InitializeParams memory params; + RegistryCommunityV0_0.InitializeParams memory params; params._strategyTemplate = address(strategy); params._allo = address(allo()); params._gardenToken = IERC20(address(token)); @@ -912,7 +917,7 @@ contract RegistryUpgradeableTest is params._councilSafe = payable(address(_councilSafe())); params._isKickEnabled = true; vm.expectRevert(abi.encodeWithSelector(RegistryCommunity.ValueCannotBeZero.selector)); - registryCommunity = RegistryCommunity(registryFactory.createRegistry(params)); + registryCommunity = RegistryCommunityV0_0(registryFactory.createRegistry(params)); } function test_revert_deactivateMemberInStrategyCaller() public {